Google Code Prettify

2014年11月9日日曜日

Raspberryで自動温度測定 取得データの自動アップロード (DS18B20 + Google Drive)

オフィスに局所的に寒いところがあるので、温度を測定して記録を取る仕組みを考えました。局所的に寒いってことなんで、寒い所と普通の所の2カ所で測定が必要なんで、もう1つRaspberryを買い足しました。いつの間にかにRaspberry Pi Model B+なんて新機種も出てるようで。USB端子が増えてたり、メモリカードが出っ張らなくて全体的にスッキリした感じです。




ケースに入れると入出力用端子へのアクセスが不自由なので、その辺にあったIDEケーブルを挿して、ケーブルの先に各種入出力機器をつなげるようにしました。
これに温度センサーをくっつけ、無線通信ドングルくっつけて、自動温度測定が実現できます。
ただ、Arduinoと違いA/D変換ができないので、そこらへんでよく見るようなアナログセンサーではダメです。いろいろ検索したら、DS18B20というセンサーがご丁寧にデジタル信号を出してくれるもので、Raspberryと連携させている人がたくさんいるようで、あとはモノマネ+カスタマイズで完了です。

プルアップの抵抗とセンサーを小さな基盤に半田付けするだけなのですが、かなりてこづりました。中学生の時の「技術」の時間に作った半田ごてを使い(変圧器も)、半田付けをしましたが、どうやら手際が悪かったのか、熱でセンサーを痛めてしまったらしく、温度センサーがゴミデータを返すだけです。。

仕方ないので、まともな半田ごてや半田ごてをのせる台やら、センサーを基盤に直付けしないで済むように、ソケットを買ったり、そもそもセンサーが正常かどうか確かめるためにブレッドボードを買ったり、電子工作環境を整えることにしました。香港の秋葉原はシャムシュイポですが、秋葉原の秋月電子とかラジオデパートみたいなパーツ売りの店って、なかなか思いつきません。深センの華強まで行くのはおっくうなので、よ〜く探したところ、ちゃんとありました。シャムシュイポに。

Welfare Electronic Component Ltd (華輝無線電行)
http://www.weclonline.com/tchi/index.asp

華輝無線電行ってとこでいろいろ買い込んで、温度センサーのほうは、Raspberryを買った泰豪科技というお店でまた買い直しました。これで4つセンサーを買ってます。センサー好きな日本人って覚えられてしまったような。
30年前と同じようなことを香港でしてるのが、情けないですが、好きでやってるんで気にしないと。

TELL HOW TECHNOLOGY (泰豪科技)
http://tellhow-tech.com

とりあえず、1に書いてある要領でセンサーからデータを取得できることを確認し、そこから2に書いてあることを実行します。センサーのIDがRaspberryの再起動とともにコロコロ変わってしまうので、IDを自動で検知するようにしたり、データの吐き出し先を外部のデータベースではなく、ローカルのテキストファイルに切り替えて、3で書いてある要領でGoogle Driveへの同期という仕組みに切り替えます。これで、通信が安定してないとしても、確実にデータの測定だけは続け、繋がったときに最新データをGoogle Driveに同期させることができます。

1. Connecting a temperature sensor to GPIO
http://raspberrywebserver.com/gpio/connecting-a-temperature-sensor-to-gpio.html

2. Temperature monitoring with the Raspberry Pi
http://iada.nl/en/blog/article/temperature-monitoring-raspberry-pi

3. Back up your Pi to your Google drive
http://raspberrywebserver.com/serveradmin/back-up-your-pi-to-your-google-drive.html

4. Raspberry piとGoogleドライブでバックアップ環境
http://blog.gogo-games.com/?p=167