STマイクロエレクトロニクスの汎用32bitマイコン開発ボード「STM32 Nucleoボード」と、温湿度・大気圧 + GNSS(*)位置情報検出用ソフトウェア「FP-ATR-SIGFOX1」を使い、Sigfox通信でデータ取得できるか試してみます。
(*Global Navigation Satellite System : 全地球航法衛星システム)
Sigfoxにも位置情報サービスはありますが、GNSSではより高精度の位置情報を取得可能です。
FP-ATR-SIGFOX1はお試し用のソフトウェアなので、ハードウェア以外(ソフトウェアおよび登録、通信費)はすべて無料で使えます。DevKit(開発キット)向けの1年間の無償回線利用サービスは2022年に終了しています。
最終的には、取得した温度などのセンサ・データとGNSS位置情報をクラウドに上げるところまで試してみます。
全体の構成は以下の通りです。
本記事では、下記「①: セットアップ」について、組立およびソフトウェアの設定(+Sigfoxネットワークの初期設定)をメインに説明します。
①:セットアップ
②:Sigfoxネットワーク通信の動作確認
③:クラウド利用のための設定例
1.ハードウェアの準備
【用意するもの】
① STM32 Nucleoボード:NUCLEO-L073RZ
② Sub-GHz トランシーバIC 「S2-LP」搭載のSTM32 Nucleo機能拡張ボード:X-NUCLEO-S2868A1 もしくは X-NUCLEO-S2868A2(*1)
③ GNSS*測位ICモジュール搭載のNucleo機能拡張ボード:X-NUCLEO-GNSS1A1
④ MEMSセンサを搭載したNucleo拡張ボード:X-NUCLEO-IKS01A2 or X-NUCLEO-IKS01A3
⑤ パソコン(Windows10)
⑥ USBケーブル(USB-Mini)
4枚のボードおよび、パソコンとUSBケーブルを用意します。
*1:Sigfoxネットワークを利用するためには、X-NUCLEO-S2868Axを事前に「Sigfoxデバイス登録」する必要があります。登録方法はこちらの記事で紹介していますが、少し時間がかかります。なお、既に登録設定済みのボードがあればそのまま流用可能です。
オプションとしてBluetooth® Low Energyモジュール搭載のSTM32 X-Nucleo機能拡張ボード(X-NUCLEO-IDB05A1)を追加することで、動作中のセンサ・スレッショルドを変更することもできますが、この記事では取り上げません。傾き検知やオリエンテーション(方向検知)をトリガにしたデータ送信ができるようになります。
各種ボードの設定について
ジャンパ設定
上記③以外はデフォルト設定で使用するため、過去の使用で設定変更されている場合は、デフォルト設定に戻してください。
③X-NUCLEO-GNSS1A1については、以下の通りジャンパ変更が必要です。
ジャンパ・オフ(オープン): J3, J5, J6, J7, J8, J11, J12, J13
ジャンパ・オン(クローズ): J2, J4, J9, J10, J14, J15
なお、デフォルト設定から変更する場合、以下5か所のジャンパ変更操作でOKです。
J3外す→J2へ移動(UART_RXをD1/RXピンへ(STM32_PA2))
J13外す→J10へ移動(SYS_RESETn→D9/PWMピンへ(STM32_PC7))
J11外す(I2C_CLOCKを非使用(D15/SCLピンを空ける))
J12外す(I2C_CLOCKを非使用(D14/SDAピンを空ける))
J6外す(PSS非使用(D6/PWMピンを空ける))
接続構成
STM32マイコンと各機能拡張ボードの主要ICとの接続インタフェースは下図のようになります。
2.ソフトウェアの準備
STM32CubeProgrammerのインストール
(既にインストール済みであればスキップしてください)
初めてパソコンでSTM32 Nucleoボードを使用する場合、STM32CubeProgrammer(旧ツール:ST Link Utility)をインストールしてCOMポート・ドライバなどを入手します(この記事ではSTM32CubeProgrammerは使用しませんが、ドライバなどが必要になります)。
このツールはSTM32マイコンにファームウェア・プログラムを書き込む際に必要です。OSプラットフォームによって複数用意されているので、該当するものを選択してください。
ダウンロードはこちらから: STM32CubeProgrammer
ダウンロード・ファイルを解凍した後は、実行ファイルを起動して案内にしたがってインストール。
動作用ソフトウェアの入手
デモ用プログラム・ファイルのダウンロード
STのウェブサイトからソフトウェア・ファイルをダウンロードします。
ダウンロードはこちらから: FP-ATR-SIGFOX1
ファイルの確認
ダウンロードしたファイルを解凍すると、そのまま統合開発環境用の作業フォルダができあがります。Projectsフォルダから階層を下っていくと、binaryフォルダ内に今回使用するデモ用プログラム・ファイル(バイナリ・ファイル)が用意されています。手持ちのボード構成に応じて、使用するSTM32用のバイナリ・ファイルを確認しましょう。
保管場所例(NUCLEO-L073RZ):
Drive:...\STM32CubeFunctionPack_SIGFOX1_Vx.x.x\Projects\STM32L073RZ-Nucleo\Applications\Sigfox\AssetTracker\Binary
使用するバイナリ・ファイル(ハードウェア構成違いによりいくつか用意)
パソコンに接続して書き込み・・・でもその前に。
次に、STM32 NucleoボードのSTM32マイコンにソフトウェアを書き込む流れとなりますが、X-NUCLEO-S2868Ax(Sigfoxボード)を初めて使う場合、次の「3.Sigfoxネットワークの設定・登録」に進んでください(すでに設定が完了している場合は、スキップして「4.接続」へ)。
3.Sigfoxネットワークの設定・登録
Sigfoxネットワークを利用するためには、**ボード毎に発行されるID/PAC(登録ボードのID番号 / 認証コード)**を入手してSigfoxクラウドに登録する必要があります。おそらくこの作業が一番面倒ですが、以下の記事を参考にしてID/PACを取得・セッティングしてください。すでに設定済みのX-NUCLEO-S2868Axボードがあれば、そのまま流用可能です。
-
STM32マイコン開発ボードを使った、Sigfox評価環境を試してみた(1/2)
→記事内すべての作業が必要 -
STM32マイコン開発ボードを使った、Sigfox評価環境を試してみた(2/2)
→Sigfox.buyの完了まで(~4.Sigfoxデバイス登録まで)での作業が必要
YouTube video: Sigfox ST side registration
登録完了後、Sigfoxクラウド側で正しく見えていることが確認できたら次に進みます。
4.接続
ファームウェアの書き込み
まず、「動作用ソフトウェアの入手」でダウンロード&解凍したFP-ATR-SIGFOX1の作業フォルダを開いておきます。パソコンにSTM32 NucleoボードをUSB接続すると、ドライバが正常であれば「NODE_XXXX」といったデバイスが認識されるはずです。
最初に確認した、書き込みたいファイル(バイナリ。*.bin)を対象のSTM32 Nucleoボードへドラッグ & ドロップ。ここでは「NUCLEO_L0_ALL_IKS01A2.bin」というプログラム・ファイルを「NODE_L073RZ」へコピーするだけでOKです。
保管場所例(NUCLEO-L073RZ):
Drive:...\STM32CubeFunctionPack_SIGFOX1_Vx.x.x\Projects\STM32L073RZ-Nucleo\Applications\Sigfox\AssetTracker\Binary
組み立て
下図のように4つのボードを接続します(Arduinoコネクタどうしで接続)。STM32 Nucleoボードを一番下側にして、残りの拡張ボード(X-NUCLEO)を上に積み上げていくイメージです。拡張ボードの接続順番は特に気にしなくても問題ありません。
ボードをパソコンへ接続&アンテナを接続
STM32 NucleoボードのUSBコネクタ(CN1)とパソコンをUSB-miniケーブルで接続します。
GNSSアンテナもここで接続して下さい。
以上でセットアップ完了です。
長くなりましたのでつづきは次回へ。
温湿度・大気圧とGNSS位置情報をSigfox通信で取得できるIoTキットを試してみた②