石油ファンヒーターを改造して「延長」ボタンを自動で押す
ESP32では、2時間30分(150分)に1回、「延長」ボタンを電気的に接続するプログラムを作ります。これだけだったらタイマーICでも良いくらいの簡単な仕事です。そこで、ESP32の通信機能を活用して、自動延長を実施する・しないの設定をHomeKitから設定できるようにします。そのために、Raspberry Piで動かしているMQTTブローカー (Mosquitto) にWi-Fi接続して、延長On/Offの設定を受け取ります。
公衆MQTTサーバでLチカするスイッチやセンサの状態や、リレーやサーボモータの制御コマンドを送受信する目的で、MQTT (Message Queueing Telemetry Transport)というプロトコルが使われます。MQTTは、Home AssistantやH.
diysmartmatter.com Arduino IDEからESP32をOTAアップデート(改訂版)OTA (Over The Air)を使ってESP32のスケッチをアップデートする方法の改訂版です。以前、試したESP32のスケッチ例は、もっと簡単にしても良いことを他の方のブログで知りました。おかげさまで活用できるようになりました。という.
diysmartmatter.com //Extends operation of Corona Fan Heater FH-G32YA2 #include #include EspMQTTClient *client; int switchPin=10; //IO pin to the photo switch bool isExtendMode=false; //true: extend on every 150 min long int counter=0; //counter for extend-interval (used in loop()) //WiFi & MQTT const char SSID[] = "xxxxxxxx"; //WiFi SSID const char PASS[] = "XXXXXXXX"; //WiFi password char CLIENTID[] = "ESP32_xx:xx:xx:xx:xx:xx"; //MAC address is set in setup() //for example, this will be set to "ESP32_84:CC:A8:7A:5F:44" const char MQTTADD[] = "192.168.xxx.xxx"; //Broker IP address const short MQTTPORT = 1883; //Broker port const char MQTTUSER[] = "";//Can be omitted if not needed const char MQTTPASS[] = "";//Can be omitted if not needed const char SUBTOPIC[] = "mqttthing/fanheater/set"; //mqtt topic to subscribe const char PUBTOPIC[] = "mqttthing/fanheater/get"; //mqtt topic to publish const char PUBDEBUG[] = "mqttthing/fanheater/debug"; //for debug message void onConnectionEstablished() < ArduinoOTA.setHostname("fanheater"); ArduinoOTA.setPasswordHash("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); ArduinoOTA.begin(); client->subscribe(SUBTOPIC, onMessageReceived); //set callback function client->publish(PUBDEBUG,"Fan Heater started."); pubCurrentMode(); > void pubCurrentMode()< if(isExtendMode) client->publish(PUBTOPIC,"true"); else client->publish(PUBTOPIC, "false"); > void onMessageReceived(const String& msg) < if(msg.compareTo("true")==0) publish(PUBDEBUG, "Set true, received."); reset3HourTimer(); //first extension counter=0; //reset interval counter isExtendMode = true; //enable succeeding extension > else if(msg.compareTo("false")==0) publish(PUBDEBUG, "Set false, received."); reset3HourTimer(); //last extension isExtendMode = false; //disable succeeding extension > > void setup() < pinMode(switchPin, OUTPUT); digitalWrite(switchPin, LOW); isExtendMode=false; //default value: no extension String wifiMACString = WiFi.macAddress(); //WiFi MAC address wifiMACString.toCharArray(&CLIENTID[6], 18, 0); //"ESP32_xx:xx:xx:xx:xx:xx" client = new EspMQTTClient(SSID,PASS,MQTTADD,MQTTUSER,MQTTPASS,CLIENTID,MQTTPORT); delay(1000); >void reset3HourTimer() < digitalWrite(switchPin, HIGH); // turn the photo switch on delay(1000); digitalWrite(switchPin, LOW); // turn the photo switch off >void loop() < ArduinoOTA.handle(); client->loop(); delay(100); if(++counter > (150 * 60 * 10)) < //on every 150 min counter=0; if(isExtendMode) reset3HourTimer(); >if((counter % 300) == 0) // on every 30 sec, reports the mode, JIC pubCurrentMode(); >HomeKitから操作する
< "type": "switch", "name": "FH Extender", "topics": < "getOn": "mqttthing/fanheater/get", "setOn": "mqttthing/fanheater/set" >, "accessory": "mqttthing" >まとめ
石油ファンヒーター改造 (1: 延長ボタンを自動で押す) diysmartmatter.com 石油ファンヒーター改造 (2: 3.3V電源を作る) diysmartmatter.com 石油ファンヒーター改造 (3: HomeKit対応ファンヒーター爆誕) diysmartmatter.com diysmartmatterをフォローする関連記事
石油ファンヒーター改造 (2: 3.3V電源を作る) ESP ZeroCode を使ってMatterデバイスをDIYするESP32を作っているEspressif社が、Matterデバイス開発するWebアプリ、ESP ZeroCodeを公開しました。これを使ってESP32で簡単なMatterデバイス(照度のみ制御できるLED照明)を作ってみます。ESP Zer.
HomeKitでスマホ通知機能付きセキュリティシステムを作る人感センサ、扉開閉センサなどのHomeKitアクセサリに連動するセキュリティシステムをHomebridge / HomeKitで作りました。HomeKitで定義されているSecurity Systemsカテゴリのアクセサリとして動きます。家.
エアコンリモコンのHomeKitアクセサリをDIYする (後編:温度センサ他) 石油ファンヒーター改造 (3: HomeKit対応ファンヒーター爆誕) Matter対応の自動延長石油ファンヒーター爆誕 古い紐スイッチ和風蛍光灯器具をMatter対応にDIY Zigbee壁スイッチ(中性線付)をHomeKitで使うコメント
はじめまして。素人です。たまたたどり着きまして大変参考にさせていただいております。 コロナの型番は違いますが、前面パネルや本体基板はまったく同じです。 まずシンプルにしたかったので、本体基盤のブザーから抵抗を介してフォトカプラからsw204に繋いでみました。ブザーがなるたびに延長はされましたが、電源ボタンや温度設定でもブザーが鳴るため、動作が少し不安定です。 安全性を保ちながらシンプルにすべく考えたのが人感センサ(https://www.amazon.co.jp/dp/B09997L7CP)を利用する方法です。ファンヒーターの近くで人が活動している間のみ延長され、構造的にもシンプルでいいと考えました。センサーはファンヒーター本体基盤から電源を取り、出力もきちんと5Vが出ます。近所で買った安いフォトカプラ(TLP785)を介してsw204に接続しましたが、どうしてもフォトカプラが反応しないところで躓いています。フォトカプラは入力側に320Ω、700Ωなどでつないでみましたが無反応です。お時間があるときになにか思いつかれることでもあればご返信いただけると助かります。
すみません、ダイニチのブルーヒーターの件で色々調べていましたら、貴方のページにたどり着きました。 一つ質問ですが、ダイニチのFM195シリーズのメイン基板上にタクトボタンが備わってますが、このスイッチの意味を知っていられたら、 ご伝授頂きたいのですが? すみません。