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

Arduinoでエアコンを制御

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

Arduinoでエアコンを制御

Arduinoでエアコンを制御

2017/12/10

 Arduinoを使ってエアコンを完全制御する仕組みを作るページ。

 ArduinoやRaspberry Piでエアコンというとリモコン操作や遠隔制御が話題にのぼることが多いと思うが、ここでは、ホームオートメーション的な?制御をすることを想定。

 ただ、今は、やる気が起きないので、とりあえず、構想だけ巡らせておくことにする。

2018/08/15

 Arduinoより、ESP8266の方が適していると思い、構想を練り直し、検証してみた結果、冷房・暖房・除湿などの自動ON、併せて無線LAN経由のブラウザからの遠隔ON/OFF操作含め、機能的には、実現可能だが、運用面から構想に留めておくことにした

Arduinoによるエアコン操作の構想

 曖昧な点や確認済み事項などは後述するが、具体的な回路を思い描いているわけではないため、夢物語になる部分もあるかもしれないし、配線、配置も薄らぼんやりしているため、全く思い通りに具現化できるとは言い切れないがイメージはこうだ。

 Arduinoボード+温度センサ+RTCモジュールを使って12月〜2月など冬期は、仮に5分以上、15度以下である場合には、暖房を、7月〜9月など夏季は、仮に5分以上、30度以上である場合には、冷房を入れるべく、スイッチ付き電源タップのスイッチをサーボモータで物理的にONさせ、少し待って予め学習させておいた送信コードを赤外線送信することで暖房or冷房をONさせ、OFFする際は人的にリモコン操作を行なうものとする。

 当然、リモコンを使えば、常時、人的にON/OFFできるものとする。

 できることなら消し忘れ防止も含め、仮に24時間連続運転した場合には、OFFにし、何らかの方法でリセットをかけるまでは自動ではONにならないようにする。

 この時、エアコン用コンセントにスイッチ付き1個口電源タップを、そこに、やはり、任意個口のスイッチ付き電源延長コードをつなぎ、前者は手動でON/OFFさせることで想定季節外や家を空ける時など当該時期でも不要な時にOFFさせ、待機電力もカット、後者のスイッチをサーボモータでON/OFFさせることを想定。

 遠隔制御も考えた場合、エアコンシーズンであっても、万一、手動ON/OFFするタップでOFFにしてあると操作不能とはなるが、ここでは外からの遠隔制御は考慮しないものとする。

 より簡単にするため、床か、それに近い位置に設置を考えているスイッチ付き電源タップ及びサーボモータと確実を期すため、エアコンの赤外線受信部付近に設置を考えている赤外線送信器間は、有線ではなく、無線を想定。

 尚、必要性を思い描くことができないことからPCからの制御は考えていない。

EasyWordMall Arduino UNO R3互換ボード(USBケーブル付属)

EasyWordMall Arduino Pro Mini互換ボード Atmega328 5V 16MHz

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

KKHMF Arduino Nano Ver 3.0互換ボード ATmega328P CH340G 5V 16MHz

OSOYOO(オソヨー) SG90 9g マイクロサーボ (10個セット)

EasyWordMall DS1302 RTC リアルタイムクロックモジュール

EasyWordMall DS1307 RTC 7クロックモジュール I2C

Rasbeeオリジナル 高精度RTC/リアルタイムクロックモジュール DS3231 DC 3.3V-5.5V 1個

Rasbee KY-005 赤外線 IR 送信機 センサー 8KHz Arduino 1個

Rasbee KY-022 IR赤外線センサーの受光モジュール 3ピン KEYES 1個

Rasbee DHT11 温度・湿度センサーモジュール ジャンパワイヤ付属 1個

Yazawa 省エネタップ1個口

サンワサプライ 節電エコタップ 2P 4個口 3m TAP-S15-3

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

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

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

Rasbee SY-170 ミニブレッドボード カラフルブレッドボード 5個

HiLetgo 金属皮膜抵抗 1/4W 41種類x20=820個

HiLetgo ジャンパーワイヤー(オス-オス) 20cmx40本 5セット

Rasbee ジャンパーワイヤー(オス-オス) 各種長さx65本

HiLetgo 37センサーアソートキット

 納期はかかるが、Arduino関連は、Amazonマーケットプレイス中華系激安店でチョイスすれば、Arduinoボードが400〜500円、サーボモータはAmazon発送品でも10個セットとかなら単価250円前後、リモコン送受信には、赤外線LED、フォトトランジスタでもよいし、それぞれモジュールでもよいし、センサーキット付属のものでもよいが、これらを合わせて300〜400円、ジャンパワイヤ、抵抗、ブレッドボードは合わせて200円で約1400円、更に1個口スイッチ付き電源タップは100均で買うとすれば108円、複数個口電源延長コードを1000円前後とすると、ザッと2500円前後。

 あとは、無線とケースだが、無線も技適はさておき、安ければ送受信セットで200円未満、技適済みなら最低でも2000円、ケースは100均にあれば、108円といったところか。

EasyWordMall HC-05ワイヤレス RS232 ブルートゥースモジュール シリアル4ピンポートArduino用

