簡単に学ぶ! Arduino Cloudを使ったLEDのリモート操作方法

Arduino
スポンサーリンク

前回、Arduino Cloud のアカウント登録のやり方を紹介しました。今回は、Arduino Cloudを使ってLEDをリモートからON/OFFする方法を簡単に紹介します。

完成したものがこちらです。

スポンサーリンク

準備するもの

今回使用するものを一覧にまとめました。

  • ESP32
  • 発行ダイオード
  • 抵抗
  • ジャンパー線
  • ブレッドボード
  • パソコン
  • USBケーブル

です。

↓おすすめの商品↓

waves NodeMCU-32 開発ボード ESP32 ESP-WROOM-32 WiFi Bluetooth
マニュアル
サンハヤト SAD-101 ニューブレッドボード
6連結ピンの採用により余裕の配線が可能です。 分離した赤色電源ラインをジャンプワイヤで接続済みです(分割も可能)。 試作回路の回路チェック・動作確認に。 アナログ回路の抵抗等の定数決定に。 熱影響を受けやすい部品の実験に。
サムコス ジャンパーワイヤー 130本セット ジャンパー線 コネクタライン ワイヤキット オス-オス forブレッドボード フレキシブル ブレッドボード・Arduino・DIY用
サムコス ジャンパーワイヤー 130本セット ジャンパー線 コネクタライン ワイヤキット オス-オス forブレッドボード フレキシブル ブレッドボード・Arduino・DIY用

回路の作成

今回はLEDを光らせるだけなのでとても簡単な回路になります。以下が回路図です。

パソコンの設定

Arduino Cloudはブラウザベースです。なのでArduinoUNOなどに書き込むためのクライアントソフトをパソコンにインストールする必要があります。

まず、Arduino Create Agent をダウンロードします。以下のリンクからダウンロードできます。

Arduino Cloud - Getting started
Arduino Cloud Getting Started allows you easily to setup linux devices and get them running quickly.

サイトにアクセスしたら、「START」をクリックします。

そして、「DOWNLOAD」をクリックしてインストールファイルをダウンロードします。

ダウンロードしたファイルを実行します。パスワードを求められた場合はパスワードを入力して実行します。

「Next >」をクリックして次へ進みます。

ライセンス内容を読んで同意にチェックを入れて「Next >」をクリックします。

インストールする場所を指定します。基本的にデフォルトのままで大丈夫です。「Next >」をクリックします。

「Next >」をクリックするとインストールが開始されます。インストールが終わるまで待ちます。

「Finish」をクリックすればインストールは完了です。

ブラウザに戻り、「Next」をクリックします。

そして、「Go To Web Editor」をクリックするとArduinoのプログラムを書くことができるエディターサイトに飛びます。今回は使用しないので閉じて大丈夫です。

Arduino Cloudの設定

Arduino Cloudの設定を行います。Arduinoのサイトにアクセスします。

Arduino - Home
Open-source electronic prototyping platform enabling users to create interactive electronic objects.

右上の囲ってある所から「Arduino Cloud」をクリックします。

そして、「Cloud apps」から「IoT Cloud」をクリックします。

プロジェクトの作成

プロジェクトを作成します。「CREATE THING」をクリックします。

Variable 変数の設定

「Variable」を追加します。「ADD VARIABLE」をクリックします。

クリックすると設定項目が出てくるので以下の画像を参考に設定してください。

Associated Device デバイスの登録

デバイスを登録します。「Associated Device」の下にある 🔗 マークをクリックします。

そして、「SET UP NEW DEVICE」をクリックします。

ここでデバイスを選択します。対応しているデバイスを以下にまとめました。

Arduino デバイスその他
Arduino NANO 33 IoTESP8266
Arduino MKR WiFi 1010ESP32
Arduino MKR WAN 1310Pelion
Arduino MKR WAN 1300 LoRaWAN device
Arduino MKR NB 1500
Arduino MKR GSM 1400
Arduino MKR1000
Arduino Portenta X8
Arduino Portenta H7
Opta
Arduino Nicla Vision
Arduino Nano RP2040 Connect
Arduino Giga R1
Arduino Portenta X8

