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 より前の SDK では、SDKconn:sendは同期的でした。つまり、順番に呼び出すことができ、各文字列が送信されるまでブロックされていました。Espressif は後に、基礎となる関数を非同期に変更しました。したがって、https://github.com/ok1cdj/ESP8266-LUA/blob/master/Thermometer-DS18B20-Thingspeak/ds1820.lua#L77のコードは失敗します。詳細については、net.socket:send()API ドキュメントを参照してください。

ただし、すでに最新のファームウェア バージョン (dev私が信じているブランチからのもの) を使用しているため、新しい HTTP モジュールを十分に活用する必要があります。http.put()生のソケットを操作するよりもはるかに便利です。

データを ThingSpeak に PUT する方法については、 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 に答える