EasyWordMall ワイヤレスブルートゥースシリアルスレーブモジュールHC-06 Arduino用

Rasbee オリジナル 超再生受信機モジュール 無線受送信機モジュール 超再生トランシーバーモジュール 高周波受信機 433MHZ 無線トランシーバーモジュール 1個 [並行輸入品]

NRF24L01 24L01 NRF24L01無線モジュール 2.4G 無線トランシーバー ISM [並行輸入品]

HiLetgo イーサネットシールドW5100 for Arduino UNO/MEGA2560

HiLetgo ESP8266 WiFiワイアレスモジュール UART

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ピッチ変換済みモジュール《フル版》

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個 [並行輸入品]

 しかし、そこまでかけるのであれば、若干、構想は変わるかもしれないが、アプリのダウンロードでAndroid/iOSにも対応、2000〜3000円前後で家電のON/OFFを無線制御できるリレー付きワイヤレスリモコンスイッチを使う方法もあるが、これも技適対象なのだろうか?

KKHMF Sonoff RF-WiFi 433Mhzワイヤレスリモコンスマートスイッチ + 433Mhz RFレシーバ

確認済みの事項

Arduino Nanoによる赤外線受信機

鋼殻 TL1838 万能受信頭 赤外吸収頭 赤外線レシーバー(10個)

曖昧な事柄

 年月や時間を保持するにはEEPROM、SDカード何れかを使う必要がありそう。

 一定の時間、連続運転した場合にOFF、その後、リセットするまで自動でONにならないように...というのはどうやる?OFFはできるとしてリセットはArduinoボードをリセット?いけるとしても、それって微妙...もっとスマートな方法はないものか...。

 更にサーボモータで電源タップのスイッチを入れる(ON)にしてもOFFにするにはどうすれば...?人的にエアコンを切った場合も同様、トリガを何にすれば...停止の赤外線信号が入ってきたらっていうのは微妙だし...、リレーだとどうなんだっけ?ONしたまま、次の信号もONっていけるんだっけ?あ、できたとしても時間保持の話と矛盾するか...。

 Arduinoボードでsleep機能を取り入れたいが、割り込みトリガは...?温度センサのONでよさ気かと思いきや、手動用電源タップOFFの時は...手動用は、『集中』スイッチ付き2個口電源タップにすれば、手動OFFした時、Arduinoの回路も電源OFFになるからいいか...ということは、自動の場合、温度センサのONでいいってことか...しかし、人的にリモコン操作する場合は...Arduinoの(sleep)状態とは関係ないか...。

 いや、一定時間の連続運転時OFFとする場合も割り込みがいるか...Uno、Pro Mini、Nanoあたりを想定しているが、確か、これらだと割り込みに使えるのはD2、D3、温度とこれで2つとも埋まるが、他にもあったらArduinoボードを変更する必要があるのか?

 そもそもメモリ容量をオーバーする可能性もあるのか?これらArduinoボードでは厳しいのか?他ボードを使えばよいのか?これと割り込みの件を考え合わせると他ボードでもダメなのか?その場合には、ラズパイでlircを使う方法などにしないとダメか?

 ...etc.

 意外と課題は多いのか...。

既知の状況や不確定要素

 風向きや風量も変更可能なので焦電タイプやマイクロ波タイプの人感センサー(何れも200円以内で入手可)を併用する手もあるも、同じボタンの押下回数で3段階+自動が切り替わるタイプで、個々の信号が固定で直接指定できればよいが、そうでなければ、実装できない。

KKHMF HC-SR501 人体赤外線感応モジュール

KKHMF マイクロ波レーダーセンサーRCWL-0516

SharpエアコンのリモコンA538JBその1

 使用中のシャープ製エアコンは、そこそこ古く、リモコンの[静音]と[フルパワー]が効かなくなったなとは思っていたものの、それ以外は、[冷房]、[暖房]、[除湿]、[自動]、[空清](空気清浄・プラズマクラスタ)のそれぞれのON/OFFと温度変更程度しか使わないため気づかなかったが、先日、赤外線受信回路を作って読み込ませてみたところ、[衣類乾燥]や[ニオイカット]など他にも押しても反応しないボタンがいくつかあることが判明。

 リモコンを分解して修理する手もあるが、ガッツリくっついているケースを外すところからして躊躇している。

 今更新品もないだろうし、中古品を買う気もない、エアコン用代替リモコンだと不足するボタンがあり、学習リモコンでは、使いづらいこともArduinoでタッチパネル集約リモコンを作ってみようと思うに至った理由の1つ。

SharpエアコンのリモコンA538JBその2

 当然、機能するボタンに限定され、ボタン配置が億劫でモチベーションもあがらず、長いこと放置しているが、そのArduinoかラズパイを使ったタッチパネルリモコンの利用も考えてはいる。

 これができてからなら、ダメ元で修理すべくエアコンのリモコン分解してみてもよいが...。

 消費電力の溝は埋めることはできないため、それはさておくとして、これが実現すれば、古いエアコンにある種、最先端の新機能を取り込むことができることになるし、赤外線信号を変更すれば、エアコンを買い替えても使うことができる。

ウェブ造ホーム前へ次へ