Raspberry PiとPython2.7でXBee + Arduino + 温湿度センサー値受信
コーディネータは、ZIGBEE COORDINATOR APIに設定。
温湿度センサーは、ZIGBEE ROUTER APIに設定。
コーディネータとなるXBeeは、XBeeエクスプローラUSBなどでRaspberry Piと接続。
温湿度センサーのXBeeは、ワイヤレスプロトシールドなどで接続。
Rasbianに以下のライブラリをインストール。
$sudo apt-get install python-serial $wget https://python-xbee.googlecode.com/files/XBee-2.0.0.tar.gz $tar zxvf XBee-2.0.0.tar.gz $sudo python ./XBee-2.0.0/setup.py install
コーディネータのポートを調べる。
$ls /dev/tty*
Pythonソースは以下となる。
# -*- coding: utf-8 -*- #!/usr/bin/env python import serial import time import datetime from xbee import XBee,ZigBee ser = serial.Serial( port='/dev/tty***', baudrate=9600, timeout=1 ) xbee = ZigBee(ser) def main(): try: while True: recv_data = xbee.wait_read_frame() if not recv_data: print 'not recv' time.sleep(0.1) continue if recv_data.has_key('rf_data'): thermo_hygro = recv_data['rf_data'] date = datetime.datetime.today().strftime('%Y/%m/%d %H:%M:%S') print date, thermo_hygro time.sleep(0.1) finally: if xbee != None: xbee.halt() if ser != None: ser.close() if __name__ == '__main__': main()