Raspberry Piで部屋の温度を定期的にTwitterに投稿
2016/05/12
価値ある情報をユーザー視点で発信するブログ
2016/05/12
ひとりぶろぐのmoyashi (@hitoriblog) です。
Raspberry Piよいです。
約3,300円で買えるLinuxパソコンRaspberry PiをMacで使う | ひとりぶろぐ |
僕の見立てによれば……、これはかなり流行るね!(←もう十分世界中で流行ってるし流行りすぎて買えない)
僕はモニタ無し、Arch Linux、母艦Macというかなり偏った使い方をしています。
現在TwiProwl / IMAProwlを動かしiPhoneの後方プッシュ通知支援部隊として活躍しているうちのRaspberry Piですが、もっとフィジカルコンピューティングっぽいことをしたい。
Strawberry Linuxで売ってるUSB温度/湿度センサーをRaspberry Piにつないで、Twitterに定期的に自分チの室温/湿度を定期的に投稿してみようかと。(続きは[Read More]から)
USB温度・湿度計モジュール・キット – USBRH – ネット販売 |
気づきましたか? このセンサーの方がRaspberry Piより高いんです。
とりあえず挿してみる。
dmesgを見ると認識しているようです。
[ 105.174653] usb 1-1.2: new low speed USB device number 5 using dwc_otg [ 105.281214] usb 1-1.2: New USB device found, idVendor=1774, idProduct=1001 [ 105.281248] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 105.281268] usb 1-1.2: Product: Hygrometer/Thermometer [ 105.281284] usb 1-1.2: Manufacturer: Strawberry Linux Co.,Ltd. [ 105.300881] generic-usb 0003:1774:1001.0002: hiddev0: USB HID v1.00 Device [Strawberry Linux Co.,Ltd. Hygrometer/Thermometer] on usb-bcm2708_usb-1.2/input0
センサーからのデータの取得には、ここにあるusbrhコマンドを利用。
USBRH on Linux |
ただし、これをコンパイルしただけだと「usb_set_configuration error」と出て動かないので、以下のページにある修正を施す。
USB温湿度計 – PukiWiki |
パッチにしました。
以下の手順でパッチを当てつつusbrhコマンドをコンパイル。
# pacman -S unzip patch gcc make # wget http://hitoriblog.com/wp-content/uploads/2012/07/usbrh.diff_.zip # unzip usbrh.diff_.zip # wget http://www.dd.iij4u.or.jp/~briareos/soft/usbrh-0.05.tar.gz # tar xvzf usbrh-0.05.tar.gz # patch -p0 <usbrh.diff # cd usbrh-0.05 # make # cp usbrh /usr/bin
この辺全部Raspberry Piにsshして実機上でやっている作業です。
セルフコンパイルでやっていけてしまうところがポイント。
試しに実行してみる。
# usbrh 29.26 43.09
動いた! 湿度まで取れてしまうなんて、このセンサーなかなかやりよるです。
取得した温度/湿度をTwitterに投稿してみませう。
# pacman -S ruby # gem install twitter
以下のページを参考に、アプリケーション登録をします。
【これは流行る】Tweetbotで投稿するときに付くクライアント名をカスタマイズする方法 | ひとりぶろぐ |
SettingsタブでAccess levelをRead and writeに設定してからDetailsタブのYour access token内、Create my access tokenボタンを押してトークンを生成。Detailsタブがこんな感じになればOK。
Access level Read and write About the application permission model Consumer key ---------------------- Consumer secret ------------------------------------------- Request token URL https://api.twitter.com/oauth/request_token Authorize URL https://api.twitter.com/oauth/authorize Access token URL https://api.twitter.com/oauth/access_token Callback URL None Your access token Use the access token string as your "oauth_token" and the access token secret as your "oauth_token_secret" to sign requests with your own Twitter account. Do not share your oauth_token_secret with anyone. Access token -------------------------------------------------- Access token secret ---------------------------------------- Access level Read and write
Consumer key, Consumer secret, Access token, Access token secretをメモる。
Rubyスクリプトを書く。メモっておいたConsumer key, Consumer secret, Access token, Access token secretを埋める。
テスト。
# ruby usbrh.rb
これでうまく投稿されていればひとまずOK。
温度29.00度 / 湿度43.12%RH
— moyashi (@hitoriblog) July 23, 2012
最後に、crontabに2時間おきぐらいの実行をスケジュール登録。
# crontab -e
こんなのを登録。
*/120 * * * * /usr/bin/ruby /root/usbrh.rb
これで、Raspberry Piの電源が入ってる限りは2時間おきにTwitterに温度と湿度を投稿し続けます。
でっていう!