今回は、ESP32を使います。なので、「Set up a 3rd Party device」をクリックします。

そして、ESP32にチェックを入れて、選択の中から「ESP32 Dev Module」を選択し、「CONTINUE」をクリックします。

デバイス名を入力します。

デバイスIDとセキュリティキーが表示されるのでメモしておきます。メモを取ったらチェックを入れて「CONTINUE」をクリックします。

これでデバイスの登録ができました。

Network ネットワークの設定

ネットワークの設定をしていきます。「Network」の下にある 🔗 マークをクリックします。

SSID・Password・Secret Keyを入力します。入力したら「SAVE」をクリックします。

これで基本設定が終わりました。

Dashboardsの設定

ダッシュボードを設定していきます。上のバーから「Dashboards」→「BUILD DASHBOARD」をクリックします。

編集モードに変更し、「ADD」をクリックし、一覧の中から「Switch」をクリックします。

Nameを適当に設定します。そして、「Linked Variable」の 🔗 マークをクリックします。

先ほど作った「Variables」を選択し、「LINK VARIABLE」をクリックします。

「DONE」をクリックします。

プログラムの編集

プログラムを編集します。「Things」に移動し、先ほど作ったプロジェクトをクリックします。

「Sketch」に移動し、プログラムを編集します。黄色いマーカーの部分を追加します。赤いマーカーは作成した変数名によって違うので上の「bool」の行を確認して変更してください。

/* 
  Sketch generated by the Arduino IoT Cloud Thing "Untitled"
  https://create.arduino.cc/cloud/things/a6611314-bdfa-46fa-b543-aaf3b5621422 

  Arduino IoT Cloud Variables description

  The following variables are automatically generated and updated when changes are made to the Thing

  bool LEDSwitch;

  Variables which are marked as READ/WRITE in the Cloud Thing will also have functions
  which are called when their values are changed from the Dashboard.
  These functions are generated with the Thing and added at the end of this sketch.
*/

#include "thingProperties.h"

void setup() {
  // Initialize serial and wait for port to open:
  Serial.begin(9600);
  // This delay gives the chance to wait for a Serial Monitor without blocking if none is found
  delay(1500); 

  // Defined in thingProperties.h
  initProperties();

  // Connect to Arduino IoT Cloud
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
  
  /*
     The following function allows you to obtain more information
     related to the state of network and IoT Cloud connection and errors
     the higher number the more granular information you’ll get.
     The default is 0 (only errors).
     Maximum is 4
 */
  setDebugMessageLevel(2);
  ArduinoCloud.printDebugInfo();
  pinMode(12, OUTPUT);
}

void loop() {
  ArduinoCloud.update();
  // Your code here 
  
  
}


/*
  Since Switch is READ_WRITE variable, onSwitchChange() is
  executed every time a new value is received from IoT Cloud.
*/
void onSwitchChange()  {
  // Add your code here to act upon Switch change
  digitalWrite(12,LEDSwitch);
}

編集したプログラムを確認します。エディター左上の「☑️」をクリックします。エラーが出ないことを確認した上でESP32とパソコンを接続し、エディター左上の「➡️」をクリックして書き込みます。

レミィログ
レミィログ

書き込みでエラーが出る場合はブラウザの変更やパソコンにインストールしたソフトを確認することで解消される場合があります。

動作確認

一通り設定が終わったので動作確認をします。まず、ESP32がオンラインになっているか確認します。

「Devices」をクリックします。先ほど登録したデバイスが表示されるのでオンラインになっているか確認します。なかなかオンラインにならない場合は、ESP32の電源をOFF→ONにしたり、Networkの設定を見直したりしてください。

オンラインになったことを確認できたら「Dashboards」をクリックします。そしてSwitchを操作するとESP32に接続しているLEDが点灯したり消灯したりすると思います。

まとめ

今回は、Arduino Cloudを使ったLEDの遠隔制御(点灯/消灯)のやり方を紹介しました。

コメント

タイトルとURLをコピーしました