先にこちら(Monarch対応開発キット - UnaMKR -)をお読みください。
また1年間無償回線の契約方法がわからない場合は、こちら(Sigfox Devkit(開発キット)を1年間の無償回線で利用する)を見てください。
ここでは、UnaBiz社のMonarch対応開発キットUnaMKRの動作モードのひとつであるEmbedモードの使い方を説明します。
Embedモードは、UnaMKR内蔵のST BlueNRG-2 SoCを使った開発モードとなっており、より低消費電力のデバイスを開発することができます。
#Embedモードへの移行
ModemモードないしArduinoモードで動作しているUnaMKRをEmbedモードへ移行するためにはファームウェア更新が必要です。下記の手順で行ってください。
- ST社のFlashユーティリティをダウンロード&インストール
- UnaMKRの電源OFF確認
- MnaMKRにArduinoボードが接続されていないことを確認
- ジャンパ確認(J10:ON、J6,J7,J11:右)
- USBシリアルドライバがインストールされていることを確認(こちらを実施済み方はインストール済みです)
- MicroUSBケーブルを使用し、UnaMKRをPCとシリアル接続
- UnaMKR GitHub(https://github.com/UnaBiz/unamkr/)からfirmwareフォルダをダウンロード
- ダウンロードしたfirmwareフォルダにあるburnFw.batを実行すると、binファイルの選択ダイアログが表示されますので、試したいファームウェアを選択。(ここでは、Embed_Sigfox-Sensors-Sleep_v0002.binを試してみます。)
- 下記のようにファームウェア更新が実行されます。
* Please select firmware file you would like to update:
Selected file is : "C:\...\firmware\Embed_SigFox-Sensors-Sleep_v0002.bin"
1 file(s) copied.
Qt: Untested Windows version 10.0 detected!
Working on ST DK COM port :
1) COM5
19:44:46.519: Device COM5 -> Call flashDevice
19:44:46.519: Device COM5 -> Call initDevice: Init Device
19:44:46.690: Device COM5 -> Call bootloaderInstance
19:44:46.697: Device COM5 -> Call flashDevice: Start Programming...
19:44:46.714: Device COM5 -> Call BTL_flashBin: startAddress = 0x10040000, doErase = False, doGo = False
19:44:46.757: Device COM5 -> BTL_flashBin erase page 0: result = 0
19:44:46.796: Device COM5 -> BTL_flashBin programming.... 0 bytes of 135384, result = 0
...
19:45:09.411: Device COM5 -> BTL_flashBin programming.... 135168 bytes of 135384, result = 0
19:45:09.411: Device COM5 -> Call flashDevice: End Programming.
19:45:10.687: Device COM5 -> Call readDevice
19:45:10.693: Device COM5 -> Call readDevice: Start...
19:45:29.243: Device COM5 -> Call closeDevice
19:45:29.246: Device COM5 -> Call readDevice: Finished.
**** INPUT PARAMETERS FOR FLASH OPERATION****
- OPERATING MODE = UART
- AUTOMATIC MODE = True
- BLUENRG1 DEVICE FILE = UnaMKR.bin
- BLUENRG2 DEVICE FILE = UnaMKR.bin
- VERIFY = True
- MASS ERASE = False
- START ADDRESS = 0x10040000 (only for .bin image file)
- LOG = True
- LOG PATH = C:\...\ST\BlueNRG-1_2 Flasher Utility 3.1.0\Application\Logs\
**** RESULTS OF FLASH OPERATION ***
1 - Device COM5
Device = BlueNRG-2
Command -> FLASH = Success
LIST OF OPTION -> VERIFY = Success, IDENTIFICATION = Success
Press any key to continue . . .
これでファームウェア更新が完了しました。
#Embedモードの動作確認
ファームウェア更新が成功したら、UnaMKRの電源をOFF(MicroUSBケーブルを外す)し、J10ジャンパを取り外した後に、再度、UnaMKRを起動(MicroUSBケーブルを接続)してください。
その後、ターミナルソフトでUnaMKRが接続されているポートを開いてください。(UnaMKRのシリアルポート設定はこちら。
今回のサンプルアプリ(Embed_SigFox-Sensors-Sleep_v0002.bin)は、UnaMKR上のボタン押下をトリガにボード内のセンサ情報を取得し送信するものと20分間隔でセンサ情報を送る仕組みとなっています。
動作確認のために、ボード上の黒いボタンを押すと、ターミナルソフト上で下記コマンド応答を確認することができます。
<Triggered by Button>
Current RC zone: 1
BME680:
- Temperaure : 28.15 *C
- Humidity : 41.08 %
- Pressure : 1006.18 hPa
- Air Quality: 20.47 kOhms
lsm303agr:
- Raw Acceleration : 3712 -6784 13568
- Raw Magnetic field: -171 320 -161
- Acceleration [mg]: 226.20 -413.40 826.80
- Magnetic field[mG]: -256.50 480.00 -241.50
TSL2540:
- Visible : 1823
- Infrared: 1633
[Payload 0] 120E2E6333A2BF900C9D34E5
[Payload 1] 2FE7030FE807FF071F06616B
Uplink payload 0...
-> status = 0x00
Uplink payload 1...
-> status = 0x00
Done.
温度、湿度、気圧、ガス、加速度、地磁気の各センサ値を2つのメッセージで送信していることが確認できます。
ペイロードへの変換方法は、このサンプル自体のソースコードが、まだ公開されていないので、わかりませんが、おそらく、Arduinoモードのサンプル(Demo_SigFox-Optimal-AllSensors)と同じではないかと思います。
念のため、Sigfox Backend CloudのMESSAGESビューで確認したところ、確かに2つのメッセージが受信されていることが確認できます。
実際の開発は、ArmKeilなどの開発環境を使うことになると思います。
関連ページ