0
0

More than 1 year has passed since last update.

ESP-NOWで三路スイッチモドキを作る(スイッチ側)

Last updated at Posted at 2023-06-28

ブログの日記にて三路スイッチのIOT化について書いたのですが、時々ご覧になる方が
いる様なので、スイッチ側の簡易コードをESP-NOWで書きましたので参考にして頂けたら幸いです。
スイッチ側は押しボタンを想定して電源ONで1メッセージ投げてDeepSleepに移行する仕組みです。
電源ON⇒1メッセージ投げ⇒DeepSleepの所要時間は100mSec以下なので、余分な回路が無ければ
電池運用で階段の照明スイッチや玄関チャイムとして数年は使えると思います。

#実行に必要なリソース
  ArduinoIDE開発環境
  ESP32/ESP8266
  ESP-NOWで三路スイッチモドキを作る(リレー側)
  "espnow_pack.h" : 記事「ESP-NOWの送受信関数群とサンプルです」で紹介

#機能
  ESP-NOWで「/TOGGLE」のテキストコマンドを送信します。
  esp_now_send_mac_address に送信先MACアドレスを設定します。
  0xff,0xff,0xff,0xff,0xff,0xff はbroadcast送信されるのでコノママでも動く・と言えば動きます。
  ##リレー側のMACアドレスはコンパイルログもしくは起動時のSTA MAC:ログにて確認して転記します。

ESPNOWSwitch.ino
if defined(ESP8266)
#include <ESP8266WiFi.h>    // ESP8266
#else
#include <WiFi.h>           // ESP32
#endif

#include "espnow_pack.h"
#define ESP_NOW_CH 0
const uint8_t esp_now_send_mac_address[6] =  { 0xff,0xff,0xff,0xff,0xff,0xff }; //送信先アドレス

void setup(){
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  if( esp_now_begin( ESP_NOW_CH )!=0 ){
    Serial.println("ESP-NOW Init Failed");
    ESP.restart();
  }
  Serial.printf("\n\nSTA MAC: %s\n", WiFi.macAddress().c_str() );
  char *COMMAND = "/TOGGLE";
  esp_now_send_data( (uint8_t *)esp_now_send_mac_address, (uint8_t *)COMMAND, (strlen(COMMAND)+1) );
  ESP.deepSleep(1000 * 1000000 );                 //1000秒ほどDeepSleepに移行する(復帰用の配線が無ければDeepSleepしたままです)
}

void loop() {
}

あとがき
 どなたか岡山:倉敷近辺でオッサンでも加入可能なそんなArduino系な集まり誘ってくれませんか? (ぷ

0
0
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
0
0