理由は謎ですが、Arduino IoT Cloud + Arduino MKR WiFi 1010で木魚を叩いてみます。
ちなみに先日のIoTLTでやったネタです。
Arduino MKR WiFiでArduino IoT Cloudを利用してみます。以下の記事の続編です。
インターネット経由で木魚
木魚をインターネット経由で叩いてみます。
ただそれだけ。
リモート木魚 #iotlt #protoout #arduino pic.twitter.com/KVltAlefy4
— 菅原のびすけ (@n0bisuke) August 21, 2021
実装方法
端的にいうとサーボモータをリモートで動かして木魚を叩いてみるという仕組みを作ります。
以下を使います。
- Arduino MKR WiFi 1010(通称:テンテン)
- Arduino IoT Cloud
- サーボモータ(SG90)
なんとなくこんなイメージな気がします。
木魚 <---> SG90 <---> テンテン <---(インターネット経由)---> Arduino IoT Cloud <---> PCやスマホ
1. Arduino MKR WiFi 1010の設定など
(前回までの記事参照)
2. Arduino IoT Cloudを使っていく
Arduino公式が展開しているクラウド環境。先日のIoTLTで知りましたが、Arduino Cloudという大きな概念の中にArduino IoT Cloudがあるみたいです。AWSの中のS3みたいな。
とりあえずアカウント作成からと思いましたが、昔アカウントを作っていた模様です。
3. Arduiono IoT CloudとArduiono MKR WiFi 1010を繋いでみる
@youtoyさんのArduino MKR WiFi 1010 で始める Arduino IoT Cloud【下準備編】を参考にさせて頂きました。
接続できたらLチカなどを試してみましょう。
3.1 デバイス登録でハマる
https://create.arduino.cc/iot/devices にアクセスしてデバイス登録をしていきますが、基本は↑の@youtoyさんの記事通りでうまくいくと思います。
僕の場合はセットアップタイミングでトラブル発生したので
3.2 mokugyoボタンと変数を作る
@youtoyさんの記事を参考に、Adruino IoT Cloudでmokugoボタンと変数を作成します。
まずはVariablesでmokugyo変数を作成します。
タイプはbool
にしましょう。
またダッシュボードで木魚ボタンを作成し、変数と紐付けます。
4. サーボモータを制御するコードを入れ込む
Web上のSketchのタブを見ると以下のようなコードが生成されています。
・・・省略
void onMokugyoChange() {
// Do something
}
このonMokugyoChange関数
が先ほど作成した木魚ボタンのON/OFFを変更した際に反応する箇所になります。
Arduinoでサーボモータを動かすコードのサンプルは調べるとたくさん出てくるので調べて抜粋です。
こういった記事を参考に、設定情報やonMokugyoChange関数
の中身などを記述して以下のようなコードになりました。
# include "thingProperties.h"
# include <Servo.h>//サーボのためのライブラリ
Servo servo; //木魚サーボ
void setup() {
Serial.begin(9600);
delay(1500);
// Defined in thingProperties.h
initProperties();
// Connect to Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
servo.attach(3); //3番PINで利用
}
void loop() {
ArduinoCloud.update();
}
void onMokugyoChange() {
// Do something
if(mokugyo){
servo.write(0);
delay(500);
servo.write(30);
delay(500);
servo.write(60);
delay(500);
servo.write(90);
delay(500);
} else {
}
}
これをこのままWebエディタから書き込みを行えばOKです。
5. 木魚を叩いてみる
あとはWeb上(Arduino IoT Cloud上)の木魚ボタン
が押されたらサーボが反応してくれます。
。。。が、サーボを動かせば木魚が上手く叩けるというとそういう訳でも無いんですよね。
ということで何個かやった記録動画の一部を載せておきます。
IoTLTの配信などでもみれますね
サーボあるある #iotlt #protoout #arduino pic.twitter.com/JygKQFZNjX
— 菅原のびすけ (@n0bisuke) August 21, 2021
ちゃんとやる人は機構をちゃんと作りましょう。
僕はここまでの状態でIoTLTで話をしてきました(笑)
まとめや所感
Arduino IoT CloudとArduino MKR WiFi 1010を触ってみたくらいの話で試してみました。木魚にこだわりはないですが会社に置いてあったので最近ネタとして使ってます。
Arduino IoT Cloudは便利ですが、当たり前のようにWi-Fi接続などのコードもインクルードされているスケッチになるので、ローカルのArduino IDEで安易に上書きしてしまうとArduino IoT Cloud用の接続情報などが消えてしまうので注意が必要そうです。
とはいえ僕の場合は↑にも書いたようにブラウザ経由書き込みの不具合の問題が残っているので、現状できればArduino IDEから書き込みしたいんですよね。
Arduino IoT Cloud上のWebエディタからコードを全て手元に落としてきたら使えるような気もするので気が向いたらローカルからの書き込みも試してみたいと思います。
現時点だと利用がおっくうなデバイスになってしまっています苦笑
Wi-Fi以外にもBluetoothも利用できそうな雰囲気なのでそのうち試したいですね。
それでは!