1NCE FreeRTOS BluePrint は、CoAP、LwM2M、UDP などのさまざまな IoT プロトコルとセルラー接続の使用法を示します。このリポジトリでは、(Wakaama LWM2M ライブラリ) を使用して、デバイス認証や省エネ機能などの 1NCE OS ツールを活用するために 1NCE SDK を統合する例を紹介します。
このリポジトリでは、次のプロトコルの例が提供されます。
各デモには、テスト用に有効にできるオプションの省エネルギー機能が含まれています。
Binaries フォルダーには、UDP および CoAP デモ アプリケーション用の事前に構築されたバイナリが含まれています。
1NCE OS での省エネ機能の構成
このテンプレートを使用します。
P-L496G-CELL02ボードを接続します
USB 経由で接続すると、ボードはコンピュータ上でストレージ ドライブとして表示されます。
バイナリをフラッシュする
目的のバイナリ ファイルをBinaries
フォルダからストレージ ドライブにドラッグ アンド ドロップするだけです。ボードはバイナリを自動的にフラッシュします。
注:フラッシュが失敗する場合は、「STM32CubeProgrammer を使用したフラッシュ」を参照してください。
デモログの表示
Visual Studio Code のシリアル モニターを使用して、デモ ログを表示します。
STLink ファームウェアのアップグレードが必要です。 STM32 VSCode プラグインにはこのためのボタンが含まれていますが、機能しない場合は、インストールされた STM32 フォルダーから.bat
ファイルを実行してアップグレードを手動で開始できます: ST/STM32CubeCLTxx/STLinUpgrade.bat
BG96 モデムのファームウェア バージョンが最新であることを確認してください。ファームウェア アップデート パッケージと手順は (ST の X-Cube Cellular ページ) からダウンロードできます (v6.0.0 を推奨)。
モデムのフラッシュ用に、QFlash ツールを Quectel の公式 Web サイトからダウンロードできるようになりました: (QFlash ダウンロード (V7.1))
使用するデモを構成するには、 Application/Config/
にあるnce_demo_config.h
ファイルを変更します (デフォルトではCONFIG_COAP_DEMO_ENABLED
)。
CONFIG_COAP_DEMO_ENABLED
CONFIG_UDP_DEMO_ENABLED
CONFIG_LwM2M_DEMO_ENABLED
1NCE FreeRTOS BluePrint を使用すると、顧客は UDP 経由で 1NCE エンドポイントと通信し、1NCE OS の一部としてすべての機能を使用できます。
Application/Config/nce_demo_config.h
でデモ ランナーをセットアップします。 #define CONFIG_UDP_DEMO_ENABLED
#define CONFIG_UDP_DATA_UPLOAD_FREQUENCY_SECONDS 60
1NCE FreeRTOS BluePrint を使用すると、顧客は CoAP 経由で 1NCE エンドポイントと通信し、1NCE OS の一部としてすべての機能を使用できるようになります。
COAP POST リクエスト: このセクションでは、次の手順が実行されます。
ネットワークに登録します。
DNS解決を実行します。
ソケットを作成してサーバーに接続します
クエリ オプションを使用して確認可能な CoAP POST を作成する
クライアント インタラクションを作成し、応答 (ACK) を分析します。
応答を検証します。
ファイルApplication/Config/nce_demo_config.h
でデモ ランナーをセットアップします。
#define CONFIG_COAP_DEMO_ENABLED
#define CONFIG_COAP_URI_QUERY "t=test"
#define CONFIG_COAP_DATA_UPLOAD_FREQUENCY_SECONDS 60
#define CONFIG_NCE_ENERGY_SAVER
DTLS サポートの場合、デフォルトのポートは 5684 で、追加の定義としてENABLE_DTLS
が自動的に定義されます。
CoAP DTLS は、1NCE IoT C SDK の 3 つの主要なタスクを実行します。
LWM2M サポートは、楽山 LWM2M サーバーと通信する Eclipse wakaama ライブラリを使用して提供されます。このモードでは、デバイスが LwM2M クライアントとして機能できるようになり、デバイス管理、ファームウェアの更新、センサー データ収集などのユースケースでの LwM2M サーバーとの通信が容易になります。デフォルトでは、クライアントは 1NCE LwM2M サーバーに登録され、オプションの DTLS サポートによって安全な通信が保証されます。
#define CONFIG_LwM2M_DEMO_ENABLED
ブループリントで LwM2M クライアント モードを有効にしてカスタマイズするには、次のパラメータが重要です。
#define LWM2M_ENDPOINT "lwm2m.os.1nce.com"
#define LWM2M_CLIENT_MODE
#define LWM2M_BOOTSTRAP
#define LWM2M_SUPPORT_SENML_JSON
#define LWM2M_SUPPORT_JSON
#define LWM2M_LITTLE_ENDIAN
#define LWM2M_SUPPORT_TLV
#define LWM2M_COAP_DEFAULT_BLOCK_SIZE 1024
#define LWM2M_SINGLE_SERVER_REGISTERATION
#define LWM2M_OBJECT_SEND "/3/0"
#define CONFIG_NCE_ICCID ""
#define CONFIG_LWM2M_BOOTSTRAP_PSK ""
Energy Saver機能は、UDP デモと CoAP デモの両方で利用できます。これにより、ユーザーは 1NCE エンドポイントと通信する際のデバイスの電力消費を最適化できます。
省エネ機能を有効にするには、次のフラグをnce_demo_config.h
に追加します。
#define CONFIG_NCE_ENERGY_SAVER
注: UDP および CoAP デモで省エネルギー機能を使用するには、正しい変換テンプレートが 1NCE OS に適用されていることを確認してください。適切なプロトコルが選択され、テンプレートが使用されました。
デバイス コントローラーは、1NCE API に統合されたデバイスと対話できるようにする API です。この API を使用してデバイスにリクエストを送信すると、デバイスはそれに応じて応答します。詳細については、DevHub をご覧ください。
特定のデバイスにリクエストを送信するには、1NCE DevHub のドキュメントを参照してください。
1NCE API からの受信リクエストを処理するには、特定のパラメーターの構成が必要ですApplication/Config/nce_demo_config.h
/* C2D Parameters */
/* This port is used for both UDP and CoAP communication. */
#define NCE_RECV_PORT 3000
#define NCE_RECEIVE_BUFFER_SIZE_BYTES 200
NCE_RECV_PORT
: これは、デバイスが受信リクエストをリッスンするポート番号です。リクエストで使用されるポートパラメータと一致する必要があります。NCE_RECEIVE_BUFFER_SIZE_BYTES
: これは、1NCE API からの受信データを受信するために使用されるバッファーのサイズです。注: C2D (Cloud to Device) は、UDP、CoAP、LwM2M の 3 つのプロトコルすべてでサポートされています。 LwM2M クライアントは C2D リクエストと緊密に統合されており、UDP および CoAP に対しても C2D 通信用のバックグラウンド ポートを開きます。
デバイスが 2G ネットワークのみに接続している場合、または一部の地域で接続できない場合は、 Application/Config/nce_demo_config.h
で RAT (無線アクセス テクノロジ) と帯域設定を調整する必要がある場合があります。
#define CELLULAR_CONFIG_DEFAULT_RAT 8 // Example for CAT M1
#define CELLULAR_CONFIG_DEFAULT_RAT_2 0 // Example for GSM
#define CELLULAR_CONFIG_DEFAULT_RAT_3 9 // Example for NBIOT
#define CUSTOM_BAND_BG96 "AT+QCFG="band",F,80004,80008" // Example for Germany CATM1
// Values
/**
* The GSM RATs network 0
* The CAT M1 RATs network 8
* The NBIOT RATs network 9
**/
バンド設定の詳細については、BG96 AT コマンドマニュアルを参照してください。
ログの詳細度は、 Core/Inc/iot_config.h
ファイルでLIBRARY_LOG_LEVEL
マクロを定義することで設定できます。この設定は、デバッグとトラブルシューティングを目的としたログ詳細のレベルを制御します。
LIBRARY_LOG_LEVEL
で使用可能なログ レベルは次のとおりです。
IOT_LOG_NONE
: すべてのログ記録を無効にします。 IOT_LOG_ERROR
: エラー メッセージのみを有効にします。 IOT_LOG_WARN
: 警告とエラーを有効にします。 IOT_LOG_INFO
: 情報メッセージ、警告、エラーを有効にします。 IOT_LOG_DEBUG
: 詳細なデバッグ情報、警告、エラー、情報メッセージを有効にします。
iot_config.h
の設定例:
#define LIBRARY_LOG_LEVEL IOT_LOG_DEBUG
この構成では、開発時やトラブルシューティング時に役立つすべてのデバッグ情報が出力されます。
私たちのチームとの最も効果的なコミュニケーションは GitHub を介することです。新しい問題を作成し、バグ レポート、機能リクエスト、ドキュメントの問題、または一般的な質問をカバーするさまざまなテンプレートから選択するだけです。