HaLake Magazine

コワーキングスペースHaLakeの技術情報発信サイト!IoT,AR,VRなど最新技術情報をお届け!

加湿器を分解して遠隔操作してみる ~簡易IoT家電~

f:id:mischief_cat:20210228140008p:plain

以前にロボットアームを使って制御していたのですが、運用していくうえで電源が入っていなかったことが多々あったので制御している線を引き出す確実な方法で今回は制御していきたいと思います。

使用した加湿器限定の話もあり、参考にはならない点もあると思いますが備忘録を兼ねて説明していきたいと思います。

実際に行っていることはとても単純で使用した加湿器ではボタンで物理的に接点をつなぎ電気を流すことで、ON、OFFなどの制御をしているだけだったので理解すれば(自己責任にはなりますが)だれでもできると思います。 また同じようなつくりの製品にも応用できると思います。

目次

  1. 使ったもの
  2. 分解
  3. テスト
  4. 配線
  5. プログラム
  6. 動作確認
  7. おまけ
  8. まとめ

使ったもの

  1. +ドライバー(数種類:長い、短い、太い、細い)
  2. ESP8266
  3. ジャンパワイヤ
  4. 加湿器
  5. フォトカプラ(TLP561J)

  • 追加で用意した方が良いもの:絶縁手袋
    以下で示す画像では素手で基板などに触れていますが、分解や高電圧の感電に慣れているので注意してください。
    特に基盤を触る場合は感電の恐れがあるので、回避策として絶縁手袋の利用をお勧めします。

ESP8266とフォトカプラは備品の中にあったものを使っているので特にこだわって使っているわけではありません。

スイッチサイエンスさんの物を使用していますがHaLakeの備品を使ったのでいつ購入したものなのかわかりません。そのため現在販売しているものとは一部仕様が変わっている可能性があるので注意してください。

念のため同じようなもののリンクを貼っておきます。

www.switch-science.com

  • 注意:前述したように仕様が違う場合がありますので注意してください。ESP8266チップを使用した物であれば問題なく動作すると思いますが、リンクの物を使用する場合は自己判断でお願いします。

分解

  • 注意:何か分解する際は自己責任でお願いします。けがなどをする場合がありますので安全に配慮して行ってください。
    家電などのコンセントから給電するタイプのものを扱う際は特に感電や、断線による火事などが起こる可能性があることに注意してください。
    損害等が発生した際、こちらは一切の責任を負いかねます。

加湿器自体の分解はとても簡単でとくに行き詰まることはありませんでした。

ねじを外す順番も見える場所から外していくだけだったので誰でも出来ると思います。
ねじの種類は、外した場所だけで4種類ありました。外していない場所があるので確実ではありませんが、いろいろ考慮すると4種が妥当だと思います。

種類や数が多い時は百均などのネオジム磁石を用意しておいて散らばらないように付けておくと良いでしょう。

キャスター付きの水受けとタンク2個はもともと取り外しが可能になっているので外し、タンクで隠れていたねじを外します。 f:id:mischief_cat:20210228130636j:plain f:id:mischief_cat:20210228130927j:plain

そうすると周りの外装がかるくパカパカになり、タンクとは逆側のねじをいくつか外すと外装が簡単に外れます。(写真ばかりになってしまうのと撮りにくいところもあったのでいくらか割愛します。)写真に写っている所以外でもいくつかねじがありました。 f:id:mischief_cat:20210228131056j:plain

このように隠れた場所にあったり、写真ではわかり辛いですがドライバーの種類によっては長すぎてうまく外せなかったり、短すぎて届かなかったりするのでいくつかの種類を用意しておくと良いでしょう。 

  • 注意:全て外さずに無理に取り外ししようとすると壊れるので注意してください。

この時よく見たら同じくねじで止まっていてもいいような場所にねじ止めがされていませんでした。強度的には十分だったので問題ありませんが、これがデフォルトなのかわかりません。

f:id:mischief_cat:20210228131817p:plain

片側の外装は穴からコードが通り本体につながっているので完全に分解しないと別々にはできませんでした。
上部画像のねじを外すとコントロールパネルと本体大部分のモーター周辺で切り離せます。しかしここにも太いコードが通っているので少し厄介ですが仕方ありません。

コントロールパネルも見えるねじから外すことで簡単に基盤が見えてきます。

f:id:mischief_cat:20210221130609j:plain

メイン基板とは別に湿度の測定用に小さい基盤がむき出しになっていました。メイン基板はその後ろにある白い箱に入っています。

  • 注意:基盤を触る時は電源を切り、時間を少しおいてコンデンサなどの放電を確認してから触るようにしてください。基本は素手で触らないことをお勧めします。
    二度目ですが、基盤を触る際は絶縁手袋などを使用して感電対策をしたうえで行うことをお勧めします。

f:id:mischief_cat:20210228132141p:plain

小さい基盤には汎用グランドセンオペアンプが使われています。

www.rohm.co.jp

白い箱の中のメイン基板、表です。裏側全面は配線があり撮り辛かったので要所要所撮ったので次の項で説明します。 f:id:mischief_cat:20210221131731j:plain

テスト

メイン基板で一番上に位置しているタクトスイッチが電源のON、OFFを制御しているので、まずはこちらから試してみます。

f:id:mischief_cat:20210221133649j:plain

