Energy)によるワイヤレスIoTセンサを製作してみました。ハードウェアは、秋月電子通商から4月に発売されたAE-RN4020-XBモジュールをIchigoJamのシリアル端子へ接続するだけです。BASICで製作しました。通信モジュールRN4020側は購入したままでOKです。IchigoJam上で動作するBASICだけでモジュールを制御します。センサ読み値をBLEビーコン内のデバイス名に含めたので、実験も簡単です。Piのhcitoolでビーコンをスキャンするだけで実現することが出来ます(gatttoolなどによる属性読み取りが不要)。TへRN4020を接続し、BLEビーコンを送信する実験の様子です。T(写真中央)のシリアル端子へ接続する(IchigoJamのTXDをBLEモジュールのRXへ、RXDをTXへ接続)。電源についてはIchigoJamのCN5の5V出力から供給した。Energy)に対応したBluetoothモジュールです。社が開発したBluetootuモジュールRN42の技術をベースに、Microchip社がBLE対応品を開発しました。プロトコルスタックが内蔵されているので、シリアルから簡単なコマンドでBLE通信を行うことが出来ます。Networks社が開発したRN42の技術を基に、Microchip社が開発したBLEモジュールRN4020。簡単なコマンドをシリアルから送ることでBLEの通信が行える。Networks社の名残り。秋月電子通商製AE-RN4020-XBモジュール秋月電子は、2017年4月にMicrochip社RN4020をプリント基板へ実装したBLE通信モジュールを発売しました。Digi社のZigBeeモジュールXBeeと同じ2mmピッチのピンヘッダを実装することが可能です。ブレッドボードなどに接続できる2.54mmピッチの端子も装備しています。秋月電子通商から発売されたAE-RN4020-XBモジュール。XBeeシリーズとピン互換の2mmピッチのピンヘッダもしくは、ブレッドボードなどへ接続するための2.54mmピッチのピンヘッダのどちらかを装着して使用する。IchigoJam用BASICプログラム「BLEビーコン送信機」BLEビーコンを送信するIchigoJam用のプログラムです。シリアル通信の内容をI2C接続の液晶AQM0802へ表示することも出来ます。液晶を使用しない場合は行番号2を消してください。行番号100番台はRN4020の初期化用です。2回目以降は実行する必要はありません。変数Zが0以外のときは初期化処理を省略します。行番号240~260が主要部です。行番号240の「Y」はBLEビーコンを停止する命令、行番号250の「SN」はデバイス名の設定、行番号260はビーコンの開始命令です。行番号210でで変数Aにアナログ値を入力し、行番号250で変数Aの値をRN4020のデバイス名として設定します。rtnプログラムを作成するときは、シリアル用の配線を切断しておき、プログラムを実行する直前にシリアルの配線を行い、RUNを実行します。プログラムを中断したときも、シリアルの配線を切断してください。Errorが発生し、そのメッセージがRN4020へ送られ、永久にループしてしまいます。ICH-KIT(後述)では、この問題を避けつつ、開発効率を高めるために、シリアルの切り替えスイッチを装備しました。loggerが使えました。Stack)で受信したときの様子です。nameの部分に「IchigoJam_ANA,0」というデバイス名が表示されました。末尾の数字はアナログ入力ANA(0)の値によって変化します。IchigoJam基板上のタクトスイッチを押下した状態にしておくと0になり、離した状態だと800~1000くらいの値が得られます。このANA(0)入力はIchigoJamのBTN端子です。BTN端子にセンサを取り付ければ、センサ値を送信することが出来ます。Piで簡単に受信することも出来ます。以下のコマンドを入力すると、約2秒ごとにデータが表示されます。末尾の数値1003や0がIchigoJamのアナログ入力ANA(0)の値です。IchigoJam_ANA,0より詳細な情報を得るにはhcidumpをインストールしてください。hcidumpは少し使いにくいので、スクリプトble_logger.shも準備しました。4行目に書かれた一つのコマンド「ble_logger.sh」でスキャンを実行することが出来るようになります。63^Cble_logger.shでは、受信データの表示部を小プロセスとして実行することにより、1つのスクリプトでhcitoolとhcidumpを動かします。ICH-KIT)こういった実験に適した専用のプリント基板も販売中です。筆者が約2年前に設計し、2016年4月に発売させていただきました。Shield基板へRN4020を実装します。Shied基板用のパーツについてはキットに含まれていません。Shield」(右)に部品を実装したときの様子。下図に実験の様子を示します。液晶にRN4020との通信状態が表示され、デバッグにも活用することが出来ます。この基板上のシリアルの切り替えスイッチにより、IchigoJam、パソコンのUSBシリアル、RN4020モジュールのシリアル切り替えが簡単に行えます。Computer基板には液晶やブザー、5Vと、3.3Vのレギュレータ、EEPROMなどが実装可能。基板裏側にはUSBシリアルICの実装も出来る(部品は別売り)。Shieldと組み合わせたときには各シリアル切り替えスイッチが便利。様々なワイヤレス対応プログラムの開発に役立てることが出来る。13番ピンがプルアップされているので、常にBTNが押下された状態となります。対策方法は、いくつかあります。13番ピンをカットするなどです。本ブログで紹介した方法は、BLEの実験や制作を簡単に行うものであり、製造元はデバイス名を頻繁に変更することを想定していないかもしれません。ifA>=B-5andA<=B+5goto200)。(3)紹介ボクにもわかる電子工作bokunimo.netとの連携ブログです。関する情報などを掲載しています。(7)リンクは自由ですが、掲載情報についての責任は負いません。