Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

ESP8266モジュール(ESP-WROOM-02)を試す その34 – ThingSpeakへのデータの送り方 –

前回「ESP8266モジュール(ESP-WROOM-02)を試す その32 Arduino IDE – ThingSpeakを使ってみる -」では、とりあえず手持ちのDHT11を使い、ここにあったスケッチの必要な部分だけを書き変えてそのまま使ってみた。

今回は、ThingSpeakへのデータ送信の部分を自由に使えるようにするため、コードを眺めてみた。

例として、サイン・カーブを描かせるようにデータを送る。

多少怪しかったりスマートでない部分もあるかもしれないが、一応こんな感じに送信できた。
thingspeak_test_sin_01
ここにある Arduino + Ethernet Shield 用のスケッチをESP8266用に手直しするということだ。
コードを少しずつ見ていく。

この部分(1~11行)は特に問題は無い。
ThingSpeakで生成されるapiKey、ルータに接続する際のIDとPasswordを自分の環境に応じて書き変えるだけ。
モザイクがかけてある部分だ。
thingspeak_test_sin_02
13~31行のvoid setup(){}は、Wi-Fiに接続する部分とその経過をシリアル・モニターに表示する部分だ。
表示するメッセージを好みで直す以外は、それこそ全く変更する部分がない。
thingspeak_test_sin_03
背景が水色になっている部分は変更が無いところ。
実際にデータを送る部分だが、ある意味決まり文句なので逆にいじる部分は無い。
(1)hはsinの計算値を入れる変数、degは角度を0~360の間でループさせる変数だ。
弧度法から遠ざかっているので、わかりやすいように360度の度数法でやってみようとしたためだが、良かったのか悪かったのか不明だ。
(2)degをラジアンに直してからsin()に代入してhを計算している。
(3)ここがデータを送るための文字列postStrを用意している部分だ。
thingspeak_test_sin_04
1件なのでこうなっているが、2件なら以下のように

4件なら以下のように書くのだと思う。

(4)はシリアル・モニターへの出力だから好みで変えればいい。
64行のdelayは、あまり短い間隔でデータを送ってはいけないということなのか、15秒は空けろと注釈にはあるが、20秒に設定してあったのでそのままにしてある。
ThingSpeakでインターバルについて調べるとここ

API Rate Limits
You can update a ThingSpeak channel every 15 seconds. Updating more frequently results in an error.

と書いてあった。
(5)が角度の値をループさせる部分。
10度ずつ増やしていって、350度の次は0度にし、これを繰り返す。
thingspeak_test_sin_05

同様に、cos、tanのグラフも描かせてみた。
thingspeak_test_sin_06
ざっと眺めてみたが、特に問題になるような点も無く、別のセンサーとかに変わっても送るべきデータさえ用意されれば十分使えそうな気がする。
ESP8266関連記事一覧へ

このエントリーをはてなブックマークに追加

Posted under: ESP8266, ThingSpeak


コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.