気の向くままに辿るIT/ICT/IoT
webzoit.net
IoT・電子工作

ESP-01/12/ESP32でスマートコンセントを作る

ウェブ造ホーム前へ次へ
サイト内検索
カスタム検索
ESP8266って?

ESP-01/12/ESP32でスマートコンセントを作る

ESP-01/12/ESP32でスマートコンセントを作る

2018/08/11

 ESP8266/ESP-WROOM-02/ESP-WROOM-32でスマートコンセントを自作してみるページ。

 と言っても外観は検証用試作レベルですが、任意のAC 100V家電をコンセントに挿し込むことでスマホやタブレット、パソコンのブラウザからON/OFFできるので、これらを詰め込めば、それなりの立派なスマートコンセントになります。

 先日作ったESP-01/12/ESP32によるスマートリモコンと合わせれば、あらゆる家電がIoT家電に...。

【Amazon Alexa認定取得製品】 TP-Link WiFi スマートプラグ 遠隔操作 直差しコンセント Echo シリーズ Googleホーム対応 音声コントロール コンパクト ハブ不要 3年保証 HS105

 以前作ったArduinoとリレーによる100V家電制御回路でArduinoをESPチップ・ボードに代えたらWiFi越しに操作できて便利だよねと思って作ったのですが、前回のスマートリモコン同様、作ってみてから、これってスマートコンセントとか、スマートプラグって言うのか...と気づくという...。

 これなら、スマホなどで外から操作も可能、スマートスピーカーであるGoogle Home、各種Amazon Echo(Alexa)のスマートホームに対応していそうで[Routines/定型アクション]でも使えそう。(現時点カスタムは定型で使えないらしい。)

Echo Plus (エコープラス)、 スマートホームハブ内蔵 - スマートスピーカー with Alexa、ブラック

Echo Spot (エコースポット) - スマートスピーカー with Alexa、ブラック

Echo (エコー) - スマートスピーカー with Alexa、チャコール (ファブリック)

Echo Dot (エコードット) - スマートスピーカー with Alexa、ブラック

 一方、ESPチップ・モジュールでも設定次第で外からも操作可能だし、esp8266-alexa-wemo-emulatorを作って下さった強者もおり、おかげでAlexa定型アクションでも使えるし、ESPチップ・モジュールで作れば、スマホアプリ不要でパソコンのブラウザでもいける...。

Rasbee ESP8266 ESP-01 LWIP AP+STA シリアル WIFI無線モジュール

 今回は、ESP-01を使いましたが、これでできるということは、上位機種のESP-02...、ESP-12...、ESP-WROOM-02、ESP32などESP-xxでも、これら開発ボードでもできるということで。

 と言いつつ、ESPシリーズの内、日本の技適を通っているのは、いまのところ、ESP-WROOM-02/ESP-WROOM-32(とこれらを搭載した開発ボード)のみですが。

 何れにしても最も手軽で手間がなく、限りなく悩みどころが少ないのは、開発ボードです。

HiLetgo ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモード

waves ESP32-DevKitC ESP-WROOM-32 ESP32 DevKitC V2 WiFi BLE 技適取得済 国内発送

waves ESP-WROOM-32 + 開発基盤 セット 国内発送

waves ESP8266 WiFiモジュール(技適取得済み) ESP-WROOM-02 キット 赤基盤

[スイッチサイエンス] ESP-WROOM-02ピッチ変換済みモジュール《シンプル版》

[スイッチサイエンス] ESP-WROOM-02ピッチ変換済みモジュール《フル版》

HiLetgo 2個セット ESP8285 ESP-M2 CH340開発ボード WIFIシリアルポートモジュール CH340 ESP8266に対応

HiLetgo® 2個セット ESP8266 NodeMCU LUA CP2102 ESP-12E モノのインターネット開発ボード ESP8266 無線受信発信モジュール WIFIモジュール Arduinoに適用 [並行輸入品]

