CONTACT
お問い合わせ

RaspberryPiを利用した気温湿度センサーの開発

RaspberryPiを利用した気温湿度センサーの開発手順を説明する。

目次

構築手順

  1. 準備
  2. 構築手順
  3. 今後の課題

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表示