Azure Sphereのサンプルプログラム github編 (19.11)

github公開のAzure Sphereサンプルプログラム、

github.com

を、ざーっと確認して、5つに分類しました。

  • ハードウェア制御
  • ネットワーク
  • Wi-Fiセットアップ
  • OTAアップデート
  • その他

ハードウェア制御

HelloWorld (HLCore / RTCore)

GPIOを動かすコードです。
永久ループとウェイトを使った、シンプルなコードです。

GPIO (HLCore / RTCore)

GPIOを動かすコードです。
ちょっと凝ったコードになっています。

I2C (HLCore)

I2Cを動かすコードです。
6IMU(加速度3軸+ジャイロ3軸)のLSM6DS3センサーの値をログに出力します。

SPI (HLCore)

I2Cを動かすコードです。
6IMU(加速度3軸+ジャイロ3軸)のLSM6DS3センサーの値をログに出力します。

UART (HLCore, RTCore)

UARTを動かすコードです。

ADC (HLCore / RTCore)

ADC (Analog to Digital Converter)を動かすコードです。
1秒間隔にADCで読み取った電圧をログに出力します。

PWM (HLCore)

PWMでLEDをふんわりと点灯するコードです。

ネットワーク

AzureIoT (HLCore)

Azure IoT HubもしくはAzure IoT Centralと通信するコードです。 Azure IoT C SDKを使い、Azure IoT HubもしくはAzure IoT Centralと通信して、メッセージを送信したりデバイスツインでLEDの点灯などをします。

HTTPS (HLCore)

HTTPS通信するコードです。
curl_easy_perform()関数を使ったシンプルなものと、curl_multi_xxx()関数を使った凝ったものの、2種類があります。

DNSServiceDiscovery (HLCore)

DNSサービス探索のコードです。
DNS-SD Queryでネットワークに問い合わせします。

PrivateNetworkServices (HLCore)

DHCPサーバー、SNTPサーバー、TCPサーバーのコードです。
ローカルネットワークでの使用を想定しています。

Wi-Fiセットアップ

WiFi (HLCore)

Wi-Fiの設定と操作のコードです。

WifiSetupAndDeviceControlViaBle (HLCore)

Azure Sphereに接続した外部MCU(nRF52)を使って、BLE経由でAzure SphereWi-Fi設定やデバイス制御をするコードです。

OTAアップデート

DeferredUpdate (HLCore)

OSやアプリケーションのOTA(Over-The-Air)アップデートを遅延するコードです。

ExternalMcuUpdate (HLCore)

Azure Sphereに接続した外部MCU(nRF52)のファームウェアを更新するコードです。
あらかじめ外部MCU(nRF52)にbootloaderを入れて置き、Azure SphereからUARTで外部MCU(nRF52)のファームウェアを書き換えます。

その他

IntercoreComms (HLCore + RTCore)

HLCoreとRTCoreの間でコア間メッセージ通信するコードです。

MutableStorage (HLCore)

Azure Sphere内部にデータ保持するMutable Storageへ読み書きするコードです。

SystemTime (HLCore)

システム日時の操作とRTC (Real Time Clock)のコードです。

私見

  • I2CのRTCoreサンプルコードが何故か無い!?
  • DDNSServiceDiscoveryやPrivateNetworkServices、あまりニーズ無いと思うのだが、、、ガーディアンモジュールで作ったから公開している感じかしら。
  • 興味があるサンプルコードは、IntercoreCommsとDeferredUpdate。Azure Sphere特有ですから。