Version 1 (modified by 5 years ago) ( diff ) | ,
---|
Azure IoT Hub 接続サンプル
Azure IoT Hub へ接続するAzure IoT Hub Device C SDKを使ったサンプルです。 ターゲットデバイスは、GR-PEACHで、Ethernet上のHTTPかMQTTで通信します。 MQTTは、mbedTLS版でのみ確認できます。 GR-SAKURAでも動作確認できています。こちらを参照してください。
サンプルを動作させるには、下記の手順でAzure側にデバイスを追加し、そのデバイスの接続文字列を取得し、ソースコード「app_iothub_client/src/client.c」の以下の個所を書き換える必要があります。
static const char* connectionString = "[device connection string]";
ダウンロード
GR-PEACHのソースコードはWolfSSL版がこちらで、mbedTLS版がこちらにあります。 リストの下にある「Download in other formats:」の「Zip Archive」をクリックすると、zipファイルでダウンロードできます。
開発環境
ビルドはGCC+Makefileで行います。arm向けGCCはこちらやこちらから入手できます。 IDEとしてe² studioV7.4.0を使用しました。 デバッグするにはOpenOCDが必要です。 Rubyの実行環境が必要なので、こちらからダウンロードして、コマンドプロントから実行できるよう、環境変数でパスを通してください。 e² studio V7.4.0のプロジェクトファイルも含まれているので、展開したフォルダをワークスペースとして開き、プロジェクトのインポートをこのフォルダに対して行うことで、取り込むことができます。
フォルダ構成
app_iothub_client | サンプルプログラム | TOPPERS License | ||
asp3_dcre | RTOS TOPPERS/ASP3 | TOPPERS License | ||
asp3_dcre | tinet | TINET 1.7をRuby版CFG対応し、IGMPを追加したもの | TOPPERS License | |
asp3_dcre | syssvc | tlsf | メモリアロケータtlsf | BSD License |
azure_iothub | Azure IoT Hub Device C SDK (tag 2019-04-11) | MIT License | ||
azure_iothub | deps | parson | parson jsonパーサー | MIT License |
azure_iothub | c-utility | adapters | TOPPERS向けの実装を追加 | TOPPERS License |
curl-7.57.0 | HTTPクライアントcURL | Curl License | ||
musl-1.1.18 | 標準Cライブラリmusl | MIT License | ||
ntshell | fatfs | FATファイルシステム FatFs | FatFs License | |
ntshell | ntshell | 仮想ターミナルNT-Shell | MIT License etc. | |
ntshell | src | Socket API、標準入出力、ファイルディスクリプタ | TOPPERS License | |
wolfssl-3.15.7 | SSL/TLS ライブラリwolfSSL | GPL/商用 | ||
mbedtls-2.16.1 | SSL/TLS ライブラリmbedTLS | Apache 2.0 License | ||
zlib-1.2.11 | 圧縮・伸張ライブラリzlib | zlib License |
標準Cライブラリ
GCC付属の標準Cライブラリnewlibではなく、muslを使用しています。 付属のnewlibでは、dirent.hやsocket.hがないので、curlやviのコンパイルに向いていません。 Linux向けのmuslを使用することで、POSIX向けのソースコードのコンパイルが難無く行えます。 ただし、未実装のAPIがあるとリンクエラーになります。 このソフトでは、ntshell/srcにコードがありますが、サンプルを動作させる最小限の実装を行っています。
Azure IoT Hub について
本サンプルの作成には以下のドキュメントを参考にしました。
https://github.com/ms-iotkithol-jp/IoTKitHoLV4
https://docs.microsoft.com/ja-jp/azure/iot-hub/quickstart-send-telemetry-c
Azureの利用は「IoT Hub Free エディション」を使用しました。
Attachments (31)
- composition.png (49.6 KB ) - added by 5 years ago.
- Folder.png (28.0 KB ) - added by 5 years ago.
- SelectWorkSpace.png (14.3 KB ) - added by 5 years ago.
- Welcome.png (80.8 KB ) - added by 5 years ago.
- EmptyWorkSpace.png (89.7 KB ) - added by 5 years ago.
- SelectImport.png (100.6 KB ) - added by 5 years ago.
- ImportProjectToWorkSpace.png (30.3 KB ) - added by 5 years ago.
- ImportProject.png (32.1 KB ) - added by 5 years ago.
- SelectRootDirectory.png (39.3 KB ) - added by 5 years ago.
- FillProjectWorkSpace.png (99.0 KB ) - added by 5 years ago.
- BuildAll.png (100.5 KB ) - added by 5 years ago.
- BuildComplate.png (95.8 KB ) - added by 5 years ago.
- OutputFolder.png (45.1 KB ) - added by 5 years ago.
- MbedFolder.png (17.7 KB ) - added by 5 years ago.
- CopyBinToMbedFolder.png (10.3 KB ) - added by 5 years ago.
- ProjectProperty.png (109.1 KB ) - added by 5 years ago.
- OpenOCDPath.png (30.7 KB ) - added by 5 years ago.
- DebugConfiguration.png (119.3 KB ) - added by 5 years ago.
- NewDebugConf.png (56.5 KB ) - added by 5 years ago.
- DebugConfMain.png (60.7 KB ) - added by 5 years ago.
- DebugConfDebugger.png (68.1 KB ) - added by 5 years ago.
- DebugConfStartup.png (63.0 KB ) - added by 5 years ago.
- DebugConfSources.png (54.6 KB ) - added by 5 years ago.
- DebugConfSVDPath.png (49.3 KB ) - added by 5 years ago.
- DebugPerspective.png (20.0 KB ) - added by 5 years ago.
- DebugStart.png (101.2 KB ) - added by 5 years ago.
- DebugConfCommon.png (67.3 KB ) - added by 5 years ago.
- SerialPort.png (8.0 KB ) - added by 5 years ago.
- TeraTermStart.png (27.1 KB ) - added by 5 years ago.
- TeraTermDhcp.png (30.2 KB ) - added by 5 years ago.
- TeraTermIoTHub.png (46.0 KB ) - added by 5 years ago.
Download all attachments as: .zip