新手常见错误排查指引(blinker Arduino sdk篇)
本文仅针对使用esp芯片接入点灯blinker,当您遇到使用问题时,可按以下方法及顺序排查:区分问题是 编译报错,上传出错,还是 运行出错。
什么是编译报错?
编译报错指,你的程序还没有烧录进设备,在Arduino IDE中点击“上传”,IDE下方信息提示区出现错误提示。
编译报错解决办法:
通常下方信息提示区会输出报错原因,请注意,"warn"不是报错,写有“error”的才是报错!。
如果看不懂报错,说明您当下并不具备基本的编程知识,建议先学习编程基础,再使用blinker。当然你也可以使用百度,了解报错的意思和解决办法。
下面列举一些新手常见的错误:
error: #error Please set a mode BLINKER_BLE/BLINKER_WIFI/BLINKER_MQTT ! Please check your mode setting.
翻译成中文,就是说你没有设置接入模式,或者你没有看过我们提供的教程。
解决办法:按教程或者文档添加模式设置宏即可。点击看教程
fatal error: Blinker.h: No such file or directory
翻译成中文,没有找到Blinker.h这个文件。原因是你还没有安装blinker库,或者装错了位置。
解决办法:按官网文档重新安装blinker库。点击看文档
error: 'D13' was not declared in this scope
翻译成中文,没有定义D13。原因是你选择的开发板没有定义D13是什么,引脚Dx的通常是编号是开发板厂家定义的,硬件厂家将开发板定义信息提交到芯片package仓库后,才会有类似Dx、Ax的Arduino风格引脚编号。例如使用WiFiduino开发板,那可以通过Arduino IDE菜单》工具》开发板,选择到WiFiduino,此时,就可以使用Dx风格的引脚编号了。这也是为什么我们更推荐新手使用WiFiduino这种更接近UNO的开发板的原因。
解决办法:
1.建议0基础的新手直接购买WiFiduino/WiFiduino32;
2.直接换成芯片的GPIO编号即可,通常开发板上会表明GPIO编号,如果没有表明,请联系厂家索要开发板原理图。
什么是上传报错?
如果IDE显示"编译完成",则说明程序在语法层面没有大问题。那么下一步则是上传到开发板上。上传过程常见问题如下:
选择的串口不存在或开发板没有连接
这已经中文了,没法再解释的更清楚了。
解决办法:
1.确定开发板驱动是否已经安装;
2.Arduino IDE菜单》工具》端口中,确定是否选择了该开发板对应的串口。
serial.serialutil.SerialTimeoutException: Write timeout
串口写入超时,可能是你的复位电路复位电路问题,导致无法正常进入esp烧写模式。
解决办法:
1. 找卖家更换开发板,或者重新购买一个WiFiduino/WiFiduino32;
2. 对于ESP32,有些开发板上有EN、BOOT按键,先按住EN,然后再按BOOT即可进入烧写模式。
什么是运行出错?
程序运行过程中,没有按照你的想法运行,都可以看错是运行过程中出错。
造成运行出错的可能原因:
你没有按文档安装最新的package和 blinker lib。
解决办法:
通过官方文档所示的方法,安装package和 blinker lib。如果你之前安装过其他版本,请先确保已经删除了,再按文档进行安装。
你的程序有问题。如果你使用的不是blinker例程,或者你自己对例程进行过修改,那极可能是你的代码造成的问题。
解决办法:
1.使用blinker例程测试,如果例程无问题,那通常就是你程序造成的问题。
2.自己分析程序写法或者逻辑是否正确。
3.逐行添加或者删除自己的代码,进行多次测试,定位是哪里造成了错误。
blinker sdk bug导致。
解决办法:
1. 如果你已经确定是bug导致,且找到了修复办法,可以向blinker github仓库提交修复代码;
2. 如果不确定是否为bug,可以发帖报告情况,提供复现问题的方法,点灯工作人员会进行检查和确认。
开发板或外设导致的硬件故障。如开发板上连接有较大功率的外设(如发热器件、电机等),导致整体供电不足
解决办法:
1.拔掉相关外设再做测试。
2.为开发板提供更稳定的电源。
无法连接到WiFi热点
解决办法:
1.确保供电正常,个别esp8266开发板在供电不足的情况下,无法连接热点
2.esp系列芯片只能连接2.4G热点,不支持5G WiFi热点,请确保你的热点是2.4G模式。
无法连接到点灯服务器
解决办法:
1.确保已经连上wifi
2.查看串口调试信息,是否已经获取到联系信息
3.确定是否连接上点灯broker
设备离线问题
为什么esp8266/esp32 wifi接入app显示设备离线
\Arduino\libraries\blinker-library-0.3.9\src\modules\WebSockets\WebSockets.cpp:546:5: error: 'sha1' was not declared in this scope
546 | sha1(clientKey + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11", &sha1HashBin);
| ^~~~
请问这是什么原因,库是新库? BYTEBug 发表于 2022-7-7 14:53
\Arduino\libraries\blinker-library-0.3.9\src\modules\WebSockets\WebSockets.cpp:546:5: error: 'sha1'...
可能是你package版本太老造成的,更新后再测试例程
https://www.arduino.cn/thread-81194-1-1.html Exception (28):
epc1=0x40215964 epc2=0x00000000 epc3=0x00000000 excvaddr=0x000008a8 depc=0x00000000
请问这是什么错误呢
页:
[1]