generated at
ScratchだけでできるIoTシステム
by むとうたけし(610t)


発表に関しての情報
Connpass資料: イベント資料一覧
YouTube: むとうの発表 31:48-


About 610t
我叫「武藤武士(wǔ téng wǔ shì)」
武藤武士(むとうたけし)
奈良で専業主夫やってる53歳
X(旧twitter): @610t; その他のアカウントなど詳細は末尾
宣伝: Scratch本
突然、同人誌が書きたくなった
Scratch Hacks!!書いてます(beta0)。
IFTTT拡張機能についても書いてます。
M5Stack x Scratchもあります。


はじめに
わたしは、Scratchが大好物です。
やっぱり、IoTLTだけに、IoTしたいですよね!!
Scratchだけを使ってやってみましょう!!


Scratch
ブロックベースのVisual Programming環境
公式Scratchサーバー: https://scratch.mit.edu/
教育/プログラミング学習用?
全ての年齢の子どもたちに!!
低い床: はじめやすく
高い天井: 高度なこともでき
広い壁: いろいろなものを作れる
変態言語?
並列実行
イベントベース
オブジェクトベース
スプライト
クローン
サーバーソースが公開: https://github.com/LLK/scratch-gui
Node.jsで記述
オレオレサーバーが作成可能
拡張機能で新たな機能を追加
オレオレサーバーの例
Stretch3:AI系に強い ←今回これ
Xcratch: 拡張機能動的追加型
blicklife: LEGOに強い
toioDo: toio用環境
CodeSkool: なんかいっぱい
つくるっち: ハードウエア系に強い
参考
Scratch を改造しよう:改造方法を解説
/BSD/Scratch at FreeBSD:BSDでサーバー


IoTで使えるScratch拡張機能
Scratch(Stretch3)でIoTに使えそうな拡張機能を検討
Internet
IFTTT Webhooks ←今回これ
ナンバーバンク 2.0 ←おまけあり
ChatGPT2Scratch
of
Things
micro:bit
公式micro:bit拡張機能
Microbit More ←今回これ
ビデオモーションセンサー ←今回これ
Speech2Scratch (音声認識) ←今回これ
AkaDako: I2Cデバイス利用可能
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
action
今回利用するLINE Notifyも含まれる
料金プラン: (詳細)
無料プラン(今回は使えない)
2アプレットまで
Webhook不可orz
Pro, Pro+
Webhook利用可能
twitter関連機能
Customerサポート
などなど


Stretch3 IFTTT Webhooks拡張機能
IFTTT Webhooksは、ScratchからWebhookを利用してIFTTTを利用する拡張機能。
IFTTT Webhooks拡張機能はWebhookのみ利用可
ブロックは以下のとおり。
使い方は、以下のような感じ
IFTTT Webhookアプレットを利用する場合 key が必要なので、これを与える必要がある ([IFTTT key:( key )])
key はWebhook URLの最後にある文字列。
https://maker.ifttt.com/trigger/ ここはイベント名 /with/key/ ここがkey
イベント名でどのアプレットが使われるか指定するので、これを適切に設定する([IFTTT event:( event_name )])
値は3つまで利用でき、それぞれ value1, value2, value3 が利用できる ([value1を( value1`)にする]など)
最後に[送る]ブロックでデータを送る
例えば、以下の例では、 value1 には1から1000までの乱数が、 value2 にはタイマーの値が、 value3 にはマウスのx座標が送られる


今回のデモのIFTTT側の設定
今回のデモで利用するIFTTTのアプレットはすべて同じで、triggerがWebhookでactionはLINE Notifyを送る簡単なもの
triggerではWebhookイベント名を指定するだけ
actionは、以下のような設定


デモ:侵入感知器
ビデオモーションセンサーを使って、画面の中でなにかが動いたら、LINEで通知
一緒に、動きの大きさ( value2 )とその方向( value3 )も送る


デモ:音声入力と翻訳を送る
音声入力して、結果( value1 )をLINE通知
翻訳した結果( value2 は中国語、 value3 は英語)も一緒に送る
なんか、ループで書くとうまくいかない…


デモ:Scratch + Microbit More feat. M5Stack
Scratchで、(1から10までの乱数)と(加速度x)と(加速度y)を60秒ごとにLINE Notifyに送る。
加速度は、Microbit Moreを使って、M5Stack(micro:bitでも良い)のものを利用する(M5bitLess)。
リンゴを捕まえるとLINE Notifyが上がるゲームのようなもの。


おわりに
ScratchでIoTやってみました。
ハードウエアとIFTTTを組み合わせると、意外と簡単に面白いものが作れます。
InternetからScratch側は…
IFTTT拡張機能が使えます。(有料プラン…)
Number Bank使う?: Firebase database経由で数字のやり取りが可能です。
さらなる拡張機能にも期待!!
Let's play IoT with Scratch!!


おまけ: NumberBank拡張機能
NumberBank: Scratch間で数字のやり取りが可能
デフォルトのマスターキー key が利用可能
データストアはFirebase database
外部とデータのやり取りができる!!
ただし、NumberBank用に提供されているサーバが必要


発表者:I'm 610t!!
全部の情報: 610t (無糖Teaと読むと良いかも)
むとうたけし(武藤武士)
専業主夫(53歳)@奈良
所属コミュニティ
CoderDojo奈良/生駒/平群かいわい
アカウント一覧