HiLetgo OTA WeMos D1 CH340 WiFi 開発ボード ESP8266 ESP-12F Arduino IDE UNO R3に対応 

Rasbee WeMos D1 R3 簡易デザイン WiFi 開発ボード NODEMCU LUA ESP8266 Arduino UNO 適用 1個 [並行輸入品]

Rasbee OTA WeMos D1 CH340 WiFi 開発ボード ESP8266 ESP-12F For IDE UNO R3 Arduino用 1個 [並行輸入品]

Rasbee アップグレード版 WeMos D1 R2 WiFi UNO 開発板 ESP8266 Arduino 1個 [並行輸入品]

前提

 Arduino IDEが利用できることは、もちろん、ESP8266やESP32をArduino IDEで使えるようにしておくこと。

 ESP-01やESP-02〜ESP14などのESP8266チップなら、Arduino IDEの[ツール] => [ボード]から[Generic ESP8266 Module]を選択、ESPモジュールにスケッチをアップロードできる状態であること。

 ESP32なら、[espressif/arduino-esp32]の要領でESPモジュールにスケッチをアップロードできる状態であること。

 ちなみにこれらArduino IDEの環境設定で追加する方法の場合、カンマ区切りで複数指定可能。

 参考までに自身の使用しているOSは、Debian(Linux)、Arduino IDEのバージョンは、1.8.5。

開発ボードの場合[2019/05/14追記]

 尚、ESP8266やESP32の開発ボードである場合、先のようにArduino IDEで利用可能にするとボード情報に様々な関連ボードが追加されるので、使うボードに適したものを選択することになるわけですが、例えば、次のようになります。

 ESP8266 NodeMCUボードなら、Arduino IDEの[ツール] => [ボード]から[NodeMCU 0.9 (ESP-12 Module)]や[NodeMCU 1.0 (ESP-12E Module)]などを選びます。

 ちなみにESP8266 NodeMCUボードについては、ボード上のピン番号(D0-D8)と実際のGPIOが異なるのでプログラム・スケッチを書く場合、標準でインクルードされる模様のpins_arduino.hの定義に沿って指定します。

 また、ESP32 DevKitCやDevKitボードなら、[ESP Dev Module]を選びます。

 開発ボードについては、あとは基本的にArduinoボードと同様にスケッチをアップロード、電源としてUSBケーブルをつなぐか、VIN(5V)/G(ND)に5Vを供給して組んだ回路を実行するだけです。

必要なモノ

 前述の通り、今回のケースでは、WiFiモジュールはどれでもよいですが、ESP-01を使いました。

スマートコンセント側
家電側(任意)

 Amazonマーケットプレイス&100円ショップ相場で一部電子部品などは単価割したとして今回使った家電側込みで約2000円程度かと。

 今回、スマートコンセント側については、USBシリアル変換モジュールには、後述のFTDIモジュールを、昇圧モジュールには、MT3608を、リレーには、1チャンネルのオプトカプラ付きHigh/Lowレベルトリガー切り替え機械式タイプを使いました。

 また、家電側については、USB充電器は216円、電源タップの値段は長さによる、USB接続のLED電球は108円ながらあるか否かは店舗にもよりますが、3点ともダイソー(100均)で買うこともできるでしょう。

Rasbee ESP8266 ESP-01 LWIP AP+STA シリアル WIFI無線モジュール

Rasbeeオリジナル FT232RL互換 3.3V/5V FTDI/USB/TTL変換アダプタ

iBUFFALO USB2.0ケーブル (A to miniB) スリムタイプ ホワイト 1m BSUAMNSM210WH

KKHMF 5PCS MT3608 DC-DC 2A Boost ステップアップ 転換モジュール 2V-24V to 5V-28V 9V 12V 24V

KKHMF G3MB-202P SSR/ソリッドステートリレーモジュール 5V 1チャネル(抵抗/ヒューズ付き)

SODIAL(R) DC24V 1チャネルオプトカプラドライバ リレーモジュールボード 赤

