ラズベリーパイで温度・湿度・大気圧を測定する
最終更新日: 2017/08/18 1:18pm
こんにちは。経理の小高です。
弊社も夏休みが終わりました。夏休みの自由研究に先日初期設定したラズベリーパイ(Raspberry Pi 3 Model B)にセンサーを取り付けてみました。
ラズパイの初期設定については、ブログ「Raspberry Pi3 Model Bを初期設定する」を参照ください。
インターネットを調べてみると、BME280というセンサーで温度と湿度、大気圧が測定できると書いてあります。雑誌「インターフェイス2017/9号」の「センサー辞典」にも出ていました。電気・電子はずぶの素人ですが、IoTっぽいのでこれを使ってみることにしました。
参考にさせていただいたサイト:
DEVICE PLUS :IT女子のラズベリーパイ入門奮闘記、第39回「ラズベリーパイで温度・湿度・気圧をまとめて取得!AE-BME280でIC2通信」
Karaage:Raspberry Pi + BME280モジュールで自動で温度・湿度・気圧を測定してグラフ化する
Amazon.comでHiLetgoのBME280を購入しました。これがセンサーがくっついている側。
裏側はこんな感じです。
ピンをはんだ付けしなくてはなりません。以下が用意したはんだ付けセットです。はんだ、はんだごて、台、フラックス、ラジペン。
頑張ってはんだ付けしてピンにジャンパー線を指したところです。はんだが玉になっていて素人感丸出しですが、とりあえずなんとかくっつきました。
これがつないだところです。なんとも不安定な感じ。
センサーとラズパイの間はI2Cというシリアル通信で通信します。Raspberry Piの設定でI2Cを有効にします。
ここまでくれば、スイッチサイエンスさんのサンプルコード(Python)で温度と湿度と大気圧が取得できます。
[shell]
git clone https://github.com/SWITCHSCIENCE/BME280.git
[/shell]
ここで「あれっ」と思ったのが湿度。取得した数値は50%くらい。こんなに低いはずはありません。キャリブレーションをどうしたもんかと思いましたが、温度と湿度はシンプルにタニタさんの温湿度計に合わせました。大気圧はSiriに聞けば教えてくれます。
ラズパイにurl3のpythonライブラリーが入っていたので、即席に下のような仕組みを作ってみました。ラズパイからは1分間隔でクラウド(Amazon Web Services)にデータを飛ばしてデータベースに格納。それをChart.jsでグラフ化します。
即席のWebアプリはCakePHP3で制作したので、「RaspberryCake(ラズベリーケーキ)」というアプリ名にしました。
「温度と湿度は逆に動く」のですね。相対湿度をいうそうですが、初めてしりました。
なかなか面白いものですね。
大学生の息子がいるのですが、「学校ではんだ付けをした」という話を聞いたことがありません。
小学生もパソコンの授業があるようですから、夏休みの課題にちょうどいいと思います。
この例ではクラウドをつかってグラフを表示しましたが、ラズパイに軽いHTTPサーバー(Pythonが入っているのでBottleとか)をいれれば、ラズパイだけで完結する構成もできそうです。
雑誌「インターフェイス2017/9号」にいろいろなセンサーが出ているので、いろいろ試してみようと思います。
←「スマートフォンからのOffice365利用(メール/予定表/OneDrive)」前の記事へ 次の記事へ「WindowsCreatorsUpdate適用後のOutlook送受信の不具合対応」→