石油ファンヒーターを買い足したので、去年と同様に改造します。まずは悪評の「3時間自動消火機能」を阻止するために、「延長」ボタン自動押し機能を追加します。去年は色々と凝ってしまいましたが、今回は最小限の改造を目指します。
前回の取り組み
以前の記事で、石油ファンヒーターにESP32を組み込み、「延長ボタン」を自動で押すよう改造しました。この自動延長機能をHomeKitからOn/Offできるようにもしました。
ただ、延長ボタンを自動押しするだけなら、HomeKitと連携する必要はありません。今回は、できるだけ手間を省いた改造を目指します。
安全装置を回避する改造ですし、製品取説には分解・改造を行わないよう警告されています。DIYする際には自己責任でお願いします。
手持ちの部品で自動延長
この冬、石油ファンヒーターを買い足しました。去年の改造で使用した製品 (コロナ FH-G32YA2) と、見た目が同一のコロナ FH-G3224Yというモデルです。近所のホームセンターで税別13,500円と安く、臭いが殆どしなくて暖かいです。良い製品なのですが、唯一の欠点が、やはり3時間で起動する自動消火機能です。そこでこれも自動延長するよう改造します。ただし、一刻も早く改造したかったので、手持ちの部品だけで簡単に済ませたいと思いました。
ESP-01を使う
3時間経過する前に、延長ボタンを押す仕組みを作りたいので、タイマー回路などを作れば安価に作成できるかと思います。でもお手軽に作りたいので、ArduinoやRaspberry Pi Picoなどを使うのが良いと思いました。そこで今回は、たまたま手元に在庫のあったESP-01を使いました。以下の記事で紹介したものです。
今回の目的には、Wi-Fi機能は不要なのですが、安価です。1個で送料別360円、10個買えば送料込み1,932円です。ESP-01SとESP-01無印の2種類がありますが、プルアップ抵抗の有無が違うだけで大差はありません。ESP-01Sの方が若干使いやすいかもしれませんが、手元にはESP-01しか無かったのでそれを使いました。
電池を使う
電源は3.3Vです。5VのACアダプタならばジャンク品をたくさん持っているのですが、3.3Vは持ち合わせがありません。ハードオフでもっと探しておけばよかったです。5Vを3.3Vに変換すれば良いのですが、手持ちの部品がありません。そこで、たまたま手元にあった単3電池2本用電池ボックスを使いました。スイッチもついているので便利です。最初、うっかりニッケル水素充電電池を使ってしまったところ、動作が不安定でした。充電電池は1.2Vなので、直列にしても2.4Vにしかなりません。普通の1.5V乾電池を使うべきです。
急いで作ったので、配線もブレッドボードです。これらをファンヒーターの上に載せました。
延長ボタンに配線する
次に、延長ボタンのスイッチから配線を引き出します。ファンヒーターの分解はこちらをご覧ください。ファンヒータの全面パネルを外して、
操作パネルを外し、
延長ボタン部分に配線をハンダ付けします。そして、灯油タンク収納場所の隙間から、ファンヒーター上に配線を引き出し、そこに置いたブレッドボードに接続しました。
この配線をショートすれば、「延長」ボタンを押したことと同等の効果が得られます。
ESP-01のGPIOに接続する
「延長」ボタンから引き出した配線を、手持ちのフォトスイッチTLP222G-2に接続しました。TLP222G-2は、2回路が一つのパッケージに入っていますので、その一つだけを使いました。
(akizukidensi.comから引用)
ESP-01に回路を接続する場合には、注意が必要です。こちらで説明したように、ESP-01は、電源投入時に、GPIO0とGPIO2ピンが入力モードに設定され、それがどちらもHighの場合に、プログラムが動作する通常モードになります。GPIO0がLowの場合には、GPIO1とGPIO3がシリアルポートになり、プログラムを書き込めるモードになります。試したところ、GPIO2がLowの場合にも、通常の動作モードにはならないようです。なので、結論として、ESP-01に書き込んだプログラムを動作させるためには、電源投入時にGPIO0とGPIO2が共にHighになる必要があります。
これに気づかないで、当初、以下のようにフォトスイッチ配線をしてしまいました。
この場合、GPIO0がGNDにプルダウンされた配線になるため、入力モードに設定された場合、Lowになってしまいます。それでプログラム書き込みモードに入ってしまい、動作しませんでした。
一方で、以下のように配線すれば、GPIO0は3.3Vにプルアップされるので、プログラムが動作するモードに入ります。
通常のArduinoとかRaspberry Pi Picoなどならば、どちらでもOKですが、ESP-01では注意が必要です。未確認ですが、プルアップ抵抗搭載のESP-01Sの場合も、プルアップ抵抗値が12kΩと高いので、上記のプルダウン回路では動作しないと思われます。
プログラミング
ESP-01には、以下のプログラムを書きました。上記の回路のように、ESP-01のGPIO0にフォトスイッチが接続されています。GPIO0をLowにすると、フォトスイッチの内蔵LEDが点灯するので、「延長」ボタンの端子が短絡します。また、ESP-01のGPIO1番に当たるTxピンには青色LEDが搭載されています。これを5秒に一回点滅させて動作していることがわかるようにしました。
const int BlueLED=1;
int switchPin=0; //IO pin to the photo switch
void setup() {
pinMode(BlueLED, OUTPUT); // Initialize the LED pin as an output
pinMode(switchPin, OUTPUT);
digitalWrite(switchPin, HIGH);
}
void reset3HourTimer() {
digitalWrite(switchPin, LOW); // turn the photo switch on
delay(1000);
digitalWrite(switchPin, HIGH); // turn the photo switch off
}
void blinkBlueLED() {
digitalWrite(BlueLED, LOW); // turn the blue LED on
delay(100);
digitalWrite(BlueLED, HIGH); // turn the blue LED off
}
long int counter=0;//counter for extend-interval (used in loop())
void loop() {
delay(100);
if(++counter > (150 * 60 * 10)) { //on every 150 min
reset3HourTimer();
counter=0;
}
if((counter % 20) == 0) { // on every 5 sec, blink the blue LED for monitor
blinkBlueLED();
counter++;
}
}
このプログラムを動作させれば、150分ごとに「延長」ボタンを1秒間押してくれます。
まとめ
石油ファンヒーター動作を自動延長するように改造しました。ブレッドボード上で回路を組み、搭載したESP-01のプログラムが、150分ごとに「延長」ボタンを押します。今回は、手持ちの部品を使ってとりあえず動くものを簡易に作りました。
石油ファンヒーターの上位製品には、赤外線リモコンに対応した機種もあります。リモコンから「延長」ボタンを押せるようなので、スマートリモコンと組み合わせれば、改造・工作の手間不要で、自動延長できるかと思います。
次回は、電池が消耗しやすい問題点を解決すべく、ファンヒーター本体から3.3Vを作ります。
そして最終回では、運転ボタンも押せるように回路を追加して、HomeKitから操作できるようにします。
コメント