ESP8266 Thingspeak数据无法显示

时间:2016-03-01 19:52:59

标签: lua iot esp8266 nodemcu

我建立了这个项目: http://www.instructables.com/id/Low-cost-WIFI-temperature-data-logger-based-on-ESP/?ALLSTEPS ESP8266输出一些东西,我认为它应该没问题。 但是在Thingspeak频道中没有条目。我已经仔细检查了API-Write密钥。 这是串行输出:

Setting up WIFI...
> IP unavaiable, Waiting...
IP unavaiable, Waiting...
IP unavaiable, Waiting...
IP unavaiable, Waiting...
IP unavaiable, Waiting...
IP unavaiable, Waiting...
Config done, IP is 192.168.1.9
Last temp: 216875
Temp:21.6875.6875 C

Sending data to thingspeak.com
Last temp: 216875
Temp:21.6875.6875 C

Sending data to thingspeak.com
Got disconnection...
Last temp: 216875
Temp:21.6875.6875 C

Sending data to thingspeak.com
Got disconnection...
Last temp: 216875
Temp:21.6875.6875 C

Sending data to thingspeak.com
Got disconnection...
Last temp: 216875
Temp:21.6875.6875 C

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

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。

附注:我建议您也使用NodeMCU团队提供的https://github.com/nodemcu/nodemcu-firmware/tree/dev/lua_modules/ds18b20中的DS18B20示例代码。该代码更有可能与固件同步。