【ノーブランド 品】DC5V-5W パワード USB LED 電球 ポータブル ランプ ラップトップ アウトドア用

パナソニック スマートフォン対応USB出力ACアダプター QE-AP108-W

ヤザワコーポレーション 延長コード 1個口 1m ホワイト

Rasbee 400穴 ブレッドボード 8.5*5.5cm 1個

HiLetgo 400穴 ブレッドボード 8.5*5.5cm 5個セット

HiLetgo 400穴 ブレッドボード 8.5*5.5cm 10個セット

KKHMF 3本 20CM セット ブレッドボード・ジャンパーワイヤー ジャンパー線/ケーブル オス-オス/オス-メス/メス-メス Arduino Raspberry pi 用

ESP-01/ESP-12Fへのスケッチのアップロード準備

 ESP-01や開発ボード以外のESP-12Fにプログラムをアップロードするには、USBポートを備えたCP2102やFTDI系のシリアルUSB変換モジュールを併用する必要があります。

 尚、USBポートを備えた開発ボードではないESP-01〜ESP-14単体及びブレイクアウトボード(≒ピッチ変換基板)との組み合わせは、全て同様にシリアルUSB変換モジュールを要します。

 ESP-01の定格電圧は3.3VなのでシリアルUSB変換モジュールも3.3V専用か3.3V/5V兼用なら3.3Vに切り替えて接続します。

Rasbeeオリジナル FT232RL互換 3.3V/5V FTDI/USB/TTL変換アダプタ

 尚、ESP-01や開発ボード以外のESP-12Fは、プログラム書き込み時と実行時、ESP-01では、RSTとGPIO0のHIGH/LOWを巧みに切り替える、ESP-12では、GPIO00/GPIO15をLOWにする一方、実行時には、GPIO00はHIGHにしておく必要がありますが、RTS/DTRピン(ホール)のあるFTDIモジュールなら、これらにESP-01のRST/GPIO0をそれぞれ、ESP-12ではRESETを接続することで自動でアップロードできる為、これを使うことをおすすめします。

 ただ、これらRTS/DTR、ブレッドボード上でピンホールにジャンパワイヤを挿す場合、ピンヘッダや3.3V/5V切り替え用ジャンパピンのハンダ部が隆起しているのですが、ピンホールが、この付近にある為、USBシリアル変換モジュール並びに挿したジャンパワイヤを手でうまく押さえる必要はあるでしょう。

 なんなら、手で持った方が、安定するでしょう。

 ちなみにESP-01については、SPIFFSを使おうにもフラッシュメモリ容量の関係でArduinoOTAは難しい模様。

ESP-12FTDI別電源
RXTX-
TXRX-
RESETRTS-
GPIO00-マイナス
GPIO02-プラス
GPIO15-マイナス
CH_PC-3.3V
VCC-3.3V
GNDマイナス
ESP-01FTDI別電源
RXTX-
TXRX-
RSTRTS-
GPIO0DTR-
CH_PD-3.3V
VCC-3.3V
GNDマイナス

 また、パソコンのUSBは最大500mAと大丈夫そうに思えるし、実際、たいていの場合、書き込みできますが、往々にしてWiFiモジュールは多くの電流を必要とすることがあり、ESP8266も300mAを超えることもあるとのことなのでそれらが要する電流量不足やパソコンのUSBポートの損傷回避などを考慮し、実行時はもちろんのこと、書き込み時も念の為、別電源をとった方がよさ気。

 尚、検証・運用時には、元電源が3.3Vだと過電流により2V程度まで電圧降下し、ESP8266にリセットがかかり、WiFi接続が途切れるなどの状況になる可能性があるので5Vから降圧、更に電圧降下に耐え得るよう、より短時間で通常電圧に戻る負荷過渡応答特性に優れた電圧レギュレータを使う必要がありそう。

 全ての回路で同じとは限りませんが、とある回路を作って9V電池で動かしてみたところ、7V切ったあたりで動作が不安定になり、電池を交換したら正常になりました。

 ただし、これは、ESP-01やESP-xx+ピッチ変換基板での話であって、開発ボードについては、何らかの対策が講じられているようで、この必要はなさそうです。

