バージョン情報
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でシリアル通信をする為の準備
初期設定画面からシリアル通信を有効にする。
sudo raspi-config
8.Advanced option –> A7 Serial –> No
設定が完了すると /boot/cmdline.txt が以下のように変更される。
変更前
dwc_otg.lpm_enable=0 console=tty1 console=ttyAMA0,115200 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait
変更後
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait
※注意:以前/boot/cmdline.txtを直接編集し、間違えて編集しraspberry piが起動しなくなったので直接編集する場合は要注意。
次にpythonでシリアル通信するためのライブラリをインストールする。
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秒毎に時刻と温度と湿度を表示するプログラムにしてみた。
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件のフィードバック