Raspberry Piで作る温度計の見せ方あれこれ/20150905-osc15ni

74476e142a767a018d68c5e72e34ee2f?s=47 Akira Ouchi
September 06, 2015

Raspberry Piで作る温度計の見せ方あれこれ/20150905-osc15ni

OSC2015 Niigata ライトニングトークにて発表

74476e142a767a018d68c5e72e34ee2f?s=128

Akira Ouchi

September 06, 2015
Tweet

Transcript

  1. Raspberry  Piでつくる   温度計の見せ方あれこれ あっきぃ  (  id:Akkieso2  )    2015/09/05

       OSC2015  Niigata  
  2. 自己紹介 •  あっきぃ です(27歳)   •  北海道根室市出身   •  渋谷で仮想化エンジニアしてます  

    •  Ejectコマンドユーザー会セラピスト   •  Japanese  Raspberry  Pi  Users  Groupとしても   活動中   •  Rubyで書かれたOSSのTwiKerクライアント 「mikuKer」ヘビーユーザー  
  3. 今日は   Ejectの話では   なかった!!

  4. みんな大好き   Raspberry  Piの   話

  5. Raspberry  Pi   持て余してる人?

  6. Raspberry  Pi×温度計と言う提案 •  Raspberry  Piで何をしたらいいかわからない?   •  PCとして使ってもいいし、電子工作もできる   • 

    でもPCってみんないいスペックのマシン持っ てるからいらないよね   •  じゃあ何しよう?サーバー?   •  そんな時は、とりあえず温度センサーを   つなごう(唐突)  
  7. 温度センサーは簡単 •  DS18B20という温度センサーを使おう   •  1-­‐Wireと言う規格で、簡単につながる   •  秋月電子で350円くらいで買えるし、製作も抵 抗1個とケーブルだけで簡単

      •  面倒だったらdx.comで買おう   – hKp://www.dx.com/s/ds18b20   – 組み立て済みが400円くらい(2週間かかるけど送 料無料〜1.7ドル)  
  8. 組み立て •  4.7kΩの抵抗を3VとDATAの間につなぐ   •  ピンヘッダケーブルをつなぐ  

  9. 接続 •  VCCをRPiの3.3Vにつなぐ   •  DATAをGPIO4につなぐ   – 設定を書き換えると違うところにも挿せるョ   • 

    GNDをGNDにつなぐ   •  簡単ですね
  10. 設定と読み取り •  2015/02以降のRaspbianでやろう   •  /boot/config.txtにこれを追記   – dtoverlay=w1-­‐gpio   • 

    簡単ですね  
  11. 読み取り •  26625→26.625℃   •  簡単ですね $  cat  /sys/bus/w1/devices/28-­‐000003daa2d8/w1_slave  

    aa  01  4b  46  7f  ff  06  10  84  :  crc=84  YES   aa  01  4b  46  7f  ff  06  10  84  t=26625
  12. で、 •  これをどう面白く見せるか?   •  データを記録し続けてビッグデータ化   •  ディスプレイして見た目にわかりやすくする  

    •  室温に応じてエアコンを操作   •  色々できる   •  広がる可能性!
  13. 室温を記録し続ける •  オープンソースのサーバー監視ツールZabbix を利用して、室温を記録し続ける   •  グラフ表示すると室温の変動を見られる   •  部屋が暑くなりすぎたら(寒過ぎたら)

      アラートを出すとかできる
  14. Zabbixで記録した室温 •  1月〜今日までのグラフ   •  左半分の緑の線は取得エラー   (途中で改善した)  

  15. 記録の仕方 •  Zabbix  ServerとZabbix  Agentのインストールと 設定は割愛   •  RPiのapt-­‐getで入るZabbix  Agentは1.8だけど

    2.4のServerにデータを投げても大丈夫っぽい   •  スクリプトをcrontabで1分おきに実行しよう   •  スクリプトのgist  URL   – hKps://gist.github.com/Akkieso2/ 8ecb75a73c14bbd79167
  16. スクリプト #!/bin/bash   for  i  in  `seq  3`   do

         TEMP=`cat  /sys/bus/w1/devices/<温度センサーの番号>/w1_slave`      TEMP=`echo  $TEMP  |  awk  '{print  substr($0,  index($0,  "t=")  +  2)}'`      TEMP_CHK=`echo  $TEMP  |  sed  -­‐e  's/\(.\{2\}\)\(.\{3\}\)/\1/'`      if  test  $TEMP_CHK  -­‐gt  0  -­‐o  $TEMP_CHK  -­‐lt  60;  then          break      fi   done   TEMP=`echo  $TEMP  |  sed  -­‐e  's/\(.\{2\}\)\(.\{3\}\)/\1.\2/'`   echo  "-­‐  room_temp  $TEMP"  |  zabbix_sender  -­‐z  <ZabbixサーバーIP>  \          -­‐s  <RPi  ホスト名>  -­‐i  -­‐  >  /dev/null
  17. _人人人人_
 >  次  <
  ̄^Y^Y^Y^ ̄

  18. おもしろくディスプレイする •  dx.comで売られているLCDモジュールを使っ て、室温を表示してみる   – hKp://www.dx.com/s/raspberry+pi+PCD8544   •  モジュールはPythonでいろいろできる  

    •  室温と一緒に画像を出して、暑かったら画像 を差し替える   •  スクリプトはgistで配布   – hKps://gist.github.com/Akkieso2/ 519ab12aa71ac0cfa8c0
  19. ファッキンホット温度計

  20. ファッキンホット温度計

  21. なんなのこれは •  会社で使用するために作った   •  室温を2つ表示   – 社内のサーバールームに温度計を置いてZabbix に投げたものを、Zabbix  APIで取得した値

      – その場の室温   •  どっちかの室温が30度を超えたらファッキン ホット(と言うネタの)画像を表示する  
  22. ファッキンホット温度計

  23. よいところ •  たいへんわかりやすい   •  OSCでデモ映えする   •  その他のイベントでデモ映えする  

    •  わりとウケる   •  俺得  
  24. _人人人人_
 >  次  <
  ̄^Y^Y^Y^ ̄

  25. エアコンのリモート操作と   組み合わせる •  「エアぴっぴ」   hKps://github.com/Akkieso2/airpippi   •  エアコンをリモートから操作するためのソフト

    ウェアプロジェクト   •  ハード部分は「Raspberry  Pi  [実用]入門」 AppendixBを参考にして作ってね  
  26. Raspberry  Pi  [実用]入門 AppendixB •  完全に不穏な章   •  ですが、Ejectなしで実装できます

  27. ハード •  市販のエアコン向け汎用リモコン(500円)の 電源ボタンの回路をハックして、RPiで操作で きるようにしたもの   •  赤外線学習させるコストゼロ。メーカーコード 設定だけでおわる  

  28. エアぴっぴスクリーンショット

  29. TwiKer連携 ・メンションを投げて 操作できるようになる

  30. 人といきものにやさしい •  人間にとって便利であり、自宅でペットを飼っ ている人にはペットにやさしい   •  室温を確認してエアコン操作   •  エアコンを消し忘れて

      外出したら消す   •  帰る直前に電源ON
  31. まとめ •  Raspberry  Piで何するか迷ったらとりあえず   温度センサー   •  温度が取れるようになったら、色々やってみ たいものが見えてくる、はず

      •  はじめのうちはオリジナルは目指さず、他人 のアイデアをパク……参考にしよう☝(  ՞ਊ  ՞)☝   •  まずはZabbixで記録してみませんか?
  32. はいRPiポチポチしましょうね^〜

  33. はいdx.comでポチりましょうね^〜

  34. .  ☝           ՞    _人人人人人_  > (     ) <  ☞     ̄Y^Y^YY^Y^Y ̄

     ՞         ਊ   ͓ΘΓ