查看: 1625|回复: 1

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

[复制链接]

该用户从未签到

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

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阻塞性代码。
请使用标志位等方法在回调外对标志位进行查询检测执行控制, 以避免看门狗复位。  

官方文档提醒 : 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 库中使用了:

  • ESP8266BearSSL::WiFiClientSecureWiFiClient  
  • ESP32WiFiClientSecureWiFiClient   

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

对应的对象名为

BearSSL::WiFiClientSecure   client_mqtt;// ESP8266
WiFiClientSecure            client_s;// ESP32
WiFiClient                  client;// ESP32 & ESP8266  

用户使用中若要使用到以上 库/类 时, 建议 extern 对应对象并 stop
如需要使用到 ESP8266 的 WiFiClientSecure:

void secureConnect()
{
    extern BearSSL::WiFiClientSecure client_mqtt;
    BearSSL::WiFiClientSecure client;

    client_mqtt.stop();
    client.connect(host, httpsPort);
}

如需要使用到 ESP8266 的 HTTPS:

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();
}

该用户从未签到

发表于 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! =============
===========================================================
怎么办?谢谢。
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

热门推荐

请问一下微动开关 4X4矩阵键盘 16按键  怎么接ardiuno的 接口?
请问一下微动开关 4X4矩阵
请问下这款微动开关 4X4矩阵键盘 16按键的 8个接口分别接单片机的什么口,我
Arduino MEGA 与UNO 通过nRF24L模块通讯
Arduino MEGA 与UNO 通过n
之前在深水宝很“实惠”的店铺买了一些原件,随手砍了esp8266以及nRF24L*3 因为缺
Nano 一直显示上传,不显示上传成功。
Nano 一直显示上传,不显
前面用的还好好的,突然就传不上程序了。一直停留在上传状态中,就是不限显示上传成功
【项目】基于Arduino Nano的多功能桌面感应垃圾桶
【项目】基于Arduino Nano
基于Arduino Nano的多功能桌面感应垃圾桶随着大学生活不断往前迈进,宿舍桌面上的杂物
Arduino板接74HC拓展接驱动器接多个四项电机
Arduino板接74HC拓展接驱
一个Arduino板能不能接多个74HC595来得到多个拓展? 如果能的话要怎么接啊? 如果接
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
快速回复 返回顶部 返回列表