LoginSignup
2
3

More than 5 years have passed since last update.

ラズパイでオフィス環境をセンシングしてグラフ化する【ハード準備編】(2/4)

Last updated at Posted at 2018-07-04

ラズパイでオフィス環境をセンシングしてグラフ化するのハード準備編です。

この記事では次の作業を行います。

ラズパイにsshでログインできるようにする

HDMIモニターでの作業は辛いため、まずはPCからsshログインできるようにします。

パスワードを設定する

piとrootのパスワードを設定します。
piの初期パスは raspberry です。

pi@raspberrypi:~ $ passwd
pi 用にパスワードを変更中
現在の UNIX パスワード:
新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ sudo passwd
新しい UNIX パスワードを入力してください:
(以下略)

WiFiにつなぐ

画面右上のプルダウンから選択し、接続します。
image.png

ssh接続を許可する

画面右上のメニューから 設定 → RaspberryPiの設定 → インターフェース を選択してsshを有効にします。
image.png

ホスト名を設定する

複数のラズパイがあるとワケが分からなくなるのでホスト名を設定します。
先のssh接続と同様に RaspberryPiの設定 → システム で行います。

ログイン可能なユーザーをpiに絞る

念のためsshd_configにAllowUsersを追記します。

root@raspi-is:~#  grep AllowUsers  /etc/ssh/sshd_config 
AllowUsers pi
root@raspi-is:~#  systemctl reload ssh
root@raspi-is:~# 

ラズパイのGPIOピンを設定する

今回使用するセンサーはI2CまたはUARTでラズパイに接続します。
ラズパイ側でこれらを使用可能にします。

ラズパイのピン配列と今回使用するピンについて

設定を行う前にラズパイのピン配列について確認します。
公式が分かりづらかったので別のところから引用させて頂きます。

次の通りです。
https://pc.watch.impress.co.jp/docs/column/nishikawa/1006048.html

image.png

今回使用するセンサーとは次の通りつなぎます。

センサー 接続方法 I2C信号線 (SDA,SCL) UART信号線 (TX,RX) 3.3V電源 5V電源 GND
BME280
TSL2561
I2C
MH-Z19 UART

基本的にはそれぞれのセンサーに信号線2本と電源とGNDの計4本ずつがつながっているかたちになります。

ラズパイでI2Cを有効にする

設定はGUIの RaspberryPiの設定 か、もしくはCUIの raspi-config で行います。
GUIの RaspberryPiの設定 であれば、インターフェースタブでI2Cの有効無効が指定できます。

CUIはraspi-configを起動し 5 Interfacing Options → P5 I2C で有効無効が指定できます。
次の通り。

pi@raspi-is:~ $ sudo raspi-config

image.png

image.png

ラズパイでUARTを有効にする

同様にraspi-configで設定します。
次の通り。

5 Interfacing Options → P6 Serial → (serialからログイン?) <いいえ>を選択 → (ポート有効?) <はい>を選択

image.png

image.png

image.png

image.png

image.png

その後 serial-getty@ttyS0.service が有効ならば無効にします。

root@raspi-is:~# systemctl status serial-getty@ttyS0.service
● serial-getty@ttyS0.service - Serial Getty on ttyS0
   Loaded: loaded (/lib/systemd/system/serial-getty@.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2017-12-21 04:29:57 UTC; 4s ago
     Docs: man:agetty(8)
           man:systemd-getty-generator(8)
           http://0pointer.de/blog/projects/serial-console.html
 Main PID: 19561 (agetty)
   CGroup: /system.slice/system-serial\x2dgetty.slice/serial-getty@ttyS0.service
           └─19561 /sbin/agetty --keep-baud 115200,38400,9600 ttyS0 vt220

12月 21 04:29:57 raspi-yh systemd[1]: Started Serial Getty on ttyS0.
root@raspi-is:~# 
root@raspi-is:~# systemctl stop serial-getty@ttyS0.service
root@raspi-is:~# systemctl disable serial-getty@ttyS0.service
Removed /etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service.

BME280をつなぐ

BME280は温度、湿度、気圧が計測できるセンサーです。
http://akizukidenshi.com/catalog/g/gK-09421
http://akizukidenshi.com/download/ds/akizuki/AE-BME280_manu_v1.1.pdf

電源電圧は1.71~3.6Vで、I2CまたはSPIで通信できます。
今回はI2C(アドレスは0x76)になるよう、次の通り接続します。

センサー側ピン ラズパイ側ピン 補足
(1) VDD(電源+) (pin01)
3.3V電源
1.71~3.6V
(2) GND (pin09) GND
(3) CSB(チップ選択) (pin01)
3.3V電源
I2CとSPIの選択。
I2CならJ3をジャンパするか、こことVDDを接続。
(4) SDI(データ入力) (pin03) SDA1 信号線
(5) SDO(データ出力) (pin09) GND I2Cでセンサーを識別するアドレスを選択。
GNDをつなぐとデフォルト[0x76]。
(6) SCK(クロック入力) (pin05) SCL1 信号線
センサー側ジャンパ 状態 補足
J1 オープン ラズパイで対応
J2 オープン ラズパイで対応
J3 オープン CSBで対応

image.png

正しく接続出来るとi2cdetectでアドレスが出てきます。

pi@raspi-is:~ $ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- 76 --                         

TSL2561をつなぐ

TSL2561は照度が計測できるセンサーです。
http://akizukidenshi.com/catalog/g/gM-08219
https://learn.adafruit.com/tsl2561?view=all

次のドキュメントを参考にI2C(アドレスは0x39)で接続します。
https://learn.adafruit.com/tsl2561?view=all#wiring-up-the-sensor

センサー側ピン ラズパイ側ピン 補足
Vin (pin01) 3.3V電源
GND (pin09) GND
3vo 未接続
Addr 未接続 I2Cアドレスが選択できる。
未接続ならデフォルト[0x39]。
Int 未接続
SDA (pin03) SDA1 信号線
SCL (pin05) SCL1 信号線

image.png

正しく接続出来るとi2cdetectでアドレス(39)が出てきます。

pi@raspi-is:~ $ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- 39 -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- 76 --                         

MH-Z19をつなぐ

MH-Z19はco2濃度が計測できるセンサーです。
https://ja.aliexpress.com/item/1PCS-module-MH-Z19-infrared-co2-sensor-for-co2-monitor-Free-shipping/32371956420.html
http://www.winsen-sensor.com/e/search/result/?searchid=745
http://www.winsen-sensor.com/d/files/PDF/Infrared%20Gas%20Sensor/NDIR%20CO2%20SENSOR/MH-Z19%20CO2%20Ver1.0.pdf
http://www.winsen-sensor.com/d/files/infrared-gas-sensor/mh-z19b-co2-ver1_0.pdf

ECサイトにはMH-Z19と書いてありましたが、届いたものにはMH-Z19Bと記載されていました。
ドキュメントを見比べるとMH-Z19Bではコマンドが増えてるようです。

このセンサーからはPWMまたはUARTで値が取れます。
今回はUARTを使います。

センサー側ピン ラズパイ側ピン 補足
Pin1 Vout 未接続
Pin2 UART(RXD) (pin08) TXD0 信号線
Pin3 UART(TXD) (pin10) RXD0 信号線
Pin4 SR 未接続 Reserved
Pin5 HD 未接続
Pin6 Vin (pin02) 5V電源
Pin7 GND (pin06) GND
Pin8 AOT 未接続 Reserved
Pin9 PWM 未接続

image.png

以上で接続完了です。

次は ラズパイでオフィス環境をセンシングしてグラフ化する【センサー値取得編】(3/4) です。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3