EasyWordMall 3.3V 5V MB102ブレッドボード用 電源モジュール パワーモジュール

KKHMF MB102ブレッドボード電源モジュール3.3V 5V Arduino Boardハンダ無しブレッドボード用

9V 電池ボックス DCケース5.5*2.1  スイッチ&背面カバーとプラグイン

uxcell バッテリコネクタ 5.5x2.1mm 9Vバッテリー用 接続バッテリー 4個入り

アルカリ乾電池 9V 1本 6LR61/B1P/V

SUCCUL ACアダプター 12V 1A センタープラス スイッチング式 最大出力12W 出力プラグ外径5.5mm(内径2.1mm)PSE取得品

回路

ESP-01FTDI昇圧モジュールリレーモジュール別電源
RXTX---
TXRX---
GPIO2-VIN+--
CH_PD---3.3V
VCC---3.3V
GNDVIN--マイナス
(3.3V側)
-VOUT+DATA-
-VOUT--マイナス
(5V側)
--DC/IN+5V
--DC/IN-マイナス
(5V側)

 ESP-01の信号出力用ピンには、GPIO2を使いました。

 昇圧モジュールやリレーモジュールの端子名などはモノによるかもしれませんが、適宜読み替えてください。

 今回、リレーには、電気的に絶縁したオプトカプラ付きでHIGH/LOWをジャンパピンで切り替えできる(High/Low level triger)で、かつ、NC(Normal Close)/COM(Common)/NO(Normal Open)の出力端子台のあるモジュールをHigh側(LOWからHIGHになった時ON)、かつ、COM/NO(通常OFF)として使いました。

 5Vと3.3Vは、ブレッドボード用電源の両側を、それぞれ5Vと3.3Vとして使いました(が、手持ちのリレーは3.3VでもON/OFFできたので逆流防止にダイオードを入れておけば電源を1系統にしてもよいかもしれません[2019/04/18追記])。

 運用・実行時、USBシリアル変換モジュールは、シリアルモニタで確認する場合には配線が必要ですが、そうでなければ外しても構いません。

 また、リレーモジュールの入力電圧が3V程度を許容し、かつ電圧降下がない、または影響がないくらいの入力電源であれば、昇圧モジュールも不要。

 その場合、ここで言うところのGPIO2をそのまま、リレーのDATAに、別電源の3.3V/GNDをリレーのIN+/IN-に接続すればよいでしょう。

 コンセント側の加工とリレーモジュールとの接続に関しては、Arduinoでリレーを使ったAC100V家電操作を参照。

スケッチ

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
 
const char *ssid   = "XXXXX";
const char *password = "YYYYY";
 
const int power = 2;
 
ESP8266WebServer server ( 80 );
#define SOFTAP_SSID "ESP1B"
#define SOFTAP_PW "blackversion01"
 
void setup() {
 Serial.begin(115200);
 WiFi.begin(ssid, password);
 Serial.println("");
 // AP+STAモードの設定
 WiFi.mode(WIFI_AP_STA);
// WiFi.mode(WIFI_STA);
 // APとして振る舞うためのSSIDとPW情報
 WiFi.softAP(SOFTAP_SSID, SOFTAP_PW);
 Serial.print("Connecting to ");
 Serial.println(SOFTAP_SSID);
 Serial.println("----------");
 
 //wait for connection
 while( WiFi.status() != WL_CONNECTED){
  delay(500);
  Serial.print(".");
 }
 Serial.println("");
 Serial.print("Connected to ");
 Serial.println(ssid);
 Serial.print("IP address: ");
 Serial.println(WiFi.localIP());
 
 server.on("/",handleRoot);
 server.onNotFound(handleNotFound);
 
 if (!MDNS.begin("espsmartp")) {
  Serial.println("Error setting up MDNS responder!");
  while(1) {
   delay(1000);
  }
 }
 Serial.println("mDNS responder started");
 
 server.begin();
 Serial.println("HTTP server started");
 
 // Add service to MDNS-SD
 MDNS.addService("http", "tcp", 80);
 pinMode(power, OUTPUT);
 digitalWrite(power, HIGH);
}
 
