查看: 7566|回复: 8

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

[复制链接]
  • TA的每日心情

    1544106114
  • 签到天数: 48 天

    发表于 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! =============
    ===========================================================
    怎么办?谢谢。
  • TA的每日心情
    奋斗
    2020-1-18 10:38
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    发表于 2020-1-18 14:16 | 显示全部楼层
    123456aabb 发表于 2019-5-2 18:52
    [41]
    __       __                __
    /\ \     /\ \    __        /\ \              v0.3.1

    不要使用这些EEPROM地址
  • TA的每日心情
    奋斗
    2020-2-4 21:42
  • 签到天数: 4 天

    [LV.2]偶尔看看I

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

    点评

    https://gitee.com/mirrors/blinker-library  详情 回复 发表于 2020-1-31 11:31
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

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

    https://gitee.com/mirrors/blinker-library
  • TA的每日心情
    奋斗
    2020-2-4 21:42
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2020-1-31 16:14 | 显示全部楼层
    多谢前辈提供资源,现在开始继续研究了,哈哈!
  • TA的每日心情
    郁闷
    2020-3-16 08:44
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-16 08:43 | 显示全部楼层
    专属设备数据的地址是不是可以使用

    该用户从未签到

    发表于 2020-3-18 20:48 | 显示全部楼层
    eeprom的空白地址应该选多少啊 我调用点灯的库eeprom就无法使用了
  • TA的每日心情

    2020-7-2 15:06
  • 签到天数: 927 天

    [LV.10]以坛为家III

    发表于 2020-6-20 19:50 | 显示全部楼层
    hean-i 发表于 2020-3-16 08:43
    专属设备数据的地址是不是可以使用

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

    而从2450开始用,反而无法保存数据,读不到数据
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    Arduino如何输出ASCii 的控制字符串ENQ为05H
    Arduino如何输出ASCii 的
    程序段 void loop() { Serial.print("ENQ1234"); } Arduino会转换成ASCii码发送
    点阵时钟 验证报错 求大神帮个忙
    点阵时钟 验证报错 求大神
    智慧食堂,让吃饭有着不一样的体验!
    智慧食堂,让吃饭有着不一
    以后凭脸吃饭啦!不在乎颜值、不管是谁,小编告诉你:只要“脸”就可以! “吃饭5分
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表