raspberry Pi A+ と Arduinoでシリアル通信

バージョン情報
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

serial

設定が完了すると /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なので、間にレベル変換モジュールを使用した。
回路2_2

ソースコード

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)

動作確認

SSH接続したPCから実行すると、温度・湿度が表示された。
動作確認_2

raspberry Pi A+ と Arduinoでシリアル通信」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です