ScratchだけでできるIoTシステム
https://gyazo.com/104703de88d1a6f001691821fe871cf7
発表に関しての情報
https://www.youtube.com/live/wHCii-RE19g?t=1908s
About 610t
我叫「武藤武士(wǔ téng wǔ shì)」
武藤武士(むとうたけし)
奈良で専業主夫やってる53歳
X(旧twitter): @610t; その他のアカウントなど詳細は末尾 宣伝: Scratch本
突然、同人誌が書きたくなった
IFTTT拡張機能についても書いてます。
M5Stack x Scratchもあります。
https://gyazo.com/d39ebffdd4393c83de5a7bdd5db8f72b
はじめに
わたしは、Scratchが大好物です。
やっぱり、IoTLTだけに、IoTしたいですよね!! Scratchだけを使ってやってみましょう!!
Scratch
https://gyazo.com/890a51bf05134da3cdb31d10ac288b1f
ブロックベースのVisual Programming環境
教育/プログラミング学習用?
全ての年齢の子どもたちに!!
低い床: はじめやすく
高い天井: 高度なこともでき
広い壁: いろいろなものを作れる
変態言語?
並列実行
イベントベース
オブジェクトベース
スプライト
クローン
Node.jsで記述
オレオレサーバーが作成可能
拡張機能で新たな機能を追加
オレオレサーバーの例
参考
IoTで使えるScratch拡張機能
Scratch(Stretch3)でIoTに使えそうな拡張機能を検討
Internet
IFTTT Webhooks ←今回これ
ナンバーバンク 2.0 ←おまけあり
ChatGPT2Scratch
of
Things
micro:bit
公式micro:bit拡張機能
ビデオモーションセンサー ←今回これ
Speech2Scratch (音声認識) ←今回これ
LEGO MindStorms EV3/BOOST/WeDo/DUPLO Train: LEGOの操作が可能
PaSoRich: Felica読み取り
QRコード: QRコード読み取り
ポーズ認識系: 顔や手や体のポーズ認識
TeachableMachine系: AI機能
IFTTTってなぁに?
IoTを簡単に実現する自動化システム
IFTTTの名前のとおりで、IF~THEN~ルールでアプリケーション(アプレット)を記述
IF(trigger): actionを実行する条件
THEN(action): triggerが有効な時に行う動作
たくさんのtriggerやactionが利用可能(一例)
trigger
https://gyazo.com/4a6eb5587983103e74d7ee5b83e01518
action
今回利用するLINE Notifyも含まれる
https://gyazo.com/20050b2839657b2eb741ca91afebc753
無料プラン(今回は使えない)
2アプレットまで
Webhook不可orz
Pro, Pro+
Webhook利用可能
twitter関連機能
Customerサポート
などなど
Stretch3 IFTTT Webhooks拡張機能
IFTTT Webhooks拡張機能はWebhookのみ利用可。
ブロックは以下のとおり。
https://gyazo.com/94d8b1bcf90fc3ea1244f4bb0680f79c
使い方は、以下のような感じ
IFTTT Webhookアプレットを利用する場合keyが必要なので、これを与える必要がある ([IFTTT key:(key)])
keyはWebhook URLの最後にある文字列。
イベント名でどのアプレットが使われるか指定するので、これを適切に設定する([IFTTT event:(event_name)])
値は3つまで利用でき、それぞれvalue1, value2, value3が利用できる ([value1を(value1`)にする]など)
最後に[送る]ブロックでデータを送る
例えば、以下の例では、value1には1から1000までの乱数が、value2にはタイマーの値が、value3にはマウスの$ x座標が送られる
https://gyazo.com/3dad6680144ed28727a58baaa08cc9d3
https://gyazo.com/a9b894e7198078f0d07e6803ea74a4ca
今回のデモのIFTTT側の設定
今回のデモで利用するIFTTTのアプレットはすべて同じで、triggerがWebhookでactionはLINE Notifyを送る簡単なもの
https://gyazo.com/bd10bdabaad66435a90f3e7025a8cbaf
triggerではWebhookイベント名を指定するだけ
https://gyazo.com/1ea9cb4188a1cfe438470a7cf70ab849
actionは、以下のような設定
https://gyazo.com/d0629007207c5a9822e9c9aaed362425
デモ:侵入感知器
ビデオモーションセンサーを使って、画面の中でなにかが動いたら、LINEで通知
一緒に、動きの大きさ(value2)とその方向(value3)も送る
https://gyazo.com/f037d355ad2934c5b5b27731bfa75522
デモ:音声入力と翻訳を送る
音声入力して、結果(value1)をLINE通知
翻訳した結果(value2は中国語、value3は英語)も一緒に送る
https://gyazo.com/b118b59227e5d33d99fe624ab0d90aa8
なんか、ループで書くとうまくいかない…
デモ:Scratch + Microbit More feat. M5Stack
Scratchで、(1から10までの乱数)と(加速度$ x)と(加速度$ y)を60秒ごとにLINE Notifyに送る。
加速度は、Microbit Moreを使って、M5Stack(micro:bitでも良い)のものを利用する(M5bitLess)。 https://gyazo.com/104703de88d1a6f001691821fe871cf7
リンゴを捕まえるとLINE Notifyが上がるゲームのようなもの。
https://gyazo.com/431fe5e636e2043203e8345119490779
おわりに
ScratchでIoTやってみました。
ハードウエアとIFTTTを組み合わせると、意外と簡単に面白いものが作れます。
InternetからScratch側は…
IFTTT拡張機能が使えます。(有料プラン…)
Number Bank使う?: Firebase database経由で数字のやり取りが可能です。
さらなる拡張機能にも期待!!
Let's play IoT with Scratch!!
おまけ: NumberBank拡張機能
https://gyazo.com/9a768b62574e1af8807320b76ddbba73
デフォルトのマスターキーkeyが利用可能
データストアはFirebase database
外部とデータのやり取りができる!!
ただし、NumberBank用に提供されているサーバが必要
発表者:I'm 610t!!
https://gyazo.com/9c3d8a2bede28d87e790c2b70f0c0baf
全部の情報: 610t (無糖Teaと読むと良いかも) むとうたけし(武藤武士)
専業主夫(53歳)@奈良
所属コミュニティ
アカウント一覧