Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
M5Stackを用いたIoT開発
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
MIERUNE
February 28, 2024
Programming
1.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
M5Stackを用いたIoT開発
IoTに便利という評判のM5Stackを買ってもらったので、どんなことができるかいろいろ試してみた。
MIERUNE
February 28, 2024
More Decks by MIERUNE
See All by MIERUNE
連続的な到達圏を表示する QGISプラグインを作ってみた
mierune
0
1k
Facade Patternで磨く、コードの可読性と分解力 / MIERUNE BBQ #13
mierune
0
730
ハザードマップゲームの作り方〜ハザード情報をゲームのパラメーターに落とし込む〜 / FOSS4G 2024 Japan
mierune
0
1.2k
MIERUNEとQGIS、そしてQGIS事業のご紹介 / FOSS4G 2024 Japan
mierune
0
1k
QGISで実現するもっと分かりやすい森林ゾーニング / FOSS4G 2024 Japan
mierune
0
1.2k
君はこの色の違いを見ることができるか / MIERUNE BBQ #12
mierune
0
820
クーダでハニワ / MIERUNE BBQ #12
mierune
0
790
位置情報とオープンソースがやりたくてMIERUNEに転職した話 〜経歴、事例紹介、GISへのいざない〜 / MIERUNE JCT - Tokyo 2024
mierune
0
2.1k
クロージング / MIERUNE JCT - Tokyo 2024
mierune
0
1.6k
Other Decks in Programming
See All in Programming
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
430
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
590
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
2
280
XHTMLが残したもの
yosuke_furukawa
PRO
2
680
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
110
Foundry Localでエージェント開発
seosoft
0
170
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
220
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
920
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
140
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
230
自分的「カンファレンスの楽しみ方」
syumai
0
200
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
780
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Facilitating Awesome Meetings
lara
57
7.1k
Technical Leadership for Architectural Decision Making
baasie
3
560
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
The Limits of Empathy - UXLibs8
cassininazir
1
650
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
Bash Introduction
62gerente
615
220k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Amusing Abliteration
ianozsvald
1
290
Building a Scalable Design System with Sketch
lauravandoore
464
34k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
470
Transcript
©OpenStreetMap contributors 2024.02.27 SUZUKI Yusuke M5Stackを用いたIoT開発
©OpenStreetMap contributors 01 M5Stackについて 02 M5Stackの開発環境 03 M5Stackで何をしよ うか? 目次
©Project PLATEAU / MLIT Japan 鈴木 祐亮 自己紹介 その1 SUZUKI
Yusuke • 長野県出身。北海道在住23年目。北陸新幹線とカニ が好き。 • 株式会社MIERUNE所属。バックエンドのエンジニア • AWS・CloudFlare等のクラウドサービスも触って る • 会社のインフラ周りの運用も担当 GISエンジニア
©Project PLATEAU / MLIT Japan 鈴木 祐亮 自己紹介 その2 SUZUKI
Yusuke • 趣味 ◦ カメラ ◦ 映画鑑賞・レビュー ◦ イラスト描き ◦ ゲーム (コンピュー タ、アナログ) ◦ etc… GISエンジニア 知人の某女史にSNS用 イラストを提供 風景写真と食べ物写真を掲載してる 私のインスタグラム
©OpenStreetMap contributors 01 M5Stackとは
©Project PLATEAU / MLIT Japan M5Stackとは M5Stackの特長 その1 ⚫ マイコンチップ搭載ボード
Arduino (アルドゥイーノ) と互換性があ るIoTモジュール ◦ Arduino自体はイタリア生まれ 2003年から発売 ⚫ M5Stackの開発・販売は中国・深センにあるスタートアップ企業 ・M5Stack社 ⚫ M5Stackは製品グループの総称 ◦ M5Stack Core、M5Stack Fire、M5StickC、 M5StickV、M5Paperなどの目的別製品がある
©Project PLATEAU / MLIT Japan M5Stackとは M5Stackの特長 その2 ⚫ 今日使うのはM5Core2
for AWS ⚫ CPU ESP32 (32bit 240MHz) ◦ 参考) ▪ iPhone 3GS 32bit ARMベース 600MHz ▪ Nintendo 3DS 32bit 任天堂独自CPU 268MHz ◦ WiFi (2.4GHz) とBLE (Bluetooth Low Energy) 機能を内臓 ⚫ M5Core2 for AWS の製品には、AWS IoTでデバイス認証を行うため の暗号化・証明書チップも搭載している ◦ AWS IoTが証明書ベースのデバイス認証しかサポートしてないので。
©Project PLATEAU / MLIT Japan M5Stackとは M5Stackの特長 その3 ⚫ 低電力
5V@500mA ⚫ 16MBフラッシュメモリ、8MB PSRAM ⚫ OSは特にない。リアルタイムOSが動く ◦ 一度に動かせるプログラムは一個だけ。 ⚫ バッテリー内臓(容量390mAh) ◦ 電源がない環境でもでもおおよそ3日間ほど稼働できる模様。 ◦ 背面にバッテリー増量用端子。拡張バッテリーもあり
©Project PLATEAU / MLIT Japan M5Stackとは M5Stackの特長 その4 ⚫ 画面・ボタン・センサー・通信機能を搭載
◦ 画面: 320x240ピクセルのカラー液晶 ◦ ボタン: 3つのボタン(M5Core 2はタッチパネル) ◦ センサー: 加速度センサー、ジャイロセンサー、温度センサー ⚫ その他、時計、バイブレーター、マイク、スピーカーも備える
©Project PLATEAU / MLIT Japan M5Stackとは M5Stackの特長 その5 ⚫ 拡張ソケットが3つ
◦ GROVE規格(I2C+I/O+UART)PORT A, B, C ◦ 様々なセンサーを組み合わせて搭載できる(Stack) ⚫ マイクロSDカード ◦ SRAM、フラッシュメモリに乗らない大きなデータの取り扱い時 に利用 ◦ 16GBまで対応 ▪ (とされてるが、手持ちの32GBカードも認識)
©Project PLATEAU / MLIT Japan M5Stackとは Raspberry PIってのもありますが ⚫ ラズパイは、Linuxを動かせるマイコンボード
◦ どっちかというと小さなPC ◦ 近年、性能も向上しており、どんどんミニPCに近づいてる ◦ それにともない、価格も向上。 ◦ 安価な時代はとっくに終わった。 ⚫ M5Stackは、マイコンボード ⚫ ラズパイとM5StackはPCとゲーム機の関係に近い ⚫ ラズパイは特にUSBを利用するIoTデバイスとして使うのがよさげ ◦ 汎用I/O : GPIOも搭載してるので簡単な ▪ ケーブルが外れやすい ⚫ 各種センサーを活用する場合だと、M5Stackの方が使いやすいかも ◦ 割と堅牢
©OpenStreetMap contributors 02 M5Stackの開発環境
©Project PLATEAU / MLIT Japan M5Stackの開発環境 M5Stackの開発環境 その1 ⚫ Windows
or Mac or Linuxでプログラムを開発 > ビルド ⚫ 作成したプログラムはビルドしたバイナリをUSB-Cケーブルを通じ てM5Stackに書き込む ⚫ M5Stackで動かせるのはひとつのプログラムだけ
©Project PLATEAU / MLIT Japan M5Stackの開発環境 M5Stackの開発環境 その2 ⚫ Arduino
(アルドゥイーノ) IDE ◦ 使える言語は基本がC++ ◦ バイナリはESP32向け。 ◦ x86/x64系WindowsでもApple SiliconのMacでも、クロ スコンパイル可能 ◦ Arduino IDEは動作がもっさりしてるので、VSCodeを使っ ても開発環境は構築できる(まだ試してない)
©Project PLATEAU / MLIT Japan Arduino (アルドゥイーノ) IDE
©Project PLATEAU / MLIT Japan M5Stackの開発環境 M5Stackの開発環境 その3 ⚫ その他開発環境
◦ UIFlow ▪ Scratch風に、コードブロックを組み合わせてプログラムを構築するプロ グラミング環境 ◦ MicroPython ▪ 組み込み機器向けのPythonを使ってプログラミング
©Project PLATEAU / MLIT Japan M5Stackの開発環境 サンプル1: Hello, World #include
<M5Core2.h> void setup() { M5.begin(); M5.Lcd.setTextSize(6); M5.Lcd.print("Hello World!!"); } void loop() { }
©Project PLATEAU / MLIT Japan M5Stackの開発環境 サンプルプログラムの構造 ⚫ setup() 関数
◦ 初期化処理を行う ⚫ loop() 関数 ◦ メイン処理を行う ⚫ この構造になんか見覚えがある方 ◦ 電子アートとビジュアルデザインのためのプログラミング言語 ・Processingと似てる。 ◦ そもそもArduino(アルドゥイーノ)IDE自体がProcessingの エディタに影響をうけてる
©Project PLATEAU / MLIT Japan M5Stackの開発環境 その他のサンプル: ⚫ サンプル2: LEDを光らせる
⚫ サンプル3: ボタンを使う ⚫ サンプル4: 音を鳴らす ◦ wavファイル、mp3ファイルの再生が可能 ◦ 無限ブッダマシン的に延々とお経を鳴らすとかも可能
©Project PLATEAU / MLIT Japan M5Stackの開発環境
©Project PLATEAU / MLIT Japan M5Stackの開発環境 その他のサンプル: ⚫ サンプル5: WiFiにつなぐ
◦ WiFiはいくつかAPを登録しておけば、一番電波強度が強いAP を使う ◦ スマホみたく、その場に存在するAPを動的に選択することがで きない。 ◦ プログラムのコードにAP情報を埋め込んでおく必要がある。 ▪ せめて設定ファイル編集で適用できないものか ◦ ネットに接続すれば、様々な通信プロトコルを扱える ▪ HTTP, TCP, UDP etc…
©Project PLATEAU / MLIT Japan M5Stackの開発環境 その他のサンプル: ⚫ サンプル6: MQTTサーバ
(ブローカー)と情報の送受 信を行う ◦ M5Stackはメッセージ を待ち続けたり(Sub)、 定期的にメッセージを送 ること(Pub)もできる ◦ 複数のM5Stackに同時 にメッセージも送れる
©Project PLATEAU / MLIT Japan M5Stackの開発環境 M5Core2を動かす。 MQTTサーバを動かしてないので メッセージ送信は失敗してる。 MQTTサーバのmosquittoを動か
す。 M5Core2からのメッセージを受信 してる。
©Project PLATEAU / MLIT Japan M5Stackの開発環境 ここでM5Core2からのメッセージ を確認するため、mosquitto_sub を動かしてトピックを指定する。 M5Core2からの送ってるメッセー
ジを確認できる。 M5Core2のプログラムは他の publisherからのメッセージも受け られる。 なので、mosquitto_pubプログラ ムを起動。メッセージを送ってみる。
©Project PLATEAU / MLIT Japan mosquitto_pubプログラムから 送ってるメッセージをM5Core2で 受け取れてることを確認。 これらができることがわかると、活 用分野が広がりますね。
©OpenStreetMap contributors 03 M5Stackで 何 をしよう か?
©Project PLATEAU / MLIT Japan M5Stackで何をしようか? アイデア:その1 ⚫ 機器単体でネットワーク対応しているため、IoT的な機器を用いるアイデアはおおむね実 現可能と思われる。
⚫ 例えば... ◦ BLE通信で値を取得できる温度計(Switchbot)から定期的に温度情報を受信。 ▪ →その後、なんらかのAPIを通じて、温度をGoogle SpreadSheetに記録し続ける ◦ 人感センサーと組み合わせる。 ▪ 誰かが部屋に入退室した時間を(なるべく)自動化する ◦ 備品の在庫管理 ▪ 備品を使う度に、付近のM5Stackのボタンを押す。 • M5Stackに関連する在庫の数量を減らすことができる ▪ 定期的に最新の在庫数を管理するシートに送信・在庫数の同期を取ったり、リアルタイムに在庫数 を変動させる。
©Project PLATEAU / MLIT Japan M5Stackで何をしようか? アイデア:その2 ⚫ その他いろいろ ◦
対応するセンサーを繋いでみると可能性さらに広がりそう。
©OpenStreetMap contributors 04 まとめ・質疑応答
© 地理院地図 全国最新写真(シームレス) •M5Stackは、IoTデバイスの開発に適したマイコ ンボード •センサー等の拡張モジュールも豊富。低価格 •PCで開発。ネット接続も簡単。AWS IoT等と連携 可能 まとめ・質疑応答