ESP32を遠隔操作!Blynkの使い方とLチカ

ESP32を遠隔操作!Blynkの使い方とLチカ

できること

Blynkとは、簡単に言えば外部ネットワークからESP32などのマイコンを操作できるサービスです。スマホアプリがリリースされていて、かなり洗練されています。

今回は以下の動画のようなボタンをトリガーとしてESP32の関数を呼び出すプログラムを作っていきます。

インストール後は、下記の画面でCreate New AccountかFacebookアカウントでログインしましょう。

トークンの取得

通信するにはトークンが必要です。

  1. スマホアプリ側で「New Project」から新しくプロジェクトを作成する
  2. ハードウェアはESP32 Dev Boardにしましょう。
  3. 以下の画面の条件でCreateを押します。その直後、「あなたのアドレスにトークンを送信しました」という旨のメッセージが表示されます。
  4. メールを確認して、トークン(ランダムな文字列)をコピーしておきましょう。

Blynk側の設定

Blynkを使うと、直感的でかっこいいボタンやスライドバーなどが使えますが、使い放題というわけにはいきません。
ポイントとしては

  • ボタンなどを使うにはエネルギーが必要(スマホゲーでいうスタミナ的な要素)
  • 無料のエネルギーが2000支給される
    が挙げられます。

ただ関数を呼び出したりするだけであればまず2000ポイントも消費しないので、心配無用です。

ではボタンを配置してみましょう。

  1. 画面のスワイプでWidget Boxを表示
  2. ボタンを選択
  3. ボタンの設定で、Virtual pinのV0を選択
  4. ボタンの名前やオンオフ時の表示を適当に変えて完成

    これでボタンが表示されるはずです。
    次は、ESP32側の設定をしましょう。

ESP32側の設定(回路)


非常にシンプルな回路です。32番ピンに抵抗とLEDを繋げています。

プログラム

#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define LED 32

//自分の環境に合わせて変更
char auth[] = "YOUR_TOKEN";
char ssid[] = "SSID";
char pass[] = "PASSWORD";

int LED_Flag = 0;

void setup()
{
  //LED settings
  pinMode(LED,OUTPUT);
  digitalWrite(LED,HIGH);
  delay(200);
  digitalWrite(LED,LOW);
  
  Serial.begin(115200);
  Blynk.begin(auth, ssid, pass);

  Serial.println("connected");
}
void loop()
{
  Blynk.run();
}

BLYNK_WRITE(V0)
{
  LED_Flag = param.asInt();
  if(LED_Flag == 1){
    L_chika();   
  }
}

void L_chika(){
  Serial.println("LED ON");
  for(int i=0;i<5;i++){
      digitalWrite(LED,HIGH);
      delay(200); 
      digitalWrite(LED,LOW);
      delay(200);
  }
}

これで関数が呼び出せましたね!
同様に、「このボタンを押すとエアコンのスイッチオン」や「このボタンを押すとサーボが回って餌や水を自動で与える」なども実装できます。

夢が広がりますね!

参考にした情報

4件のコメント

  1. お待ちしておりました
    wak techさんのわかりやすく具体的な説明 助かります
    絶対マスターしたいです
    ありがとうございました。

  2. esp32側のプログラムですが、blynkが自動で作成すると聞いた覚えがありますが、どのスケッチ例を選べば良いのでしょうか。
    また、ボタン変更すると自動でプログラム側も更新されるのでしょうか

    1. コメントありがとうございます。
      自動で作成されるとのことですが、私は残念ながら聞いたことがありません…すみません。
      ボタン変更、例えばV3に変更した場合はプログラムの「BLYNK_WRITE(V1)」を「BLYNK_WRITE(V3)」にします。
      自動で変更する方法は存じ上げないので、もし情報ありましたらリンクを貼っていただけると助かりますm(_ _)m

      1. wak tech様 失礼しました
        私の勝手な思い込みの間違いでした
        現在 https:// docs.blync.cc でblynkを勉強しています
        申し訳ありませんでした

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です