ESP8266 Thingspeak数据没有显示出来

我构建了这个项目: http://www.instructables.com/id/Low-cost-WIFI-temperature-data-logger-based-on-ESP/?ALLSTEPS ESP8266输出了一些内容,我认为应该可以。 但是Thingspeak频道中没有任何条目。我已经双重检查了API-Write Key。 这里是串行输出:

设置WIFI...
> IP不可用,等待...
IP不可用,等待...
IP不可用,等待...
IP不可用,等待...
IP不可用,等待...
IP不可用,等待...
配置完成,IP为192.168.1.9
上次温度:216875
温度:21.6875.6875 C

将数据发送到thingspeak.com
上次温度:216875
温度:21.6875.6875 C

将数据发送到thingspeak.com
连接中断...
上次温度:216875
温度:21.6875.6875 C

将数据发送到thingspeak.com
连接中断...
上次温度:216875
温度:21.6875.6875 C

将数据发送到thingspeak.com
连接中断...
上次温度:216875
温度:21.6875.6875 C

我该如何解决这个问题?

点赞
用户131929
用户131929

这是一个 SDK 中的错误,你引用的项目中的代码之所以能够工作是因为之前的 1.0 版本的 SDK 中的 conn:send 是同步的,也就是说你可以按顺序调用它并且它会阻塞直到每个字符串被发送。Espressif 后来将底层函数更改为异步。因此, https://github.com/ok1cdj/ESP8266-LUA/blob/master/Thermometer-DS18B20-Thingspeak/ds1820.lua#L77 中的代码失败了。有关详细信息,请参阅 net.socket:send() API 文档。

但是,由于你已经在一个较新的固件版本上(我相信是从 dev 分支),你应该充分利用新的 HTTP 模块。http.put() 比直接操作原始套接字更方便。

请参阅https://mathworks.com/help/thingspeak/update-a-channel.html,了解如何向 ThingSpeak 发送 PUT 数据。

顺便说一下:我建议你还使用来自 NodeMCU 团队的 https://github.com/nodemcu/nodemcu-firmware/tree/dev/lua_modules/ds18b20 中的 DS18B20 示例代码。那个代码更有可能与固件同步。

2016-03-02 16:06:24