blinker 库开发注意事项-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 28180|回复: 13

[使用文档] blinker 库开发注意事项

[复制链接]
发表于 2018-12-1 19:01 | 显示全部楼层 |阅读模式
本帖最后由 三水 于 2018-12-27 11:43 编辑

[md]# Arduino支持
## 回调函数
使用回调函数是为了更方便梳理程序逻辑,但回调函数中若有阻塞类型的代码(如: while delay 或 Serial读写等)将可能影响设备的正常通信及工作。  
==用户在开发过程中务必避免在回调中执行阻塞类型的代码, 请使用标志位等方法在回调外对标志位进行查询检测执行控制。==
## ESP8266&ESP32
### EEPROM
以下EEPROM地址在 blinker 库中已占用, 用户开发时务必避开以下地址。  

| 地址 | 用途 |
| :-: | :-: |
| 0-1279 | 自动化控制数据 |
| 1280-1535 | 专属设备数据 |
| 1536-2431 | 定时器配置数据 |
| 2432-2435 | ESP AT模块串口配置数据 |
| 2436-2447 | OTA配置数据 |

### Ticker
ESP-Arduino SDK 中官方提供了硬件定时器的库Ticker。  
用户开发时若需要使用到Ticker, 务必避免在Ticker中断回调中执行IO阻塞性代码。  
请使用标志位等方法在回调外对标志位进行查询检测执行控制, 以避免看门狗复位。  

[官方文档提醒](https://github.com/esp8266/Arduino/blob/master/doc/libraries.rst#ticker) : It is currently not recommended to do blocking IO operations (network, serial, file) from Ticker callback functions. Instead, set a flag inside the ticker callback and check for that flag inside the loop function.  

### WiFiClientSecure
***blinker 库中使用了:***
- **ESP8266** 的 **BearSSL::WiFiClientSecure** 和 **WiFiClient**  
- **ESP32** 的 **WiFiClientSecure** 和 **WiFiClient**   

> 注: ESP8266 package 已使用 BearSSL::WiFiClientSecure。   
> 原有的 axTSL 的 WiFiClientSecure 将废弃且不能和 BearSSL 同时使用, 可能导致连接失败及堆栈溢出。  

对应的对象名为
> BearSSL::WiFiClientSecure   client_mqtt;// ESP8266  
> WiFiClientSecure            client_s;// ESP32  
> WiFiClient                  client;// ESP32 & ESP8266  

用户使用中若要使用到以上 库/类 时, 建议 extern 对应对象并 stop   
如需要使用到 ESP8266 的 WiFiClientSecure:
```arduino
void secureConnect()
{
    extern BearSSL::WiFiClientSecure client_mqtt;
    BearSSL::WiFiClientSecure client;

    client_mqtt.stop();
    client.connect(host, httpsPort);
}
```
如需要使用到 ESP8266 的 HTTPS:
```arduino
void secureConnect()
{
    extern BearSSL::WiFiClientSecure client_mqtt;
    client_mqtt.stop();

    std::unique_ptr<BearSSL::WiFiClientSecure>client_s(new BearSSL::WiFiClientSecure);

    // client_s->setFingerprint(fingerprint);
    client_s->setInsecure();

    HTTPClient https;

    https.begin(*client_s, url);

    https.addHeader(conType, application);
    uint8_t httpCode = https.POST(msg);
    String payload = https.getString();

    https.end();
}
```[/md]
发表于 2019-5-2 18:52 | 显示全部楼层
[41]
__       __                __
/\ \     /\ \    __        /\ \              v0.3.1
\ \ \___ \ \ \  /\_\    ___\ \ \/'\      __   _ __   
\ \ '__`\\ \ \ \/\ \ /' _ `\ \ , <    /'__`\/\`'__\
  \ \ \L\ \\ \ \_\ \ \/\ \/\ \ \ \\`\ /\  __/\ \ \./
   \ \_,__/ \ \__\\ \_\ \_\ \_\ \_\ \_\ \____\\ \_\  
    \/___/   \/__/ \/_/\/_/\/_/\/_/\/_/\/____/ \/_/  
    To better use blinker with your IoT project!
    Download latest blinker library here!
    => https://github.com/blinker-iot/blinker-library


[75] Connecting to China-Net ehSF

[79] ESP8266_MQTT initialized...

[81]
===========================================================
================== Blinker Timer loaded! ==================
Warning!EEPROM address 1536-2431 is used for Blinker Timer!
============= DON'T USE THESE EEPROM ADDRESS! =============
===========================================================
怎么办?谢谢。
发表于 2020-1-18 14:16 | 显示全部楼层
123456aabb 发表于 2019-5-2 18:52
[41]
__       __                __
/\ \     /\ \    __        /\ \              v0.3.1

不要使用这些EEPROM地址
发表于 2020-1-31 00:29 | 显示全部楼层
那位前辈能提供一份点灯blinker的库文件啊,现在页面打不开下不成了,邮箱是,101640@qq.com ,拜托了,想学有学不成,急!

点评

https://gitee.com/mirrors/blinker-library  详情 回复 发表于 2020-1-31 11:31
发表于 2020-1-31 11:31 | 显示全部楼层
xjyunlong 发表于 2020-1-31 00:29
那位前辈能提供一份点灯blinker的库文件啊,现在页面打不开下不成了,邮箱是, ,拜托了,想学有学不成,急 ...

https://gitee.com/mirrors/blinker-library
发表于 2020-1-31 16:14 | 显示全部楼层
多谢前辈提供资源,现在开始继续研究了,哈哈!
发表于 2020-3-16 08:43 | 显示全部楼层
专属设备数据的地址是不是可以使用
发表于 2020-3-18 20:48 | 显示全部楼层
eeprom的空白地址应该选多少啊 我调用点灯的库eeprom就无法使用了
发表于 2020-6-20 19:50 | 显示全部楼层
hean-i 发表于 2020-3-16 08:43
专属设备数据的地址是不是可以使用

我从1280开始用了  暂时没发现问题

而从2450开始用,反而无法保存数据,读不到数据
发表于 2020-11-15 21:02 | 显示全部楼层
本帖最后由 bfw666 于 2020-11-15 21:31 编辑

请教下,串口返回MQTT Ping是表示心跳一直在吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-27 23:35 , Processed in 0.105279 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表