0

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

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

我怎么解决这个问题?

4

1 回答 1

1

您引用的项目中的代码曾经工作过,这是 SDK 中的一个错误。在 1.0 之前的 SDKconn:send中是同步的,即您可以按顺序调用它,它会阻塞,直到每个字符串都被发送。乐鑫后来将底层函数更改为异步。因此,https://github.com/ok1cdj/ESP8266-LUA/blob/master/Thermometer-DS18B20-Thingspeak/ds1820.lua#L77的代码失败。有关更多详细信息,请参阅net.socket:send()API 文档。

但是,由于您已经使用了最新的固件版本(dev我相信来自分支),您应该充分利用新的 HTTP 模块。http.put()比在原始套接字上操作更方便。

有关如何将数据放入 ThingSpeak,请参阅https://mathworks.com/help/thingspeak/update-a-channel.html 。

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

于 2016-03-02T16:06:24.843 回答