IoTで室温を時系列で記録して可視化
せっかくIoTサーバーを作ったのでとりあえず何か動かしておこうと思って作り出しました。
まず、秋月電子通商さんのESP8266を搭載したESP-WROOM-02開発ボードを使います。
まず、ESP8266のライブラリを一通りインストール。
その後、サンプルプログラムを探すと、BasicHttpClientというものがあります。
ESP8266でWifiに接続してWebにアクセスするのです。

32行目の WiFiMulti.addAP("SSID", "PASSWORD");
に接続するWifiのIISDとパスワードを入力、

47行目の if (http.begin(client, "http://jigsaw.w3.org/HTTP/connection.html")) {
でhttp....の部分にアクセスしたいURLを入力します。

公開したIoTサーバーでメールアドレスを登録してIDを作成したら、URLの所にIDとデータを含めて送ります。
IDとa0=まで書き込んだURLを文字列に入れ、その後に AnalogRead で読み取った数値をセンサに固有の加工して文字列に追記して送ればよいです。

以下の写真の例のように、39,40行で文字列を作って49行目で送ります。


ここでは見えてませんが、下の方でループの待ち時間をdelay(600000)、つまり10分にしています。

回路はこちら、LM61というアナログ温度センサの出力を読み取っているのですが、温度100度で1.6Vの出力となり、ESP8266のアナログ入力は約1Vで飽和してしまうのでそのままでは読み取れず、10kΩの抵抗2本で分圧して半分の電圧にしてESP-WROOM-02開発ボードの18番ピンに与えています。


10分間隔でログを残して、IDでアクセスして可視化した例はこちら。


例として簡単な回路とプログラムで作りましたが、改良すべき点があります。
回路の配線を少なくするためこじんまり配線してますが、マイコンボードは通電すると多少発熱するので、センサとマイコンはできるだけ離すべきです。
プログラムも1度だけセンサを読み取るのでは誤差の要因となります。
Wifiにアクセスするときは数100mAの電流を流すのでWiFiにアクセスするタイミングとセンサ読み取りのタイミングは離す方が良くて、センサの読み取りも1度でなくて数回読んで積算、平均化した方が良いです。
電源強化のためにキャパシタンスも追加した方がいいでしょう。

IoT公開サーバーはこちら
2024.03.01 21:37 | pmlink.png 固定リンク | folder.png ソフト・HDL・Web

- CafeLog -