2016-03-01 34 views
0

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

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 

我该如何解决这个问题?

+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示例代码。该代码更有可能与固件同步。