void loop() {
 server.handleClient();
}
 
void handleRoot() {
 char temp[800];
 char message[20];
 String(server.arg(0)).toCharArray(message,20);
 
 if(server.arg(0).indexOf("ON") != -1){
  Serial.println("ON");
  digitalWrite(power, HIGH);
  delay(20);
 }
 else if(server.arg(0).indexOf("OFF") != -1){
  Serial.println("OFF");
  digitalWrite(power, LOW);
  delay(20);
 }
 
 snprintf ( temp, 800,
 
"<html>\
 <head>\
  <title>ESP8266 Smart Plug Demo</title>\
  <style>\
   body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\
  </style>\
 </head>\
 <body>\
  <h1>ESP8266 Smart Plug DEMO</h1>\
  <form action=\"/\" method=\"post\" style=\"width:300px;\">\
   <input type=\"submit\" name=\"button1\" value=\"ON\" style=\"width:30%; height:100px;\">\
   <input type=\"submit\" name=\"button2\" value=\"OFF\" style=\"width:30%; height:100px;\">\
  </form>\
 </body>\
</html>",
 
  message
  
 );
 server.send ( 200, "text/html", temp );
}
 
void handleNotFound() {
 
 String message = "File Not Found\n\n";
 message += "URI: ";
 message += server.uri();
 message += "\nMethod: ";
 message += ( server.method() == HTTP_GET ) ? "GET" : "POST";
 message += "\nArguments: ";
 message += server.args();
 message += "\n";
 
 for ( uint8_t i = 0; i < server.args(); i++ ) {
  message += " " + server.argName ( i ) + ": " + server.arg ( i ) + "\n";
 }
 server.send ( 404, "text/plain", message );
 
}
 

 少なくともssid/passwordは、社内・宅内のものに変更のこと。

 ESP-8266/ESP-WROOM-02/ESP-WROOM-32は、Arduinoの代わりにも使え、Arduino IDEも使えるから、今回もスケッチは、ESP-01にのみ書いてアップロードするだけでよいでしょう。

 SoftAP/STAモードとし、社内・宅内の無線LANに接続、ESP-01にWebサーバーを立て、DHCPでIPアドレスを払い出してもらいつつ、mDNSで常にホスト名(ここでは[espsmartp]).localでアクセスできるようにしました。

 よって何らかのシリアルモニタ、ifconfig、ipconfig、nmapなどのIP探索コマンド、pingコマンドなどの疎通確認コマンド、GUIの有線・無線LAN一覧取得ソフトウェアなどでIPアドレスやSSIDを確認できるようにしておくとブラウザを開く前に接続が確立しているのか否かの確認などもでき、何かと都合が良いでしょう。

[2019/04/30 訂正・追記:]
 勘違い...、APモードにする(Soft_APを立てる)必要はありませんでした。

[2019/05/12 訂正・追記:]
 スケッチのsetup(){}にdigitalWrite(power, HIGH);を入れ忘れてました...。
 必要な理由は、HIGH/LOW不定だと(リレーのタイプによってコンセント挿したらずっとONになるなど)困るから、HIGHとしたのは、使用したリレーモジュールがLow Level Triger(HIGH => LOWでON)だった為でHigh Level Trigerだった場合には、ここはLOWにします。

電源

 本来、電源は、2系統個別に用意した方がよいようにも思いますが、今回は、一応2系統ですが、MB102ブレッドボード用電源の両側2系統をそれぞれジャンパピンを3.3V、5Vに挿し使いました。

