バージョン情報
NOOBS 1.13.11 , raspberry pi A+ , Linux raspberrypi 3.12.35+ , Python 2.7.3, Arduino IDE 1.0.6 , windows 8.1,
前回つくったArduino温湿度計をraspberry Piにつないで、コンソールに温度湿度を表示してみた。
raspberry Piでシリアル通信をする為の準備
初期設定画面からシリアル通信を有効にする。
1 | sudo raspi-config |
8.Advanced option –> A7 Serial –> No
設定が完了すると /boot/cmdline.txt が以下のように変更される。
変更前
1 | dwc_otg.lpm_enable= 0 console=tty1 console=ttyAMA0, 115200 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait |
変更後
1 | dwc_otg.lpm_enable= 0 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait |
※注意:以前/boot/cmdline.txtを直接編集し、間違えて編集しraspberry piが起動しなくなったので直接編集する場合は要注意。
次にpythonでシリアル通信するためのライブラリをインストールする。
1 | sudo apt-get install python-serial |
準備が整ったらraspberry piを再起動。
材料
HDC1000使用 温湿度センサーモジュール (秋月電子 @¥680)
Arduino
8ビット双方向ロジックレベル変換モジュール(秋月電子@¥250)
raspberry Pi A+
回路
ArduinoとraspberryPiのシリアル通信用のピンを接続する。但しArduinoは5V 、raspberryPiは3.3Vなので、間にレベル変換モジュールを使用した。
ソースコード
Arduinoのソースは前回つくったものをそのまま利用。
raspberryPi側はpythonで1秒毎に時刻と温度と湿度を表示するプログラムにしてみた。
1 2 3 4 5 6 7 8 9 10 11 12 | import serial import time if __name__ = = '__main__' : gpio_seri = serial.Serial( '/dev/ttyAMA0' , 38400 , timeout = 10 ) print (gpio_seri.portstr) time.sleep( 3 ) while 1 : gpio_seri.write( 'get' ) time.sleep( 1 ) data = gpio_seri.readline() print (time.ctime() + ',' + data) |
「raspberry Pi A+ と Arduinoでシリアル通信」への1件のフィードバック