050_twilite - kotaproj/study_zenpan GitHub Wiki
monostickを確認
- twilitedipに、標準アプリを書き込む
- LED側が動作するモードで回路を組む
- monostikにも標準アプリを書き込む
- twilite stage起動
- ビューアをみる
定期的にデータが上がっていることがわかる
monostickをラズパイで確認
- ラズパイに接続する
- /dev/ttyUSB0で認識する
-
メーカのスクリプト実施する
$ python tw_readwrite.py /dev/ttyUSB0
参考:
- https://mono-wireless.com/jp/products/TWE-APPS/App_Twelite/python_twelite/index.html
- https://qiita.com/yuuhu04/items/b74200404bbc82278358
actをつかってmonostickと連動する
twilitedip側
BRD_APPTWELITEアプリを書き込む。 MODEピンはノンケアとして、子機動作となるようにする
monostick側
Parent-MONOSTICKをベースに書き込む。 このとき、raw-dataがみえるように、 if(0) -> if(1)に変更する。
コマンドメモ
D1の状態めも
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14[15]16 17 1819 2021 2223 2425 26
B A T 1 D?
01 FE 81 0B 71 CE 00 00 00 00 00 42 41 54 31 0F 0C E0 03FF 03FF 03FF 03FF 2B
01 FE 81 0B 71 CE 00 00 00 00 00 42 41 54 31 0E 0C E3 03FF 03FF 03FF 03FF 29
スイッチが押されていない場合、
->0F
スイッチが押されている場合、
->0E
monostick - ラズパイのシリアルコードを確認
https://mono-wireless.com/jp/products/TWE-APPS/App_Twelite/python_twelite/index.html ->
Python による読み書きスクリプト (Python2.7/3.4 で確認)
標準入力からの入力をシリアルポートに送信します。
読み出し用にスレッドを定義しています。
をベースに行う
全般
- pyserialのpipインストール
- スレッドは、threadingを使っている
- globalな値
- ser : シリアルモジュール
- bTerm : 終了フラグ
主処理
sys.argvで /dev/ttyUSB0でわたす -> Serial() ==>115200bpsで渡す ==>timeout 0.1秒
読み出しスレッド readThread()で、DaemonでStart
Daemonにする意味にって何???
メインループ : (while True:)
標準入力(stdin)より1行読み出し、入力を受け付ける
- "q\r\n" : プログラム終了 ->DoTerminate()をコール
- ":xxxxx\r\n" : シリアル通信で文字列を投げる(/dev/ttyUSB0になげる)
- Ctrl+C : プログラム終了 ->DoTerminate()をコール
- 例外時は、エラーメッセージを表示しプログラムを終了
受信スレッド - readThread
- while文ループ
- line = ser.readline().rstrip()
- byte文字列としてストア
- lineを解析してコマンド処理を行う
act情報
公式
- 製品チュートリアル
- act wiki
通信路確認メモ
ptn | dev1 | dev2 | dir | txadrid | result | reason |
---|---|---|---|---|---|---|
ptn0 | 00h | FEh | 2->1 | 00h | ok | - |
ptn1 | 00h | FEh | 2->1 | FFh | ok | 全ブロード |
ptn2 | 00h | FEh | 2->1 | FEh | ng | 子機のみブロードのみ |
ptn3 | FEh | FEh | 2->1 | FEh | ok | |
ptn4 | 01h | FEh | 2->1 | FEh | ok | |
ptn5 | 01h | FEh | 2->1 | 01h | ok | |
ptn6 | 01h | FEh | 2->1 | 02h | ng | アドレス異なるため |
温度センサー確認メモ
BM280 | DIP(n) | DIP(silk) | DIP(signal) |
---|---|---|---|
VCC | 28 | VCC | VCC |
GND | 1 | GND | GND |
SCL | 2 | 14 | I2C Clk |
SDA | 19 | 15 | I2C Sda |
CSB | NC | - | - |
SDO | NC | - | - |
温度センサー確認メモ - 受信データ
device変えた
b'RAW PACKET -> :0101810B71CE000000000053425331000000000783100F03E10CF909A3DC'
b'00'
D1 : LOW
0101810B71CE0000000000 53425331 0000 0000 0783 100F 03E1 0CF909A3DC'
|S B S 1 |temp humi|temp humi pres|vcc a1 |
|fourchar|sht3x |bme280 |peri |
0x0783
=1923(0x783)(0b011110000011)
0x100F
=4111(0x100F)(0b0001000000001111)
0x03E1
=993(0x3E1)(0b001111100001)
---
けっこうさわった
b'RAW PACKET -> :0101810B71CE00000000005342533100000000094A1BB503E20CF909A361'
b'RAW PACKET -> :0101810B71CE000000000053425331000000000938159D03E20CF909A391'
b'RAW PACKET -> :0101810B71CE00000000005342533100000000092811AE03E20CF909A394'
b'RAW PACKET -> :0101810B71CE00000000005342533100000000091C102803E20CF909A327'
0101810B71CE0000000000 53425331 0000 0000 094A 1BB5 03E2 0CF9 09A3 61'
|S B S 1 |temp humi|temp humi pres|vcc a1 |
|fourchar|sht3x |bme280 |peri |
0x094A / 100
= 23.780000
0x1BB5 / 100
= 70.930000
0x03E2
=994(0x3E2)(0b001111100010)
→ちゃんととれている