github公開のAzure Sphereサンプルプログラム、
を、ざーっと確認して、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 SphereのWi-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特有ですから。