7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

IoTリモート木魚 〜インターネット経由で木魚を叩く〜 #iotlt #Arduino

Posted at

理由は謎ですが、Arduino IoT Cloud + Arduino MKR WiFi 1010で木魚を叩いてみます。

ちなみに先日のIoTLTでやったネタです。

スクリーンショット 2021-08-21 17.40.19.png

Arduino MKR WiFiでArduino IoT Cloudを利用してみます。以下の記事の続編です。

インターネット経由で木魚

木魚をインターネット経由で叩いてみます。
ただそれだけ。

実装方法

端的にいうとサーボモータをリモートで動かして木魚を叩いてみるという仕組みを作ります。

以下を使います。

  • 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みたいな。

https://create.arduino.cc/iot/dashboards

とりあえずアカウント作成からと思いましたが、昔アカウントを作っていた模様です。

スクリーンショット 2021-08-16 16.52.41.png

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さんの記事通りでうまくいくと思います。

僕の場合はセットアップタイミングでトラブル発生したので

Arduino IoT Cloudのデバイス登録でめちゃハマった件 #Arduino

3.2 mokugyoボタンと変数を作る

@youtoyさんの記事を参考に、Adruino IoT Cloudでmokugoボタンと変数を作成します。

まずはVariablesでmokugyo変数を作成します。

タイプはboolにしましょう。

スクリーンショット 2021-08-21 17.28.02.png

またダッシュボードで木魚ボタンを作成し、変数と紐付けます。

スクリーンショット 2021-08-21 17.26.47.png

4. サーボモータを制御するコードを入れ込む

Web上のSketchのタブを見ると以下のようなコードが生成されています。

スクリーンショット 2021-08-21 17.30.25.png

・・・省略

void onMokugyoChange() {
  // Do something

}

このonMokugyoChange関数が先ほど作成した木魚ボタンのON/OFFを変更した際に反応する箇所になります。

スクリーンショット 2021-08-21 17.32.05.png

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で話をしてきました(笑)

まとめや所感

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も利用できそうな雰囲気なのでそのうち試したいですね。

それでは!

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?