目次
BASICでBLEビーコンを発信! IchigoJamとRN4020を使って、BLE (Bleutooth Low Energy)によるワイヤレスIoTセンサを製作してみました。
Microchip製RN4020チップを搭載した秋月電子通商のBLEモジュール(写真左上)をIchigoJam T(写真中央)のシリアル端子へ接続する(IchigoJamのTXDをBLEモジュールのRXへ、RXDをTXへ接続)。電源についてはIchigoJamのCN5の5V出力から供給した。
BLE対応BluetoothモジュールRN4020
Roving Networks社が開発したRN42の技術を基に、Microchip社が開発したBLEモジュールRN4020。簡単なコマンドをシリアルから送ることでBLEの通信が行える。型番の「RN」はRoving Networks社の名残り。
秋月電子通商製AE-RN4020-XBモジュール
秋月電子通商から発売されたAE-RN4020-XBモジュール。XBeeシリーズとピン互換の2mmピッチのピンヘッダもしくは、ブレッドボードなどへ接続するための2.54mmピッチのピンヘッダのどちらかを装着して使用する。
IchigoJam用BASICプログラム「BLEビーコン送信機」
rem BLEビーコン送信機
rem Copyright (C) 2017 Wataru KUNINOnew
1 cls:uart0:?"Blue 2th":?"Beacon"
2 D=1:'LCD=ON
3 ifDgsb800100 'INIT
110 ifZgoto200
120 uart1:cls:?"SF,2":gsb500
130 cls:?"SS,00000000":gsb500
140 cls:?"SR,00000000":gsb500
150 cls:?"R,1":wait120:gsb500
160 'cls:?"D":gsb500:wait300
170 B=-1:Z=-1200 'LOOP
210 A=ana(0)
220 ifA>=B-5andA<=B+5goto200
230 uart0:cls:?"ANA=";A:gsb800
240 uart1:cls:?"Y":gsb500
250 cls:?"SN,IchigoJam_ANA,";A:gsb500
260 cls:?"A,07D0":gsb500
270 wait120:B=A:goto200500 'RX
510 J=0:wait10:uart0:beep1
520 I=inkey():ifI?chr$(I);:goto520
530 ifJ<30wait1:J=J+1:goto520
540 ifDgsb800:wait30
550 uart1:beep:rtn800 'LCD
810 poke#700,64,0,2,#C0,57,17,#70,86,#6C,56,12
820 ifi2cw(62,#701,1,#704,5)?"E"
840 ifi2cw(62,#701,1,#709,2)?"E"
910 ifi2cw(62,#701,1,#702,1)+i2cw(62,#700,1,#900,8)+i2cw(62,#701,1,#703,1)+i2cw(62,#700,1,#920,8)?"E"
920 rtn
スマホやラズパイでBLEビーコンを受信する
,0」というデバイス名が表示されました。末尾の数字はアナログ入力ANA(0)の値によって変化します。IchigoJam基板上のタクトスイッチを押下した状態にしておくと0になり、離した状態だと800~1000くらいの値が得られます。このANA(0)入力はIchigoJamのBTN端子です。BTN端子にセンサを取り付ければ、センサ値を送信することが出来ます。
$ sudo hcitool lescan –pa –du00:1E:C0:XX:XX:XX IchigoJam_ANA,100300:1E:C0:XX:XX:XX IchigoJam_ANA,000:1E:C0:XX:XX:XX IchigoJam_ANA,000:1E:C0:XX:XX:XX IchigoJam_ANA,100300:1E:C0:XX:XX:XX IchigoJam_ANA,000:1E:C0:XX:XX:XX IchigoJam_ANA,0
$ sudo apt-get install bluez-hcidump$ cd RaspberryPi/network/ble$ ./ble_logger.shBLE Logger
start LE scan
start HCI dump
, HCI, device:
2017/06/03 18:36, 0x3e, LE, ADV_IND, 00:1E:C0:XX:XX:XX, 0x06, IchigoJam_ANA,1003, -63
2017/06/03 18:36, 0x3e, LE, ADV_IND, 00:1E:C0:XX:XX:XX, 0x06, IchigoJam_ANA,0, -61
2017/06/03 18:36, 0x3e, LE, ADV_IND, 00:1E:C0:XX:XX:XX, 0x06, IchigoJam_ANA,0, -61
2017/06/03 18:36, 0x3e, LE, ADV_IND, 00:1E:C0:XX:XX:XX, 0x06, IchigoJam_ANA,1003, -64^C$ ./ble_logger.sh dump
BLE Logger
start LE scan
start HCI dump
, HCI, device:
2017/06/03 18:38, 04,3E,23,02,01,00,00,XX,XX,XX,C0,1E,00,17,02,01,06,13,09,49, 63
2017/06/03 18:38, 04,3E,23,02,01,00,00,XX,XX,XX,C0,1E,00,17,02,01,06,13,09,49, 632017/06/03 18:38, 04,3E,20,02,01,00,00,XX,XX,XX,C0,1E,00,14,02,01,06,10,09,49, 632017/06/03 18:38, 04,3E,20,02,01,00,00,XX,XX,XX,C0,1E,00,14,02,01,06,10,09,49, 63^C
CQ出版 IchigoJam用コンピュータ電子工作学習キット(IF ICH-KIT)
IchigoJam用コンピュータ電子工作学習キット(IF ICH-KIT)
CQ出版 IchigoJam用コンピュータ電子工作学習キット(IF ICH-KIT)に含まれるIchigoJam用のプリント基板「Personal Computer」(左)と、ワイヤレス化用のプリント基板「Wireless Shield」(右)に部品を実装したときの様子。
Personal Computer基板には液晶やブザー、5Vと、3.3Vのレギュレータ、EEPROMなどが実装可能。また、基板裏側にはUSBシリアルICの実装も出来る(部品は別売り)。Wireless Shieldと組み合わせたときには各シリアル切り替えスイッチが便利。様々なワイヤレス対応プログラムの開発に役立てることが出来る。