Slide 1

Slide 1 text

IoT デバイスから AWS IoT へ: Zephyr RTOS でやってみた JAWS-UG IoT専門支部「AWS IoT 10年の歩みを振り返る」 October 8 2025 Junichi Hirata MEGURO

Slide 2

Slide 2 text

アジェンダ • 私とAWS IoTの10年 (軽く) • Zephyr RTOSについて (軽く) • Zephyr RTOSのAWS IoTサンプルを動かす • 今後の活動予定

Slide 3

Slide 3 text

LTへ応募した経緯など 最近日本のZephyr RTOSのコミュニティ※に参加しています → Zephyr RTOSはIoTに強いらしいと聞く → connpassでAWS IoT 10周年イベントを見つける → そういや、Zephyr RTOSってAWS IoTどんななのか気になるな → 調べて評価ボードで動かそうかな → せっかくだし、LTに応募してみようか ※https://zephyr-rtos.connpass.com/

Slide 4

Slide 4 text

私とAWS IOTの10年 ・7~8年ぐらいの付き合い ・当時所属していた会社で「リアルタイムOSとTCP/IPスタックをAWS 対応させといて」という超曖昧な要件を受けてAWS IoTへ接続させたのが はじめて ・マイコンの性能が低くてAWS IoTと接続する際のTLSのクライアント認証 のRSAの計算に時間がかかっていたのは、つらかったが、 いい経験ができたとも思う。 ・ときどき仕事や個人的興味で使わせてもらってます。

Slide 5

Slide 5 text

ZEPHYR RTOSとは • Linux Foundationが主導して開発しているオープンソースで提供されているリアルタ イムOSプロジェクト • カーネルだけでなく、通信に必要なミドルウェアも提供している • 本イベント参加者向けにざっくり説明するとAmazon FreeRTOSみたいなもん 次のページから数ページ Zephyr project Overviewからいくつかピックアップしてご紹介 Zephyr project Overview https://zephyrproject.org/zephyr-overview/

Slide 6

Slide 6 text

https://zephyrproject.org/zephyr-overview/からの引用

Slide 7

Slide 7 text

https://zephyrproject.org/zephyr-overview/からの引用

Slide 8

Slide 8 text

https://zephyrproject.org/zephyr-overview/からの引用

Slide 9

Slide 9 text

ZEPHYR RTOSとは (日本での活動) • 昨年までは個々で開発してソースをコミットしたり、非公式なイベントを催していた。 • 今年から公式なmeetupとしてイベントを開催している 7/4 札幌 開催レポート https://www.zephyrproject.org/recap-blog-zephyr-project-meetup-sapporo-japan/ 10/20 大阪 (Honda Software Studio Osaka) イベントページ https://zephyr-rtos.connpass.com/event/368403/ • 海外半導体ベンダーの日本法人がZephyrをテーマにビジネス向けのWebinarを開催

Slide 10

Slide 10 text

AWS IOTのサンプルを動かす サンプルはあるの? → ありました。

Slide 11

Slide 11 text

AWS IOTのサンプルを動かす ドキュメントは? → これ https://docs.zephyrproject.org/latest/samples/net/cloud/aws_iot_mqtt/README.html

Slide 12

Slide 12 text

AWS IOTのサンプルを動かす ステップバイステップで動作確認まで説明します 今回使用するボードはこれ ¥4000ぐらいです。 https://docs.zephyrproject.org/latest/boards/nxp/frdm_mcxn947/doc/index.html サンプルのドキュメントでは【NUCLEO-F429ZI】で動作実績書かれていますが、Zephyrの移植性を 確認するためにあえて別のボードでチャレンジ!

Slide 13

Slide 13 text

開発環境とソースコードのインストール Getting Started Guideの通りに実行 https://docs.zephyrproject.org/latest/develop/getting_started/index.html ↑の手順でビルドに使用するツール(コンパイラなど)もインストールされます。 私はWSL上で動作するUbuntuに環境作りました。

Slide 14

Slide 14 text

-b のパラメータはボード名になります。 使用されるボード向けの説明を参照しましょう。↓でボードを選択して表示します。 https://docs.zephyrproject.org/latest/boards/index.html#

Slide 15

Slide 15 text

下はhello worldのサンプルプログラムのビルドとフラッシュへプログラムを書き込み のコマンドです。 samples/hello_worldをsamples/net/cloud/aws_iot_mqttへ変更すると、 AWS IoT接続でもをビルドできます…が、その前にAWS IoTでモノを作成して、 接続のための証明書、鍵を入手する必要があります。

Slide 16

Slide 16 text

AWSコンソールでAWS IoTを開き モノの作成してください。その際にキー、証明書を保存してください。 詳細は皆さんよく知ってると思うので、本イベントでは省略します。

Slide 17

Slide 17 text

AWS IoTから取得した証明書と鍵を下記のディレクトリへ置きます。 samples/net/cloud/aws_iot_mqtt/src/creds convert_key.pyを実行します。

Slide 18

Slide 18 text

サンプルプログラムのドキュメントを表示して調整するパラメータを確認して、 プロジェクトへ反映します。 https://docs.zephyrproject.org/latest/samples/net/cloud/aws_iot_mqtt/README.html CONFIG_AWS_ENDPOINT以外はデフォルト値でもとりあえず動作します CONFIG_AWS_ENDPOINTはAWS IoTのコンソールでエンドポイントを確認して入 力します。

Slide 19

Slide 19 text

ビルド ビルドしたプログラムをボードへ書き込み

Slide 20

Slide 20 text

AWS IoT Core Zephyr_sample/downlink Zephyr_sample/data AWS IOTのサンプルを動かす(構成) Zephyr AWS IoT サンプルプログラムが 動作しているボード サブスクライブ サブスクライブしているトピックへ メッセージがPublishされたら、 Zephyr_sample/dataへメッセージを Publishする ①メッセージPublish ②①のメッセージを受信 ③メッセージPublish

Slide 21

Slide 21 text

実行結果 (ZEPHYR側) テストクライアントが Publishしたメッセージを受信後 メッセージをPublishしている

Slide 22

Slide 22 text

実行結果 (テストクライアント側) Zephyrが Publishしたメッセージを受信している

Slide 23

Slide 23 text

セルフQ&A DeviceShadowやOTAはない? → なさそう。 次の2つのいずれかで対応する必要がありそう。 (1) JSONパーサと先のサンプルのMQTTはあるので、自分で実装を頑張る (2)AWSがgithubで公開しているライブラリを使う (内容精査できてません) AWS IoT Device Embedded C SDK for Zephyr https://github.com/aws/aws-iot-device-embedded-c-sdk-for-zephyr

Slide 24

Slide 24 text

最後に 今後の活動 AWS IoT使ってOTAできないかと取り組んでいます。 機会があれば、また成果をどこかで報告したいと思います。

Slide 25

Slide 25 text

ご清聴ありがとうございました。