TWELITEをいじってみる(センサデータをみてみる)
この記事は↓の続きになります!
今回は、TWELITE DIPにセンサを繋いで、MONOSTICKで受信したセンサデータをみてみます!
こちらのページが参考になりますが、スイッチサイエンスで購入したBME280は配線が違うため、あわせて記載していきます📝
前提
センサデータをみてみる
準備
ハード側
配線はこちら
- 抵抗は10kΩを使用
- BME280についてはこちらも参考になります
- Fritzingのパーツはこちらからダウンロード
ソフトの書き換え、設定の編集・変更
手順としては無線タグアプリ (App_Tag) - MONO-WIRELESS.COMをMONOSTICK、TWELITE DIPに書き込み、設定等をインタラクティブモードで編集・設定します!
- TWELITE DIPに子機用の「App_Tag_EndDevice_Input」を書き込み
- MONOSTICKにOTAでTWELITE DIP側の設定を変更する「App_Tag_EndDevice_Input_OTA」を書き込み
- インタラクティブモードで子機用の設定を行う
- 子機(TWELITE DIP)の設定を変更
- MONOSTICKでデータを受信するための「App_Tag_Parent_MONOSTICK」を書き込み
TWELITE DIPに子機用の「App_Tag_EndDevice_Input」を書き込み
- TWELITE DIPをTWELITE R2に装着して、PCとUSB接続
- ⚠⚠⚠差し込む方向を間違えるとTWELITE DIP側が壊れてしまう可能性があるので注意!⚠⚠⚠
- TWELITE STAGEを起動
- シリアルポートは「TWELITE R2」を選択
- 「アプリ書き換え」⇒「TWELITE_APPSビルド&書換」⇒「App_Tag」⇒「App_Tag_EndDevice_Input」を選択
- ⇒アプリがTWELITE DIPに書き込まれます
- 書き込みが完了したら、TWELITE STAGEを終了させて、TWELITE R2もPCから外し、TWELITE DIPをブレッドボードに装着する
- ブレッドボード装着後、まだ電源はいれない!
MONOSTICKにOTAでTWELITE DIP側の設定を変更する「App_Tag_EndDevice_Input_OTA」を書き込み
- MONOSTICKをPCとUSB接続
- TWELITE STAGEを起動
- シリアルポートは「MONOSTICK」を選択
- 「アプリ書き換え」⇒「TWELITE_APPSビルド&書換」⇒「App_Tag」⇒「App_Tag_EndDevice_Input_OTA」を選択
- ⇒アプリがMONOSTICKに書き込まれます
インタラクティブモードで子機用の設定を行う
次にインタラクティブモードで子機に設定する内容を編集します
- 上記の続き
- TWELITE STAGEの「インタラクティブモード」を選択
- 設定を変更する
- 「b」キーでUART baundを変更:115200
- 「o」キーでOption Bitsを変更:0x00010001
- 「d」キーでSleep Durを変更(ms):60000(※ 1分ごと送信するようにする)
- 「w」キーでSensor Waitを変更(ms):30
- 「m」キーでSensor Modeを変更:0x39
- 「p」キーでParameterを変更:0
- 「Shift + S」キーで設定を保存
各設定の詳細はこちらを参照
無線タグアプリ インタラクティブモード - MONO-WIRELESS.COM
子機(TWELITE DIP)の設定を変更
上記に引き続き、TWELITE STAGEを起動したままで、子機に電源をいれて、以下のように表示されれば、TWELITE DIP側に設定が反映されたことになるようです!
SUCCESS [TWELITE DIPのED]
⚠障害物などに弱いので、なるべくMONOSTICKとTWELITE DIPを近い距離にして、TWELITE DIPの電源をいれてください⚠
MONOSTICKでデータを受信するための「App_Tag_Parent_MONOSTICK」を書き込み
- MONOSTICKをPCとUSB接続
- TWELITE STAGEを起動
- シリアルポートは「MONOSTICK」を選択
- 「アプリ書き換え」⇒「TWELITE_APPSビルド&書換」⇒「App_Tag」⇒「App_Tag_Parent_MONOSTICK」を選択
- ⇒アプリがMONOSTICKに書き込まれます
センサデータを確認!📈
TWELITE STAGEを起動して、シリアルポートは「MONOSTICK」を選択をすると1分ごと、センサデータを確認できます!🙌
- tm: 温度(100倍されているので、22.44℃)
- hu: 湿度(こちらも100倍されているので、39.08%)
- at: 気圧(975hPa)
::rc=80000000:lq=183:ct=0018:ed=82015460:id=0:ba=3180:a1=1138:a2=0689:tm=2244:hu=3908:at=0975
Pythonで確認してみる
Raspberry PiにMONOSTICKを装着すると /dev/ttyUSBx
として認識されます
$ ls -la /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 3月 19 23:19 /dev/ttyUSB0
Pythonでserial関連のライブラリをインストールします
$ pip3 install pyserial
コードはこんな感じ
import serial import time ser = serial.Serial('/dev/ttyUSB0', 115200) while True: time.sleep(1) recv_list = ser.readline().decode('utf-8').split(':') if len(recv_list) < 13: # いったん、受信データの要素数で不要なデータ時は出力しないようにする continue print(recv_list)
実行すると以下のように受信したデータを確認できます🙌
$ python3 app_tag_loop.py ['', '', 'rc=80000000', 'lq=159', 'ct=0002', 'ed=8201C109', 'id=0', 'ba=3190', 'a1=0916', 'a2=0612', 'tm=2270', 'hu=4060', 'at=0975\r\n']
Let's Enjoy センシング!!!!!!!! 📊