2024年4月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
無料ブログはココログ

« ESP32-WROVER-E 実行速度計測 | トップページ | ESP32で走るTinyBasicの準備 »

2023年6月23日 (金)

ワンショットリモコンのIoT化:成功

全体の目次

先日構想していたワンショットリモコンシステムのIoT化ですが、今日回路の組み上げとスケッチの編集をし、スマホのブラウザ画面からのIoT制御が成功しました。

編集元のスケッチ内のHTML記述の動作が良く分からない部分がありましたが、ネット検索でいろいろと記事をあさり、斜め読みしながらカットアンドトライで何とかできました。
いやー!情報が結構ネットに転がっているので、つまずいても比較的簡単に解決にたどり着くことが出来、良き時代になったものだと感じます。

クライアントに表示されるHTMLの見え方編集に関し、Visual Studio Code・LiveServer・Prettier-Code Formatterのインストールで少しでも楽になるかと思いましたが、それはそれで面倒だったので、今回は手修正のカットアンドトライで何とかなりました。


全体構成は以下です。
Photo_20230623225001
ダイオード接続切替回路はトグル動作なので赤と緑のLEDを付けました。
このLEDは、リモコンスイッチの赤緑LEDと役割は同じです。
もしクライアントのブラウザ画面とリモコントランスのOnとOffの関係が逆になっている場合は、リモコンシステムへ接続する線を入れ替えれば一致させられます。

ESP32に繋いだ外部回路部分の拡大です。
2_20230623225001
右下の5Vリレー回路がワンショット回路でGPIO26に100ms期間HIGHを出力し、既設ワンショットリモコンシステムへダイオードを接続する事で、ワンショットリモコンリレーを切り替えます。
切り替わってしまえばリモコンリレー内のダイオードの向きも変わり、電流は流れなくなるのが分かっている事と、確実な切替動作のため、接続時間を長めの100ms(50Hzだと5サイクル)にしました。
右上の5Vリレー回路がダイオードの接続向きの切り替え回路で、GPIO26からのHIGH出力が終わってから、逆向きへ切り替えておくため、GPIO27の出力がHIGHだったらLOWへ、LOWだったらHIGHへと切り替える、トグル動作をさせます。
状態が分かる様に赤と緑のLEDを排他的に点灯させます。緑LED側はESP32のGPIOは3.3V系なので、3.3Vを電源にしました。


スケッチは、前回のLチカのものを加工して作成しました。
ボタンは1つだけにし、押すたびにGPIO26で100msだけHighを出し、その後GPIO27をトグルさせダイオードの向きを切り替えます。
ボタンの色は、リモコンリレーとリモコンスイッチの現在の状態に合わせ、ON状態なら赤色で to OFF 表示、OFF状態なら緑色で to ON 表示にしました。

元のスケッチからの主な変更点が下の赤字部分です。
output27Stateの if else でのトグル動作の記述は、たぶん冗長かなーと思いつつそのままです。

-- 省略 --
    // turns the GPIOs on and off
    if (header.indexOf("GET /26/on") >= 0) {
      Serial.println("GPIO 26 on");
      output26State = "on";
      digitalWrite(output26, HIGH);
      delay(100);
      digitalWrite(output26, LOW);
      if(output27State=="off"){
        digitalWrite(output27,HIGH);
        output27State="on";
      } else {
        digitalWrite(output27,LOW);
        output27State="off";
      }
    } else if (header.indexOf("GET /26/off") >= 0) {
      Serial.println("GPIO 26 off");
      output26State = "off";
      digitalWrite(output26, HIGH);
      delay(100);
      digitalWrite(output26, LOW);
      if(output27State=="off"){
        digitalWrite(output27,HIGH);
        output27State="on";
      } else {
        digitalWrite(output27,LOW);
        output27State="off";
      }
  }
