Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
IoT デバイスから AWS IoT へ:Zephyr RTOS でやってみた
Search
jun1_hirata
October 12, 2025
0
150
IoT デバイスから AWS IoT へ:Zephyr RTOS でやってみた
JAWS-UG IoT専門支部「AWS IoT 10年の歩みを振り返る」(
https://jawsug-iot.connpass.com/event/367418/)のLTで使用した
。
jun1_hirata
October 12, 2025
Tweet
Share
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
525
40k
Site-Speed That Sticks
csswizardry
11
890
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Side Projects
sachag
455
43k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Designing for Performance
lara
610
69k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Code Review Best Practice
trishagee
72
19k
Transcript
IoT デバイスから AWS IoT へ: Zephyr RTOS でやってみた JAWS-UG IoT専門支部「AWS
IoT 10年の歩みを振り返る」 October 8 2025 Junichi Hirata MEGURO
アジェンダ • 私とAWS IoTの10年 (軽く) • Zephyr RTOSについて (軽く) •
Zephyr RTOSのAWS IoTサンプルを動かす • 今後の活動予定
LTへ応募した経緯など 最近日本のZephyr RTOSのコミュニティ※に参加しています → Zephyr RTOSはIoTに強いらしいと聞く → connpassでAWS IoT 10周年イベントを見つける
→ そういや、Zephyr RTOSってAWS IoTどんななのか気になるな → 調べて評価ボードで動かそうかな → せっかくだし、LTに応募してみようか ※https://zephyr-rtos.connpass.com/
私とAWS IOTの10年 ・7~8年ぐらいの付き合い ・当時所属していた会社で「リアルタイムOSとTCP/IPスタックをAWS 対応させといて」という超曖昧な要件を受けてAWS IoTへ接続させたのが はじめて ・マイコンの性能が低くてAWS IoTと接続する際のTLSのクライアント認証 のRSAの計算に時間がかかっていたのは、つらかったが、
いい経験ができたとも思う。 ・ときどき仕事や個人的興味で使わせてもらってます。
ZEPHYR RTOSとは • Linux Foundationが主導して開発しているオープンソースで提供されているリアルタ イムOSプロジェクト • カーネルだけでなく、通信に必要なミドルウェアも提供している • 本イベント参加者向けにざっくり説明するとAmazon
FreeRTOSみたいなもん 次のページから数ページ Zephyr project Overviewからいくつかピックアップしてご紹介 Zephyr project Overview https://zephyrproject.org/zephyr-overview/
https://zephyrproject.org/zephyr-overview/からの引用
https://zephyrproject.org/zephyr-overview/からの引用
https://zephyrproject.org/zephyr-overview/からの引用
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を開催
AWS IOTのサンプルを動かす サンプルはあるの? → ありました。
AWS IOTのサンプルを動かす ドキュメントは? → これ https://docs.zephyrproject.org/latest/samples/net/cloud/aws_iot_mqtt/README.html
AWS IOTのサンプルを動かす ステップバイステップで動作確認まで説明します 今回使用するボードはこれ ¥4000ぐらいです。 https://docs.zephyrproject.org/latest/boards/nxp/frdm_mcxn947/doc/index.html サンプルのドキュメントでは【NUCLEO-F429ZI】で動作実績書かれていますが、Zephyrの移植性を 確認するためにあえて別のボードでチャレンジ!
開発環境とソースコードのインストール Getting Started Guideの通りに実行 https://docs.zephyrproject.org/latest/develop/getting_started/index.html ↑の手順でビルドに使用するツール(コンパイラなど)もインストールされます。 私はWSL上で動作するUbuntuに環境作りました。
-b のパラメータ<your-board-name>はボード名になります。 使用されるボード向けの説明を参照しましょう。↓でボードを選択して表示します。 https://docs.zephyrproject.org/latest/boards/index.html#
下はhello worldのサンプルプログラムのビルドとフラッシュへプログラムを書き込み のコマンドです。 samples/hello_worldをsamples/net/cloud/aws_iot_mqttへ変更すると、 AWS IoT接続でもをビルドできます…が、その前にAWS IoTでモノを作成して、 接続のための証明書、鍵を入手する必要があります。
AWSコンソールでAWS IoTを開き モノの作成してください。その際にキー、証明書を保存してください。 詳細は皆さんよく知ってると思うので、本イベントでは省略します。
AWS IoTから取得した証明書と鍵を下記のディレクトリへ置きます。 samples/net/cloud/aws_iot_mqtt/src/creds convert_key.pyを実行します。
サンプルプログラムのドキュメントを表示して調整するパラメータを確認して、 プロジェクトへ反映します。 https://docs.zephyrproject.org/latest/samples/net/cloud/aws_iot_mqtt/README.html CONFIG_AWS_ENDPOINT以外はデフォルト値でもとりあえず動作します CONFIG_AWS_ENDPOINTはAWS IoTのコンソールでエンドポイントを確認して入 力します。
ビルド ビルドしたプログラムをボードへ書き込み
AWS IoT Core Zephyr_sample/downlink Zephyr_sample/data AWS IOTのサンプルを動かす(構成) Zephyr AWS IoT
サンプルプログラムが 動作しているボード サブスクライブ サブスクライブしているトピックへ メッセージがPublishされたら、 Zephyr_sample/dataへメッセージを Publishする ①メッセージPublish ②①のメッセージを受信 ③メッセージPublish
実行結果 (ZEPHYR側) テストクライアントが Publishしたメッセージを受信後 メッセージをPublishしている
実行結果 (テストクライアント側) Zephyrが Publishしたメッセージを受信している
セルフ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
最後に 今後の活動 AWS IoT使ってOTAできないかと取り組んでいます。 機会があれば、また成果をどこかで報告したいと思います。
ご清聴ありがとうございました。