リレーモジュールのNC/COM/NO出力

 リレーモジュールには、NC(Normarlly Close・通常ON・回路閉)/COM(Common・共通)/NO(Normarlly Open・通常OFF・回路開)でNC/COM、NO/COM何れも使えるタイプのものがあり、今回のリレーモジュールもこのタイプでNO/COMとしました。

リレーモジュールのHIGH Level TrigerとLow Level Triger

 リレーモジュールには、HIGH Level Triger(信号がLOWからHIGHに切り替わるとON)とLow Level Triger(信号がHIGHからLOWに切り替わるとON)、または、これらを切り替えられるタイプがあります。

 スケッチ上のHIGH/LOWは、これらに合わせておく必要があります。

実行

ESP8266スマートプラグ/スマートコンセントDEMOブラウザ画面

 ホスト名等を変更していなければ、社内・宅内WiFiに接続したスマホ、タブレット、パソコンのブラウザのURL入力欄に[espsmartp.local]と入れると[ESP8266 Smart Plug DEMO]というタイトルに加え、ON/OFFのボタンが表示されます。(ボタンがつぶれてるけど気にしない。)

 やはり、SPIFFSでメモリ上にHTMLファイルを置いたほうが、よいでしょう。

ESP8266スマートプラグ/スマートコンセントON

 ブラウザ上のONボタンをタップ・クリックすると今回、AC100V家電側に使ったLED電球が点灯します。

ESP8266スマートプラグ/スマートコンセントOFF

 ブラウザ上のOFFボタンをタップ・クリックするとLED電球が消えます。

 これで当該無線LANの電波が届く範囲なら、どこでも無線でON/OFFできます。

 もちろん、LED電球に限らず、AC100Vのコンセントにつないで使うON/OFFスイッチやこれに相当するスイッチがあるものなら、なんでもON/OFF可能(リレーでON/OFFするので家電の方は、ON状態にしておきます)。

AC/DCコンバータ


Aliexpress/Fruit Pi Store
AC DCコンバーター5V/700mA

Amazon/HATOLY 1 ピース AC-DC 5 ボルト 700mA 3.5 ワット精密降圧コンバータ AC 220 ボルトに 5 ボルト DC ステップダウントランス電源モジュール arduino のための

[2019/04/18]

 よく考えたら、このままだと家電用のコンセントの他にESP8266用の電源が必要になることに気づき、発注済みで今日届いたAC/DCコンバータの動作確認も完了しました。

 また、先日、数種のコンセントも買っておきましたし、部品取りしたACプラグ付きコンセントケーブルも数本あります。

 たぶん、これで壁面などのコンセントからとるAC 100Vでコンセント側とESP8266側の電源を賄うことができるはず。

 要は、USBポートも備えたコンセントと同じような構成になると思います。

 というわけで何か適当なケースを見繕って近い内に組み込んでみたいと思います。

 尚、ESP8266/ESP32は、チップやピッチ変換基板との併用ではなく、若干場所はとるにしてもNodeMCUやDevKit/DevKitCなどの開発ボードを使った方が、面倒がなく、遥かに簡単にできると思います。

AC/DCコンバータを使ったESP8266スマートプラグ/スマートコンセント
[2019/04/20]

 想定通り、AC/DCコンバータを使えば、AC100V1回線の入力でESP8266/ESP32と家電側に電源供給でき、スマートプラグとして機能することは確認できました。

 以前、WiFiだけは、最初にUSBケーブルを...WiFi接続後は、USBケーブルを抜いても機能するといった情報を見かけたのですが、情報が古かったのか、電池駆動などの場合だったのか、その必要はありませんでした。

 迂闊にも今回は、5V駆動のリレーモジュールしか手持ちがなく、これを使ってしまった関係でAC/DCコンバータからの5VをリレーとESP8266/ESP32に分岐したり、ESP8266/ESP32の信号線用に昇圧回路が必要となったのですが、そもそも3V駆動のリレーにすれば、これが要らないので構成もシンプルでこじんまり収めることができるでしょう。

 あ、赤いブレッドボードの手前にあるESP開発ボード、立ってて見づらかった...。

 サーキュレーターなどをしばらく動かしていると電圧降下なのか、配線上の接触不良なのか、100V側で使った配線が細いのか、不安定な感じがしなくもありません。

 何れにせよ、100Vは感電すると怖いので、やってみるにしても十分注意の上、自己責任でお願いします。

