[RaspberryPi] ラズパイ3B+とKuman kitsで温湿度計+時計の液晶モニターを作ってみた

Pocket

楽天ブックス

ラズパイって

ご存じですか?
小さくて安いお手軽超小型PCボードで、本ブログでも過去に何度か紹介してます。

今回何か作ってみたいなぁと思って、新たにラズパイスターターキットとKuman kitsを購入しました。

スターターキット

Kuman kits(Amazonのみ)

スターターキットはSDカードやスイッチ付き電源アダプタやボックスなどが付いていて、即ラズパイが使えるようになってます。

Kumanキットは温湿度センサや液晶モニターやブレッドボード、ジャンパーワイヤー等が付いていて、色んな電子工作が出来るようになってます。

何を作るか

いずれは、家族がエアコンを点ける時の温湿度を学習して部屋の温湿度に応じて自動でエアコンをオンオフさせたり出来たらいいなぁと思ってます。そうすれば、愛犬ハッピーをお留守番させて外出してる時も自動でエアコンがオンオフされるので、部屋が暑過ぎず寒過ぎず快適になって、お留守番させてても安心です。(^^)

とは言え、いきなりそんなのは作れないので、まずは温湿度を液晶モニターに表示させるのを作りました。ついでに日時も表示するようにしました。

ハード構成

Kumanキットの中で使うのは以下です。

  • ブレッドボード
  • 温湿度センサ
  • 液晶モニター
  • ジャンパーワイヤー(メス-メス)
  • ジャンパーワイヤー(オス-オス)

▼ブレッドボードは以下のように、上下端は2ラインずつ横に繋がってて、中は縦に2ラインが横方向に並んだ構成になってます。

赤線部分が繋がった部分です。
ここにオスタイプのジャンパーワイヤーやICの足を刺して回路を組みます。

Kumanキットには8cmCDも付いていて、この中に色んな回路のマニュアルやPythonコードも入ってます。
今回作る温湿度センサ+液晶モニターもマニュアルやPythonコードがあったんですが、ともに液晶モニターがI2C用ではなく前のバージョンの多ピンタイプ用でした。
(多ピンタイプだと接続が大変なので、最近の液晶モニターはI2C用に変わったようです。でも、マニュアルやPythonコードは対応してませんでした。(T_T))

▼以下のように液晶モニターに多ピン-I2C変換ボードが接続されてます。

▼また、温湿度センサのピン配置は以下です。

▼以下はラズパイのピン配置です。

接続

▼説明のために、ブレッドボードの各ラインを以下のような番号とします。

以下のように部品を接続します。

  1. 温湿度センサGND~ボード3(直刺し)
  2. 温湿度センサDATA〜ボード4(直刺し)
  3. 温湿度センサVCC〜ボード5(直刺し)
  4. ボード1〜オスジャンパー〜ボード5
  5. ボード2〜オスジャンパー〜ボード3
  6. ボード4〜オスジャンパー〜メスジャンパー〜ラズパイ8p
  7. ボード2〜オスジャンパー〜メスジャンパー〜液晶I2C GND
  8. ボード1〜オスジャンパー〜メスジャンパー〜液晶I2C VCC
  9. 液晶I2C SDA〜メスジャンパー〜ラズパイ3p
  10. 液晶I2C SCL〜メスジャンパー〜ラズパイ5p
  11. ボード1〜オスジャンパー〜メスジャンパー〜ラズパイ1p
  12. ボード2〜オスジャンパー〜メスジャンパー〜ラズパイ6p
Pythonコード

以下のコードをダウンロードして下さい。

Download Actiondht11.py

Download ActiontemperatureI2C.py

ダウンロードしたPythonコードをラズパイのお好きなフォルダにコピーして下さい。
私はアクセスしやすいようにラズパイのデスクトップにPythonというフォルダを作って、その中に入れてます。

準備

ラズパイでI2CやGPIOを使えるようにします。

ラズパイで以下のコマンドを実行して、設定画面を出して下さい。

sudo raspi-config

▼設定の「5 Interfacing Options」をカーソルキーで選択してEnter

▼「P5 I2C」をカーソルキーで選択してEnter

▼「はい」「了解」でI2Cの有効化終了

同様にして、「P8 Remote GPIO」も有効化して下さい。「P2 SSH」「P3 VNC」「P4 SPI」もよく使うと思うので、ついでに有効化しておくといいと思います。

I2C利用準備

ラズパイのターミナルで以下を入力

sudo nano /etc/modules

以下の2行を追加して保存

i2c-dev
i2c-bcm2708

以下のコマンドで一旦再起動

sudo reboot

Pythonライブラリのインストール

ラズパイのターミナルに以下を入力

sudo apt-get install i2c-tools python-smbus

I2Cのバス番号、デバイスアドレス取得

バス番号1として、以下のコマンドを入力

sudo i2cdetect -y 1

▼エラーがなければ以下のようにデバイスアドレスが表示されます。この場合は0×27がアドレスになります。

もしエラーが出た場合は、バス番号を0として

sudo i2cdetect -y 0

を入力してみて下さい。

Pythonコードのカスタマイズ

▼Pythonコード temperatureI2C.pyの以下の赤枠部分がI2Cデバイスアドレスです。
先程調べたアドレスに書き換えて下さい。

実行してみる

ラズパイのターミナルで、Pythonコードを保存したフォルダに移動(以下はデスクトップのPythonフォルダに移動する例)

cd ~/Desktop/Python

以下でtemperatureI2Cを実行

sudo python temperatureI2C.py

▼液晶モニターに日時と温湿度が表示されます。

見にくいかもしれませんが、1行目が「08/08 20:51:47」、2行目が「temp:28C,hum:50%」
と表示されてます。
この液晶はコントラストがイマイチで見にくいのが難点です(><)

▼「ctrl+c」でプログラムを止めることが出来て、「Goodbye!」と表示されます。

別の実行方法

今までの実行方法はPCを使って、ネット上のラズパイにSSH接続やVNC接続して実行するものでした。
でも、ラズパイのPythonコードをただ実行するだけなのに、わざわざPCを立ち上げるのは面倒くさい!
ということで、iPhoneから簡単にラズパイのPythonコードを実行できるアプリを紹介します。

Termius – SSH client 4.4.1
分類: ユーティリティ,仕事効率化
価格: 無料 (Termius Corporation)

このアプリの設定方法や使い方は過去のブログで紹介してますので、そちらを参考にしてみて下さい。

※このアプリは初めて起動した時にアカウントを作るのにメアド登録を要求されます。
よくわからんアプリにメアドなんか登録したくないという人は「捨てメアド」というアプリで作ったメアドを登録すれば大丈夫です。私も捨てメアドを登録しました。

捨てメアド 2.0.16
分類: ユーティリティ,仕事効率化
価格: 無料 (Aki Ueno)

使ってみる

▼Hostsをタップして、登録したホストをタップ

▼以下のようにすれば、ラズパイのデスクトップにあるPythonフォルダのtemperatureI2C.pyが実行できます。

▼ちなみに、プログラムを止めるのは「・・・」をタップして「^c」をタップすれば「ctrl+c」と同じことができます。

最後に

ラズパイスターターキットとKumanキットを使って、温湿度センサ+時計の液晶モニターを作りました。
また、PCからだけでなくiPhoneからも起動できる方法を紹介しました。

今後は温湿度データを取得してエアコンのオンオフ条件を学習させたり、それに応じてエアコンのオンオフまで出来たらいいなぁと思います。(^^)

happyChappy(@happyChappy1115)でした。

Sponsored Link

Posted from するぷろ for iOS.

Pocket

コメントを残す