To push buttons (or switches) on an XBee ZB device report the conditions of input ports on it to a Nucleo board, and display them on a LCD.

Dependencies:   TextLCD mbed xbee

Please refer to the following site for the details:

Committer:
bokunimowakaru
Date:
Sat Oct 04 01:44:53 2014 +0000
Revision:
7:c2abaaca46a5
Parent:
0:c4c775a72ba9
XBee lib's serial setting code on xbee.cpp is moved to 4th line on it.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bokunimowakaru 0:c4c775a72ba9 1 /*********************************************************************
bokunimowakaru 0:c4c775a72ba9 2 サンプルアプリ2 スイッチ
bokunimowakaru 0:c4c775a72ba9 3 子機のスイッチ2~4(Port1~3)を押した時に、その状態を液晶に表示します。
bokunimowakaru 0:c4c775a72ba9 4 XBee子機のDIO1~3(XBee_pin 19~17)をHigh や Low にすると PCまたはH8の
bokunimowakaru 0:c4c775a72ba9 5 親機にスイッチの状態が表示されます。
bokunimowakaru 0:c4c775a72ba9 6
bokunimowakaru 7:c2abaaca46a5 7 Sample Code 2 Switch
bokunimowakaru 7:c2abaaca46a5 8 To push buttons on an XBee ZB device report the conditions of input
bokunimowakaru 7:c2abaaca46a5 9 ports on it to a Nucleo board, and display them on a LCD.
bokunimowakaru 7:c2abaaca46a5 10 When you will use this anything other than Nucleo microcomputer board,
bokunimowakaru 7:c2abaaca46a5 11 please change the 4th line of xbee/xbee.cpp:
bokunimowakaru 7:c2abaaca46a5 12 RawSerial _xbee_serial(SERIAL_TX, SERIAL_RX);
bokunimowakaru 7:c2abaaca46a5 13
bokunimowakaru 0:c4c775a72ba9 14 本ソースリストおよびソフトウェアは、ライセンスフリーです。
bokunimowakaru 0:c4c775a72ba9 15 利用、編集、再配布等が自由に行えますが、著作権表示の改変は禁止します。
bokunimowakaru 0:c4c775a72ba9 16
bokunimowakaru 0:c4c775a72ba9 17 Copyright (c) 2010-2014 Wataru KUNINO
bokunimowakaru 0:c4c775a72ba9 18 http://www.geocities.jp/bokunimowakaru/
bokunimowakaru 0:c4c775a72ba9 19 *********************************************************************/
bokunimowakaru 0:c4c775a72ba9 20 /*
bokunimowakaru 0:c4c775a72ba9 21 port: port指定 IO名 ピン番号 USB評価ボード(XBIB-U-Dev)
bokunimowakaru 0:c4c775a72ba9 22 port=11 DIO11 XBee_pin 7 LED2 ※port11がLED2
bokunimowakaru 0:c4c775a72ba9 23 port=12 DIO12 XBee_pin 4 LED1 ※port12がLED1
bokunimowakaru 0:c4c775a72ba9 24 */
bokunimowakaru 0:c4c775a72ba9 25 #include "xbee.h"
bokunimowakaru 0:c4c775a72ba9 26 #include "TextLCD.h"
bokunimowakaru 0:c4c775a72ba9 27 TextLCD lcd(PA_9, PC_7, PB_5, PB_4, PB_10, PA_8); // rs, e, d4-d7
bokunimowakaru 0:c4c775a72ba9 28
bokunimowakaru 0:c4c775a72ba9 29
bokunimowakaru 0:c4c775a72ba9 30 int main(){
bokunimowakaru 0:c4c775a72ba9 31 byte data;
bokunimowakaru 0:c4c775a72ba9 32 int i;
bokunimowakaru 0:c4c775a72ba9 33 XBEE_RESULT xbee_result;
bokunimowakaru 0:c4c775a72ba9 34 // お手持ちのXBee子機(リモート先)アドレスに変更して下さい ↓
bokunimowakaru 0:c4c775a72ba9 35 byte dev_gpio[] = {0x00,0x13,0xA2,0x00,0x40,0x30,0xC1,0x6F};
bokunimowakaru 0:c4c775a72ba9 36
bokunimowakaru 0:c4c775a72ba9 37 // 初期化処理
bokunimowakaru 0:c4c775a72ba9 38 lcd.cls(); lcd.printf("Sample 2 SW");
bokunimowakaru 0:c4c775a72ba9 39 xbee_init( 0x00 ); // XBee用COMポートの初期化(引数はポート番号)
bokunimowakaru 0:c4c775a72ba9 40 lcd.cls(); lcd.printf("ATNJ");
bokunimowakaru 0:c4c775a72ba9 41 xbee_atnj( 0xFF ); // デバイスを常に参加受け入れ(テスト用)
bokunimowakaru 0:c4c775a72ba9 42 lcd.cls(); lcd.printf("gpio init");
bokunimowakaru 0:c4c775a72ba9 43 xbee_gpio_init(dev_gpio); // デバイスdev_gpioにIO設定を行うための送信
bokunimowakaru 0:c4c775a72ba9 44 lcd.cls(); lcd.printf("DONE");
bokunimowakaru 0:c4c775a72ba9 45
bokunimowakaru 0:c4c775a72ba9 46 // メイン処理
bokunimowakaru 0:c4c775a72ba9 47 while(1){ // 永久に受信する
bokunimowakaru 0:c4c775a72ba9 48 /* データ受信(待ち受けて受信する) */
bokunimowakaru 0:c4c775a72ba9 49 data = xbee_rx_call( &xbee_result );
bokunimowakaru 0:c4c775a72ba9 50 // データを受信します。
bokunimowakaru 0:c4c775a72ba9 51 // data:受信結果が代入されます
bokunimowakaru 0:c4c775a72ba9 52 if( xbee_result.MODE == MODE_GPIN){ // PIO入力(リモート機のボタンが押された)の時
bokunimowakaru 0:c4c775a72ba9 53 lcd.cls();
bokunimowakaru 0:c4c775a72ba9 54 for( i=7; i>=0 ; i--) lcd.printf( "%c",(char)( (int)'0' + ((data>>i) & 0x01) ) );
bokunimowakaru 0:c4c775a72ba9 55 // dataに入った値をバイナリで表示
bokunimowakaru 0:c4c775a72ba9 56 }
bokunimowakaru 0:c4c775a72ba9 57 }
bokunimowakaru 0:c4c775a72ba9 58 }