上がメイン基板裏側の写真になります。青枠で囲まれた部分4本が電源用タクトスイッチの足に当たります。
光を当てると赤枠で囲まれた2本がスイッチの押下で導通することによって制御されていると予想できます。
しかし導通だけで出来るのか100%確定していないのでワニ口クリップなどで他の部分が導通しないように気を付けて先ほどの2点を直接つなげてみて確認します。

  • 注意:本来であればオシロスコープやマルチメータなどを使って慎重に調査する必要があるので注意してください。

見にくいですがLEDがついたり消えたりしているのがわかります。これで単純に導通させれば制御できることがわかりました。 f:id:mischief_cat:20210221141016g:plain

配線

f:id:mischief_cat:20210228111338j:plain

赤枠のように適当な線をはんだ付けします。(汚いので恥ずかしいですが...)
色は適当です。

f:id:mischief_cat:20210228111000p:plain

f:id:mischief_cat:20210228132547p:plain

上部の赤と黄の線は右側と左側で入れ替えても問題ありません。結局は線同士が導通すればいいので向きは関係ありません。
しかしそれ以外は写真と同じ場所につないでください。表も出しておきます。

f:id:mischief_cat:20210228112904p:plain

フォトカプラのデータシートもあるのでこちらも参考にどうぞ

https://akizukidenshi.com/download/ds/toshiba/TLP561J.pdf

プログラム

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

#define ON_PIN 12

ESP8266WebServer server(80);


void setup(){
  pinMode(ON_PIN,OUTPUT);

  Serial.begin(74800);
  delay(500);

  WiFi.config(IPAddress(192,168,xxx,xxx),IPAddress(192,168,xxx,1),IPAddress(255,255,255,0));
  WiFi.begin("******", "######");
  while(WiFi.status() != WL_CONNECTED){
    delay(1000);
    Serial.print(".");
  } 

  if(WiFi.status() != WL_CONNECTED){
    Serial.println("No Connection");
    ESP.restart();
  }
  else Serial.println(WiFi.localIP());
  
  server.on("/", [](){
    digitalWrite(ON_PIN,HIGH);
    delay(500);
    digitalWrite(ON_PIN,LOW);
    server.send(200, "text/html", "Change Humidifier Status!");
  });

  server.begin();
}

void loop(){
  server.handleClient();
 }

コピペしてそのまま使われる方は書き換えが必要です。

WiFi.begin("******", "######");

******を消して読者の方が使われているWi-FiSSID(名前)に、
######を消して読者の方が使われているWi-Fiのパスワードに書き換えてください。

これをesp8266に書き込んだらもう完成です。

動作確認をしていきましょう。

動作確認

後は同じ一部書き換えたプログラムを使っていれば、(esp8266と同じネットワーク内の)PCやスマートフォンなどを使って下のURLアクセスすることによってONとOFFを切り替えることが出来ます。

Change Humidifier Status!

などと帰ってくればesp8266は正常に動作していることがわかります。

接続できなかった場合はアクセスする端末とesp8266が同じネットワーク内にいないか、Wi-Fiに接続できていない可能性があります。

その時は落ち着いてシリアルモニタなどを使ってWI-Fiに接続できているかなど確認してみてください。

接続されていなければNo Conectionと表示されます。

接続されている場合はIPアドレスが表示されます。

配線にも問題ないとしっかり動作してくれます。

f:id:mischief_cat:20210228122515g:plain

おまけ

電源を入れたいときに先ほどのURLに接続すれば簡単にON・OFF切り替えられますがHaLakeで運用するうえで開店と閉店時に自動で電源を入れ替えてほしいのでもうひと手間加えます。

常時稼働しているRaspberry piがあるのでそこから決まった時間に先のURLにアクセスしてもらって制御してもらおうと思います。

Raspberry piコマンドプロンプトsshなどでアクセスしたら以下の操作をしていきます。

mkdir humidifier
cd humidifier
nano cron.py

三つ目のコマンドでテキストエディタが開かれるので下のプログラムをコピペしてCTR+Xの後Enterで保存します。

import requests

URL = 'http://192.168.xxx.xxx'

res = requests.get(URL)
print(res)

その後コマンドプロンプト

crontab -e

したら、以下をコピペして最後に書き加えてました。

30 8 * * 0,1,2,4,5,6 sudo python3 ~/humidifier/cron.py

00 18 * * 0,1,2,4,5,6 sudo python3 ~/humidifier/cron.py

書き加えた内容の説明は今回省きますが、HaLakeで運用するために特化した設定なので意味などを調べて書き加える内容を書き換えて使用してください。

これでHaLakeの運営時間(定休日:水曜日 9:00~18:00)で起動、停止を自動で行ってくれます。

まとめ

  • 分解して構造を理解するのはめちゃくちゃ楽しい
  • 身の回りの家電を簡易IoT化するだけでも評判はいい
  • このレベルならだれでもできる
  • 消費電力やパーツ、機能などまだ深堀できる

どのプログラムも割と簡単なので初心者でも安心して理解できる内容になっています。

日曜大工ならぬ日曜IoTみたいな、世の中のお父さんたちに広まってほしいですね。

調べたら同じようなことを言っている人がいたのでちょっと悔しい。

今回の記事でHaLake使ったものはHaLakeに備え付けの電子部品になっています。ご興味ある方はHaLakeに遊びにいらしてください。