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
M5Stackを用いたIoT開発
Search
MIERUNE
PRO
February 28, 2024
Programming
0
940
M5Stackを用いたIoT開発
IoTに便利という評判のM5Stackを買ってもらったので、どんなことができるかいろいろ試してみた。
MIERUNE
PRO
February 28, 2024
Tweet
Share
More Decks by MIERUNE
See All by MIERUNE
Facade Patternで磨く、コードの可読性と分解力 / MIERUNE BBQ #13
mierune
PRO
0
110
ハザードマップゲームの作り方〜ハザード情報をゲームのパラメーターに落とし込む〜 / FOSS4G 2024 Japan
mierune
PRO
0
230
MIERUNEとQGIS、そしてQGIS事業のご紹介 / FOSS4G 2024 Japan
mierune
PRO
0
210
QGISで実現するもっと分かりやすい森林ゾーニング / FOSS4G 2024 Japan
mierune
PRO
0
200
君はこの色の違いを見ることができるか / MIERUNE BBQ #12
mierune
PRO
0
220
クーダでハニワ / MIERUNE BBQ #12
mierune
PRO
0
180
位置情報とオープンソースがやりたくてMIERUNEに転職した話 〜経歴、事例紹介、GISへのいざない〜 / MIERUNE JCT - Tokyo 2024
mierune
PRO
0
960
クロージング / MIERUNE JCT - Tokyo 2024
mierune
PRO
0
720
オープニング / MIERUNE JCT - Tokyo 2024
mierune
PRO
1
810
Other Decks in Programming
See All in Programming
良いユニットテストを書こう
mototakatsu
11
3.6k
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and Web Standards
petamoriken
0
430
いりゃあせ、PHPカンファレンス名古屋2025 / Welcome to PHP Conference Nagoya 2025
ttskch
1
170
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
390
盆栽転じて家具となる / Bonsai and Furnitures
aereal
0
1.8k
はてなにおけるfujiwara-wareの活用やecspressoのCI/CD構成 / Fujiwara Tech Conference 2025
cohalz
3
2.7k
ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策 #phpcon.2024
akase244
2
7.7k
Flatt Security XSS Challenge 解答・解説
flatt_security
0
730
php-conference-japan-2024
tasuku43
0
430
『改訂新版 良いコード/悪いコードで学ぶ設計入門』活用方法−爆速でスキルアップする!効果的な学習アプローチ / effective-learning-of-good-code
minodriven
28
4.1k
Swiftコンパイラ超入門+async関数の仕組み
shiz
0
170
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
6
700
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
67
4.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Docker and Python
trallard
43
3.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
19
2.3k
Optimizing for Happiness
mojombo
376
70k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The Cult of Friendly URLs
andyhume
78
6.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Site-Speed That Sticks
csswizardry
2
270
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等と連携 可能 まとめ・質疑応答