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でシリアル通信をする為の準備

初期設定画面からシリアル通信を有効にする。

1
sudo raspi-config

8.Advanced option –> A7 Serial –> No

serial

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

ソースコード

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)

動作確認

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

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

コメントを残す

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