編集履歴一覧に戻る
suki_eliのアイコン画像

suki_eli が 2021年02月20日22時05分39秒 に編集

初版

タイトルの変更

+

一定室温以下になったらエアコンをつけるシステム

タグの変更

+

Arduino

+

秋葉原2021

メイン画像の変更

メイン画像が設定されました

本文の変更

+

# きっかけ 冬、寒いですよね〜。私は霜焼けがひどいです。その割にはエアコンをあまり使わず、よく指先が冷たくなっています。無意識のうちに電気代を~~ケチる~~節約しているのかも知れません(面倒くさがり屋なだけかも知れないが)。意識改善でどうにかなる問題でもない気がしたので、半強制的にエアコンを点ける生命維持装置(?)を作ることにしました。 # 概要 - Arduinoを使用する - 温度センサで室温を計測 - 閾値を下回った場合に赤外線LEDから信号を送信 - **とにかく手軽に、短期間で構築**~~一冬越せればいいや~~ # 使用部品 - Arduino (互換機) - 高精度IC温度センサLM35DZ - 砲弾型赤外線LED - 赤外線リモコン受信モジュールPL-IRM2121 - 他必要に応じて抵抗器、ジャンパ線、ブレッドボード等 # 完成形 ![](https://camo.elchika.com/dbe9ae49047b50b6a048d82a9a231369aab7730f/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f31316238303866642d336136392d343965332d626364332d6432366437333531663231612f30643037646133382d363266382d343263632d613233372d383033353466303562633235/) ※抵抗器間違えてます…… ブレッドボードの左側に温度センサ、右側に赤外線LEDを配置してあります。温度はA0で読み、LEDはD3で駆動しました。 # 構成 ## 信号の送信 まず純正リモコンが送信しているデータを得ました。 ![キャプションを入力できます](https://camo.elchika.com/33144ab4e9f7d43443e1eee4550eba5748075cde/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f31316238303866642d336136392d343965332d626364332d6432366437333531663231612f66373634633965372d633932612d343032662d616163332d646363616233323033626336/) このように赤外線リモコン受信モジュール(38kHz)を結線します。解析プログラムにはGithubで公開されているIRライブラリを利用しました。 [shirriff/Arduino-IRremote](https://github.com/Arduino-IRremote/Arduino-IRremote) このライブラリのサンプルプログラムを使用します。デフォルトでは11番ピンに入力された信号を解析するようになっているので、その通りに結線します。 … …… .……結論から言うと無理でした!! 信号が長すぎてエラーを吐きました。 面倒くさいので丁度いいライブラリを見つけてきました。 ToniAさんの[arduino-heatpumpir](https://github.com/ToniA/arduino-heatpumpir)というものです。 エアコンのメーカーさえ分かれば信号を送信できるスグレモノでした。 (今までの流れなんだったんだ……) ## 温度センサの実装 A0に入力した電圧を換算して室温を求めます。 ```arduino:変数degreesに温度を代入する部分 void loop() { //略 float degrees = ( round (( analogRead ( A0 ) * ( 5.0 / 1023.0 ) )* 100)) //略 } ``` ## 完成 後は定期的にdegreesの値を更新させておいて、一定の値を下回った場合に、先ほどの信号を送信するプログラムにパスするだけです。 # まとめ 一応時々エアコンをつけてくれているので、ちゃんと仕事をしているようです。よかったよかった