はんだ付けでよりコンパクトになった自作ESP8266スマートプラグ/スマートコンセント
[2019/04/29]

 ユニバーサルボードすら使わず、はんだ付けしてみたところ、こんな感じになりました。

 100均セリアのトレカケースに入ればと思いましたが、ちょっと微妙なのでケースは再考。

 ただ、リレーが3.3V版であれば、昇圧モジュールも要らず、ESPボードもピンヘッダなしなら、配線の長さも考慮すれば、コンセントにプラスアルファ程度のサイズに収まりそうでトレカケースより小ぶりでもよさそうです。

 ちなみにWiFiチップは、結構熱をもつので誤動作回避のためにもケースに入れるのであれば、適度な通気口が必要でしょう。

 尚、このESP8266/ESP32スマートコンセントは、なぜか、初回起動時、リセット直後のみ、一時的に電源がONになりますが、数秒でOFFになります。

 この回路の概要は次の通りです。

 今回、コンセントプラグ付きのケーブルは、壊れた家電から部品取り(切断)したものを使いましたが、100均の延長コードを切って使ってもよいでしょう。

KKHMF ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetooth デュアルコアCPU低消費電力

KKHMF ESP8266に基づいて NodeMCU LUA WIFI無線モジュール 開発ボード

KKHMF 5V 700mA 超小型スイッチ電源モジュール AC-DC 降圧モジュール マクロプロセッサ DIY電源

KKHMF MT3608 2A DC-DC ブースターモジュールボード 広範囲入力電圧 2/24v to 5/9/12/28v 2577 調整可能

KKHMF DC 5V 1チャネルの SSR G3MB-202P ソリッドステートリレーモジュール抵抗ヒューズ付きFor arduino

パナソニック(Panasonic) 露出コンセント WK1012W

 ケースなしでAmazon/Amazonマーケットプレイス価格で開発ボードがESP8266 NodeMCUなら2500円前後、ESP32なら3000円前後、というか、AC/DCコンバータが高い...Aliexpressだとこれの3〜4割といったところでしょうか。

 というか、Amazonマーケットプレイス、電子工作部品を扱う店が、かなり増えてる気が...自身が買ったことのない店なら安いものも。

 あとケーブル・配線コードは極々少量なのでともかく、角型コンセント(1口)ですが、Amazonだと高い...メーカーにこだわらなければ、近所のホームセンターですら、もっと安かったです。

ESP+サーボモータでON/OFF

 視点を変えれば、Arduinoとサーボモータで物理スイッチをON/OFFという方法もあり、ArduinoをESPに代えれば、無線で操作でき、信号線は1本あれば良いため、ESP-01でもOK。

備考

 スリープモードについては、ESP-01/12/ESP32でスマートリモコンを参照。

 ただ、ESPがやたらリセットがかかることがあったりして、やや不安定...電流不足...独立した別電源にすれば解消するか...?

[2019/04/18追記]
 電源問題もNodeMCUやDevKit/DevKitCなどの開発ボードなら心配には及ばないと思います。

[2019/02/15]

 スマートリモコンにしてもスマートプラグにしても、ここでやったようにESP8266をWebサーバとしても兼ね、特定のURLにアクセスすることである機能を実行するように作ってあると自作スマートスピーカーでテレビを音声操作のように簡単なスクリプトを作ってスマートスピーカーから音声操作することも容易にできます。

ウェブ造ホーム前へ次へ