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
700
M5Stackを用いたIoT開発
IoTに便利という評判のM5Stackを買ってもらったので、どんなことができるかいろいろ試してみた。
MIERUNE
PRO
February 28, 2024
Tweet
Share
More Decks by MIERUNE
See All by MIERUNE
君はこの色の違いを見ることができるか / MIERUNE BBQ #12
mierune
PRO
0
33
クーダでハニワ / MIERUNE BBQ #12
mierune
PRO
0
12
位置情報とオープンソースがやりたくてMIERUNEに転職した話 〜経歴、事例紹介、GISへのいざない〜 / MIERUNE JCT - Tokyo 2024
mierune
PRO
0
630
クロージング / MIERUNE JCT - Tokyo 2024
mierune
PRO
0
470
オープニング / MIERUNE JCT - Tokyo 2024
mierune
PRO
1
540
QGISで簡単にDEMを可視化 - ElevationTile4JP & QuickDEM4JP プラグインのアップデート / FOSS4G TOKAI 2024
mierune
PRO
0
250
ゼロから始める点群可視化 feat.QGIS
mierune
PRO
0
240
MIERUNE BBQにおけるユーザー中心設計()
mierune
PRO
1
710
MIERUNE BBQ #10 in 札幌時計台 オープニング・クロージング
mierune
PRO
0
600
Other Decks in Programming
See All in Programming
Dev ContainersとGitHub Codespacesの素敵な関係
ymd65536
1
110
CPython 인터프리터 구조 파헤치기 - PyCon Korea 24
kennethanceyer
0
200
組織に自動テストを書く文化を根付かせる戦略(2024秋版) / Building Automated Test Culture 2024 Autumn Edition
twada
PRO
9
4.2k
Vue3の一歩踏み込んだパフォーマンスチューニング2024
hal_spidernight
3
2.8k
僕がつくった48個のWebサービス達
yusukebe
17
16k
Googleのテストサイズを活用したテスト環境の構築
toms74209200
0
210
go.mod、DockerfileやCI設定に分散しがちなGoのバージョンをまとめて管理する / Go Connect #3
arthur1
10
2.2k
Nuxtベースの「WXT」でChrome拡張を作成する | Vue Fes 2024 ランチセッション
moshi1121
1
190
C#/.NETのこれまでのふりかえり
tomokusaba
1
140
Kaigi on Rails 2024 - Rails APIモードのためのシンプルで効果的なCSRF対策 / kaigionrails-2024-csrf
corocn
4
2.2k
ECSのサービス間通信 4つの方法を比較する 〜Canary,Blue/Greenも添えて〜
tkikuc
10
2.1k
AWS IaCの注目アップデート 2024年10月版
konokenj
3
550
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
93
13k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Unsuck your backbone
ammeep
668
57k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
363
19k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Git: the NoSQL Database
bkeepers
PRO
425
64k
How to train your dragon (web standard)
notwaldorf
88
5.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
404
65k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
664
120k
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等と連携 可能 まとめ・質疑応答