#はじめに
M5Stack用Sigfoxモジュールの使い方を紹介します。
直接Sigfoxサーバへ直接データが送れるため,単体のIoT機器として活用範囲が広がります。
事例として,工場の電流モニタを安価に作る方法として複数回にまとめます。
今回はデータをUIFlowにより送信するまでの記事です。
Sigfoxのデバイス登録やコンソールの使い方は参考資料の記事を参照してください。
#使用機材
機器 | 内容 | 価格 | 入手先 |
---|---|---|---|
M5Stack | CPUボード | 3,675- | https://www.switch-science.com/catalog/3647/ |
Sigfox Module | M5Stackと合体 | 5,500- | https://www.switch-science.com/catalog/6624/ |
電流センサ | Grove対応の電流センサ | 7,820- | https://mii-system.booth.pm/items/2307810 |
合計:16,995- |
#組み立て
Moduleを取り出します。本体とアンテナとケーブルの3点構成。
UARTの設定です,Defaultは16/17 に設定されてます。Module側から見たTXD/RXDなのでM5Stack側はTX=17,RX=16で使用します。間違えやすい所。
Sigfox基板を一旦外し,アンテナを取り付けます。UFL(小さいので気をつけて)とケースのプラをニッパなどで切りSMAアンテナを付けます。こちらの方向だと電源ケーブルと同じ側になるのでおすすめかな。
センサとはGroveのi2cケーブルで繋ぎます。
クランプセンサなので電源線の片側をクランプして計測します。
#Flow
UIFlow1.65により動作確認しました。(2020-10-27)
Sigfox Moduleは昔ながらのATコマンドで制御でき,UARTが繋がればCPUはなんでも使えると思います。ポイントとなる部分のみですがフローを説明します。
画面デザインは電流と周波数が計測できるので表示エリアを準備します。
デバッグ用にSigfoxの情報と送信データを表示しています。下の方はグラフエリアです。
殺風景なのでロゴも表示してみました。
電流センサとはI2CのID=0x50/100kHz,SigfoxとはUART17/16にて接続します。
タイマー割込により3秒毎に電流読み出しと表示,3分毎にデータ保存し,15分ごとにまとめてSigfoxへ送信しています。
15min=900s/3s = 300dotを使い電流をグラフ表示しています,ちょっとしたテクなのでご参考に。
Sigfoxコマンドをサブルーチン化しています。Cボタンを押している間ID/PACを表示
'AT$SF=xxxx' によりSigfoxへ送信できますが,HEX文字列を作る所で悩みましたが,下のformat命令を使って3分毎の電流値と周波数を2Byteの16進数に変換できました。
gMsg = '{:04X}{:04X}{:04X}{:04X}{:04X}{:04X}'.format(c1,c2,c3,c4,c5,f5)
残りのFlowはGithub に公開しておきますので,そちらを参考にしてください。
15分ごとにputSF関数を呼び出しSigfoxコンソールにデータが送信できました。
本記事はここまでで,次はSigfoxサーバの設定を行います。
#関連記事
後日追加
#参考資料
https://m5stack.com/pages/download
https://qiita.com/ghibi/items/5893923b44f1757294e9
https://github.com/Mii-system/ATMICL-ONE/tree/master/SRC/M5Stack(UIFlow)