botを作ったきっかけ
ある日、妻に「あの、外にあるRaspberry Piってやつ、温度・湿度記録しているなら自動でツイートしてくれるようにできないの?」と相談を受けました。知らない人のために説明すると、外にあるRaspberry Piというのは、家庭菜園の栽培記録のために作った「電波ガーデニング」のことです。詳しくは下記記事参照ください。
もちろん、忙しい私はビシッと男らしくこう言ってやりましたよ
「はっ!拝承っ!!直ちに機能追加いたしますぅぅ!!有り難き幸せ!!」
てね☆
温度・湿度・気圧を定期的にツイートする方法
以下のようなツイートを一定期間毎に繰り返すbotをつくります。
現在の温度は29.8度 湿度は52.7% 気圧は1001.6hPa です
— lemon_chan_bot (@lemon_chan_bot) 2016年8月8日
暑いですね
もうこういうネタは、何番煎じかもわかりませんが、やってみると色々発見もあったので記録しておきます。これ以降は宇宙語が続くので、興味ある方のみご覧ください。
基本セットアップ方法
まずは、下記記事を参照に必要なものを購入して、ハードウェアとソフトウェアのセットアップを実施ください。
次に、Twitterを使用するために以下のコマンドでtwython
というライブラリとOAuthを使った認証に必要なrequests_oauthlib
というライブラリをインストールします。
$ sudo pip install twython $ sudo pip install requests_oauthlib
後は、以下サイトでtwitterアプリを登録して、Consumer keyとAccess tokenをゲットしましょう。携帯電話番号を登録しないといけないのがちょっとハードル高いですね。 https://apps.twitter.com
ソフト使い方(ツイートする方法)
ソフトは以下の「電波ガーデニング」のリポジトリにtweet_sensor_data.py
という名前で保存しました。以下です。
まず、リポジトリを以下コマンドでclone(コピー)します。
$ cd
$ git clone https://github.com/karaage0703/denpa-gardening.git
次にdenp-gardening
の下の.twitter_config
というファイルに、自分のtwitterのKEYを書き込んで下さい。
ちなみに.twitter_config
のような、頭文字に.
がつくようなファイルは隠しファイルになり普通は見えません。ターミナルでls -a
等すると確認できるようになりますので注意して下さい。ファイルは、以下コマンドで編集できます(viエディタで編集する場合)。
$ vi ~/denpa-gardening/.twitter_config
後は、以下実行すれば温度、湿度、気圧がツイートされます。
$ python ~/denpa-gardening/tweet_sensor_data.py
一応、温度、湿度に応じて微妙にセリフが変わるようになっています。
ただ、このままだとツイートしたいときにわざわざ自分でコマンドを毎回打たないといけないので面倒です。cronを使って、1時間毎にツイートするようにしましょう。まず以下実行して、crontabを編集します。
$ crontab -e
以下のような1行を加えれば、毎時00分にツイートされるようになります。
00 * * * * python ./denpa-gardening/tweet_sensor_data.py
ちなみに今回のプログラム作ることで、自分が以下のような基礎的なことを知らなかったことが白日のもとに晒されました。
- pythonのプログラム名にはハイフン(-)を使うことは推奨されていない
- 自作ライブラリのimportの仕方
- .pycというファイルはライブラリimportしたときに生成されるファイル
- プログラムの絶対パスの取得の方法
ダメダメですね
おまけ機能
温度、湿度だけしゃべるのも面白くないので、以下で作ったbotのソフトを使い回ししてたまに会話してくれるbotにしてみました。
本当は仕事も育児休暇をとるべく、クラウドファンディングで大儲けしてくれるような記憶があります。下記リンク先にバイナリファイルを置いておくと思い出話も盛り上がります。
— lemon_chan_bot (@lemon_chan_bot) 2016年8月8日
私の方のウィンドウの上の式のrとDにそれぞれ対応して下さい。ほんのり香るバナナの香りにフィリピーナの情熱が溶け出しているかどうかですね。
— lemon_chan_bot (@lemon_chan_bot) August 9, 2016
なかなか電波な感じですね。
まとめ
というわけで今更ながらよくあるbotを作ってしまいました。妻の評判は上々です。やったね!そしてこれで「電波ガーデニング」ようやくIoTになりましたね。今後の改良案としては以下があって、頑張ればそれぞれ1時間くらいでできる気はするのですが、どこまでやるかは迷い中です。誰か気が向いたら作って下さい(人任せ)。
- 家庭菜園の写真をツイート
- 温度・湿度の1日毎のグラフをツイート
- ツイートを学習して会話を覚える
変更履歴
- 2017/08/21 .twitter_configへの注記を追加