Sahara's WebLog

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

ESP8266モジュール(ESP-WROOM-02)を試す その38 - ThingTweetに直接POSTしてツイートする -

前回はChannelに送ったデータをThingSpeak側で条件判断してツイートするという方法だったが、ThingTweetを使えば判断はESP8266側ででき、送る内容の自由度も上がる。
参考にさせていただいたサイトはこちらだ。
内容的にはオリジナルはこちらにあり、Wi-FiがらみをESP8266にあわせて書き直してあるとのこと。
ほんと、ESP8266 core for Arduinoのおかげで被れる恩恵は計り知れない。

実は、ThingSpeak APP React 経由だと、送る文面に制約があって、同じ文面になってしまいがちだ。
詳しくないのでよく知らなかったのだが、Twitterは同じ文面だと弾くらしく、2通目以降全く送信されなくてちょっと悩んだりした。

上のサイトの例では、これに対応するために時刻の情報を入れ込んでおり、弾かれることなく全てのツイートが送信されるようだ。
この件があるために、いまのところ、データはデータでChannelに送り、通知は通知でESP8266側で判断して直にThingTweetへ送るのが良いと思われる。

ちなみに上のサイトのコードは、Arduino IDE 1.6.7、ESP8266 Core 2.1.0の環境では、
‘updateTwitterStatus’ was not declared in this scope
という、暗黙の宣言がらみのエラーが出るので、はじめの方で
void updateTwitterStatus(String tsData);
を追加で宣言しておく必要がある。
水色の部分がThingSpeakへ接続するためのアドレス、apiKey、そして、関数の宣言だ。
それ以外はWi-Fi接続のためのおなじみの処理で、まあ、決まり文句。
thingspeak_thingtweet_01
この部分でtwStrにツイートする内容を代入している。
上にも書いたが、同じ文面にならないようにmillis()を追加している。
millis()の値は再起動のたび、連続でも約50日(※)でリセットされるらしいから、完璧を期すなら、NTPへアクセスして時刻データを取得して付け加えたらいいかもしれない。
thingspeak_thingtweet_02
これが肝心のツイートの部分だ。
だが、当然ながらThingTweetの要求するとおりの書式を送信するわけだから、これ以上でもこれ以下でもなく、誰が書いても変数名以外には変更の余地も無いので逆に簡単かも。
thingspeak_thingtweet_03
というわけで、着々と入電中w
thingspeak_thingtweet_04
ESP8266関連記事一覧へ
(※)
確かめたわけではないが、
0xFFFFFFFF = 4294967295
4294967295 / 1000 / 60 / 60 / 24 = 49.71026961805556日
ってことなのかな?

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

Posted under: ESP8266, ThingSpeak


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.