RaspberryPiを利用した気温湿度センサーの開発
RaspberryPiを利用した気温湿度センサーの開発手順を説明する。
目次
構築手順
1.準備
以下環境を準備する。
1.RaspberryPi
今回はRaspberry Pi3 Model Bを利用。基本的なセッティングは済んでいる状態で以下を開始。
2.DHT11 Temperature/Humid Sensor
温度・湿度計測モジュール
3.I2C 1602 LCD screen
ディスプレイ
4.breadboardとGPIO breakout kit
breadboardは配線拡張ボード(青枠部)。
GPIO breakout kitはRaspberryPi本体と配線拡張ボードの接続部(赤枠部)。
※2~4はOSOYOO(オソヨー)Pi 3 DIY Kit 22in1のパーツを使用
OSOYOO(オソヨー)Pi 3 DIY Kit 22in1
2.構築手順
1.RasberryPiを最新のバージョンにアップグレードする。
pi@raspberrypi:~ $ sudo apt-get update
Hit http://mirrordirector.raspbian.org jessie InRelease
Hit http://archive.raspberrypi.org jessie InRelease
Hit http://mirrordirector.raspbian.org jessie/main armhf Packages
Hit http://archive.raspberrypi.org jessie/main armhf Packages
Hit http://mirrordirector.raspbian.org jessie/contrib armhf Packages
Hit http://mirrordirector.raspbian.org jessie/non-free armhf Packages
Hit http://archive.raspberrypi.org jessie/ui armhf Packages
Hit http://mirrordirector.raspbian.org jessie/rpi armhf Packages
Ign http://archive.raspberrypi.org jessie/main Translation-en_GB
Ign http://mirrordirector.raspbian.org jessie/contrib Translation-en_GB
Ign http://mirrordirector.raspbian.org jessie/contrib Translation-en
Ign http://archive.raspberrypi.org jessie/main Translation-en
Ign http://mirrordirector.raspbian.org jessie/main Translation-en_GB
Ign http://mirrordirector.raspbian.org jessie/main Translation-en
Ign http://archive.raspberrypi.org jessie/ui Translation-en_GB
Ign http://mirrordirector.raspbian.org jessie/non-free Translation-en_GB
Ign http://mirrordirector.raspbian.org jessie/non-free Translation-en
Ign http://archive.raspberrypi.org jessie/ui Translation-en
Ign http://mirrordirector.raspbian.org jessie/rpi Translation-en_GB
Ign http://mirrordirector.raspbian.org jessie/rpi Translation-en
Reading package lists... Done
pi@raspberrypi:~ $ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
bind9-host debconf debconf-i18n debconf-utils gtk2-engines-pixbuf
libbind9-90 libc-ares2 libdns-export100 libdns100 libdvdnav4
libgnutls-deb0-28 libgnutls-openssl27 libgtk2.0-0 libgtk2.0-bin
libgtk2.0-common libirs-export91 libisc-export95 libisc95 libisccc90
libisccfg-export90 libisccfg90 liblwres90 libsmbclient libwbclient0 perl
perl-base perl-modules python-gpiozero python3-gpiozero samba-common
samba-libs xarchiver
32 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 20.2 MB of archives.
After this operation, 692 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.raspberrypi.org/debian/ jessie/main python-gpiozero all 1.4.0 [89.4 kB]
Get:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main perl armhf 5.20.2-3+deb8u8 [2,079 kB]
Get:3 http://archive.raspberrypi.org/debian/ jessie/main python3-gpiozero all 1.4.0 [87.5 kB]
Get:4 http://mirrordirector.raspbian.org/raspbian/ jessie/main perl-base armhf 5.20.2-3+deb8u8 [1,104 kB]
Get:5 http://mirrordirector.raspbian.org/raspbian/ jessie/main perl-modules all 5.20.2-3+deb8u8 [2,547 kB]
※~略~※
Get:28 http://mirrordirector.raspbian.org/raspbian/ jessie/main libisccc90 armhf 1:9.9.5.dfsg-9+deb8u13 [34.9 kB]
Get:29 http://mirrordirector.raspbian.org/raspbian/ jessie/main libisccfg90 armhf 1:9.9.5.dfsg-9+deb8u13 [51.0 kB]
Get:30 http://mirrordirector.raspbian.org/raspbian/ jessie/main libbind9-90 armhf 1:9.9.5.dfsg-9+deb8u13 [41.7 kB]
Get:31 http://mirrordirector.raspbian.org/raspbian/ jessie/main liblwres90 armhf 1:9.9.5.dfsg-9+deb8u13 [48.3 kB]
Get:32 http://mirrordirector.raspbian.org/raspbian/ jessie/main xarchiver armhf 1:0.5.4-1+deb8u2 [436 kB]
Fetched 20.2 MB in 11s (1,733 kB/s)
Reading changelogs... Done
Extracting templates from packages: 100%
Preconfiguring packages ...
(Reading database ... 115617 files and directories currently installed.)
Preparing to unpack .../perl_5.20.2-3+deb8u8_armhf.deb ...
Unpacking perl (5.20.2-3+deb8u8) over (5.20.2-3+deb8u7) ...
Preparing to unpack .../perl-base_5.20.2-3+deb8u8_armhf.deb ...
Unpacking perl-base (5.20.2-3+deb8u8) over (5.20.2-3+deb8u7) ...
Processing triggers for man-db (2.7.5-1~bpo8+1) ...
Setting up perl-base (5.20.2-3+deb8u8) ...
(Reading database ... 115617 files and directories currently installed.)
※~略~※
Setting up libisccc90 (1:9.9.5.dfsg-9+deb8u13) ...
Setting up libisccfg90 (1:9.9.5.dfsg-9+deb8u13) ...
Setting up libbind9-90 (1:9.9.5.dfsg-9+deb8u13) ...
Setting up liblwres90 (1:9.9.5.dfsg-9+deb8u13) ...
Setting up bind9-host (1:9.9.5.dfsg-9+deb8u13) ...
Setting up xarchiver (1:0.5.4-1+deb8u2) ...
Setting up python-gpiozero (1.4.0) ...
Setting up python3-gpiozero (1.4.0) ...
Processing triggers for libc-bin (2.19-18+deb8u10) ...
2. I2CおよびSPIプロトコルを有効にする。
①下記コマンドで設定ウィンドウを表示する。
sudo raspi-config
②「5 Interfacing Options」を選択
③「P4 SPI」を選択
④「YES」を選択
⑤有効になったことを確認し「OK」
⑥「5 Interfacing Options」を選択
⑦「P5 I2C」を選択
⑧「YES」を選択
⑨有効になったことを確認し「OK」
⑩「Finish」を選択
3.起動時の読み込みモジュールの追加
下記コマンドを実行しファイルに2行追記する。
sudo vi /etc/modules
◎ i2c-bcm2708
◎ i2c-dev
4.RaspberryPiを再起動する
sudo reboot
5.smbusとi2cのPythonライブラリをインストールする
①smbusとi2cのPythonライブラリをインストールする
pi@raspberrypi:~ $ sudo apt-get install -y python-smbus i2c-tools
Reading package lists... Done
Building dependency tree
Reading state information... Done
i2c-tools is already the newest version.
python-smbus is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
②インストールチェック
「i2c_bcm2708」が存在すれば正常。
pi@raspberrypi:~ $ lsmod | grep i2c
i2c_gpio 4099 0
i2c_algo_bit 6921 1 i2c_gpio
i2c_bcm2835 7167 0
i2c_dev 6913 0
i2c_bcm2708 5994 0
6.配線
7.配線チェック
配線をチェックする。3fで正常である。
pi@raspberrypi:~ $ sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3f
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
8.ソースコードをダウンロード
pi@raspberrypi:~ $ sudo wget http://osoyoo.com/driver/dht11.py
--2017-07-30 13:28:13-- http://osoyoo.com/driver/dht11.py
Resolving osoyoo.com (osoyoo.com)... 158.69.116.108
Connecting to osoyoo.com (osoyoo.com)|158.69.116.108|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4819 (4.7K) [text/x-python]
Saving to: ‘dht11.py.1’
dht11.py.1 100%[=====================>] 4.71K --.-KB/s in 0s
2017-07-30 13:28:14 (83.3 MB/s) - ‘dht11.py.1’ saved [4819/4819]
pi@raspberrypi:~ $ sudo wget http://osoyoo.com/driver/pi-dht11-i2clcd.py
--2017-07-30 13:42:18-- http://osoyoo.com/driver/pi-dht11-i2clcd.py
Resolving osoyoo.com (osoyoo.com)... 158.69.116.108
Connecting to osoyoo.com (osoyoo.com)|158.69.116.108|:80... connected.
HTTP request sent, awaiting response... 200 OK
ength: 3167 (3.1K) [text/x-python]
Saving to: ‘pi-dht11-i2clcd.py.1’
pi-dht11-i2clcd.py. 100%[=====================>] 3.09K --.-KB/s in 0s
2017-07-30 13:42:19 (96.8 MB/s) - ‘pi-dht11-i2clcd.py.1’ saved [3167/3167]
9.必要に応じてソースコードを書き換える
今回は表示させる文言のみ変更。
10.実行
Ctrl + Cで停止
pi@raspberrypi:~ $ sudo python pi-dht11-i2clcd.py
^Cpi@raspberrypi:~ $
温度:27度 湿度:70%
と表示されてる。
3.今後の課題
◎ 観測データの蓄積、及びWEB表示