-- 省略 --

  // Feel free to change the background-color and font-size attributes to fit your preferences
  client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}");
  client.println(".button { background-color: #009933; border: none; color: white; padding: 16px 40px;");
  client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");
  client.println(".button2 {background-color: #f61f20;}</style></head>");

  // Web Page Heading
  client.println("<body><h1>One-Shot-Remocon Server by ESP32</h1>");

  // Display current state, and ON/OFF buttons for GPIO 26
  client.println("<p>Current State " + output26State + "</p>");
  // If the output26State is off, it displays the ON button
  if (output26State=="off") {
    client.println("<p><a href=\"/26/on\"><button class=\"button\">to ON</button></a></p>");
  } else {
    client.println("<p><a href=\"/26/off\"><button class=\"button button2\">to OFF</button></a></p>");
  }

--  // Display current state, and ON/OFF buttons for GPIO 27
     以降のボタン処理関係は削除  --
 


-- 省略 --


IoT化のESP32と外部回路です。上に延びた赤黒線がワンショットリモコンシステムに繋がります。
Img_9526

外部回路の拡大です。部品と配線が密集しているので分かりにくいです。四角い箱が5Vリレーです。
Img_9529

ワンショットリモコンシステムに繋いだ状態です。ESP32側はモバイルバッテリーで動かしました。
Img_9530

ESP32に繋いだ回路の組み上げ部分で、GPIO27でダイオード接続向きをトグルさせる回路の赤LEDが点灯している状態。
Img_9546

同上で緑LEDが点灯している状態。
Img_9545

スマホでWi-Fi経由で制御している動画です。
ワンショットリモコンスイッチを押すと同期がずれますが、スマホ側ブラウザのボタンを2回押すと同期するのが分かります。

スマホとPCからも制御してみた動画です。分かり易い様にワンショットリモコンリレーの主回路にランプを繋ぎました。

2023-6-25追記
リモコンスイッチの結線を外して、今回のIoT化回路だけでリモコンリレーの制御ができるか確認しました。
実験の様子です。リモコンスイッチからの赤い線(上下のボードの間)を外したので、リモコンスイッチ側の赤緑LEDは点灯していません。
Img_9532

動画です。

---------------------------------------------------------------------
ついでに、自作ワンショットリモコンリレーをIoT制御してみました。
実験の様子です。
Img_9534

動画です。

どちらも期待通りに動作させることが出来ました。

 


ワンショットリモコンシステムのIoT化が成功しました。

グリーンワークスさんの真似ではありますが、やればできるんですね。
リモコン調査のおまけ:ダイオード1本でON/OFFさせる動画: my little topics (cocolog-nifty.com)

難易度も思っていたよりもかなり低く感じますが、まだ高度な事をやっていないからなんでしょうけどね。


さて、次は何をしましょう。

ネットではArduinoやESPの工作記事も多いです。
IoT - ESP32 (101010.fun)
Arduino のすすめ (mtng.org)
 └Samples for Arduino (mtng.org)
ESP32 – マイコン技術Navi (ekit-tech.com)
ESP32の使い方入門【20個のチュートリアル】 | Wak-tech

アルティメットスターターキットには、カメラやLCDディスプレイ、オーディオアンプ、各種モーターなど沢山パーツがあるので、使ってみるとか、アマゾンで買った本を読んで理解を深めるとかやるとしますかね。
Photo_20230708133701Photo_20230624084401

続報あればまた。

2023-7-16追記 次を考える前に、この記事の元のWi-Fi Lチカのスケッチを解読してみました。

本記事は、メーカーからの情報や公開された特許情報等を元に、動作理解とシミュレーションでの再現を目的に独自に調査したものです。従って、考察や実験結果はあくまで個人の範囲に留めるものであり、記事の内容には間違いがある可能性があります。参考にされる際は自己責任とし、メーカーや関連業者に迷惑を掛けるような事はしないでください。また、この記事を読まれて類似の事をされても、当方はいかなる責任も負いません。

« ESP32-WROVER-E 実行速度計測 | トップページ | ESP32で走るTinyBasicの準備 »

仕事」カテゴリの記事

電子工作:ESP32」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« ESP32-WROVER-E 実行速度計測 | トップページ | ESP32で走るTinyBasicの準備 »