今回はセンサ出力をTwitterに投稿できるようにしました。
以前いきなり挑んで全然できなかったので、今回は段階を踏んでやってみた。
①Twitter側の設定
プロジェクトを新規登録し、Consumer Keys と Access Token & Secret の取得する。
こちらのサイトを参考にさせていただきました。
Twitter開発者ページはデザインが良く変更されるみたいで、
色々調べていると時代により3種類くらい違ったデザインがあった。
素人なのでちょっと視覚情報が変わっただけで操作が分からなくなるので
手間取ったが、なんとか読み替えして設定できた。
つまづいたのは、アクセスキー。
後の工程でうまくいかなくて、よくよく見ると
Access Token & Secret が Read Only になっていたのが原因だった。
こちらのサイトの図7あたりの説明を読んで気づきました。
②Raspberry piからツイートしてみる
まず先ほど取得したキー類でちゃんとできるか、
Raspberry側の設定ができているか、確認するため
以下のサイトを参考に簡単なメッセージを直接ツイートしてみた。
何の問題もなくできました。
③BME280で取得したデータをツイートしてみる
なぜかツイート文章のところだけどうしてもうまく動作しなかったので、
書き換えました。
これを
twitter.update_status(status=datetime.now().strftime("%Y/%m/%d %H:%M:%S") + ' ' + tweet_str)
こう
twitter.update_status(status=tweet_str)
そんで変数tweet_strの中身をこのコードの前で任意に作りこむように変更しました。
一番ネックだったつまづきは、センサ出力結果報が数値なのに、そのまま文字列として表示させようとしていたところ。
python実行後のエラー文章をググったらこれがヒットしました。
出力結果をstr型(文字列型)に変更してあげたら無事表示できました。
例えば気温なら、これを
tweet_str = compensate_T(temp_raw)
こうする。
tweet_str = str(compensate_T(temp_raw))
出力結果はこんなかんじ。進化の過程。
25.6161384007 1007.55172316 59.9108185502
— ちゅろう(健康) (@churow) September 28, 2020
temp: 26.0, pres1008.0, hum60.0
— ちゅろう(健康) (@churow) September 28, 2020
ちゅろうの部屋は、ただいま【**】です。
— ちゅろう(健康) (@churow) September 28, 2020
ちゅろうの部屋は、ただいま【気温: 25.2℃, 湿度: 61.2%, 気圧: 1009.0hPa】です。
— ちゅろう(健康) (@churow) September 28, 2020
これを前にやったのと同じ方法で、crontabで定期実行されるようにしました。
やったー! ツギハギ知識だけどIoTっぽいことできてうれしい。
④(おまけ)ケースをつくってみる
fusion360でモデリングしてMega-sという3Dプリンタで造形しました。
Mega-sの造形台高さ調整で、調整ネジの回し方向を勘違いして
ノズルと台が当たったままノズルを動かして、台を傷つけまくってしまった。
説明書は冷静に読まなくてはいけないですな。
一通り作ってみての感想・・・
やり方を参考にするにしても自分の頭使わなきゃだめだし
(サイトデザイン更新変わってても中身は同じなんだからそれくらい自分で対応しろ)
コードコピペするにしても多少はプログラミング理解してないとだめだし(str型とか)
エラーが出たらよく文章読むべきである。
使っているRaspberry Piは、メルカリで買った初代(2014年製?)ものだからか
動きが死ぬほど重たいので、そろそろ限界かなと思っている。
次は何しようかな~






