事業内容
- DX推進/IoT開発事業
- AI/ROBOTICS開発事業
寒暖差が厳しい季節、トラックでの物品の運送時や、ハウス栽培の温度管理に苦労した経験はありませんか。
また、ドアの開閉が多い倉庫施設や、人の出入りが激しい場所での温度管理は、一定の温度にならず調整が難しいと思います。
このように温度にまつわる悩みは様々あると思いますが、ある一定の温度になったらデバイスを起動し、自動でカーテンや窓の開閉をする、また扇風機やエアコンを制御するなど、自動で温度調整をしてくれたらいいなと思ったことはありませんか。
今回は様々あるデバイスの一例として、エアコンを制御できる装置を作っていきます。この技術を応用すれば、どんな場所からでも自動でデバイスを制御することができますよ。
寒暖差が厳しい場所や、農業用のビニールハウス栽培、また生鮮食品を扱う倉庫などではIoT技術を使って温度管理をすることが当たり前になりつつあります。IoT技術を活用すると、特定の温度でデバイスを制御することが可能です。
今回はある一定の温度になると自動でエアコンの ON / OFF ができる装置を作っていきます。どのような仕組みで成り立っているのか、手順に沿って解説しますので、IoTを導入する際の参考にしてみてください。
また、このような技術はさまざまな製品作りだけに限らず、現場の改善、装置の導入に役立てることもできます。
例えば、特定の温度で植物に水をあげることもできますし、特定の温度でカーテンを閉めるというようなことも可能です。少しの手間を自動化できれば、より現場の作業に集中して効率的に時間を使うことができますね。
今回作る装置は以下のような構成です。
温度センサーが温度を感知し、一定の温度になると赤外線を通してエアコンへ信号を送ります。
・入力デバイス~マイコンボードの処理
・マイコンボード~赤外線センサーの処理
無線でデバイスを制御する方法の1つに、赤外線通信を使う方法があります。
エアコンの赤外線通信には製品毎に決まった通信フォーマットがあり、そのフォーマットに則った形式でデータのやり取りを行うことで、エアコンの様々な操作が可能になっています。
データのやり取りには、主に3つの処理が必要です。
ここでいうデータとはエアコンとRaspberry Pi 間でやり取りする赤外線信号のことを言います。
ガラケーを使用したことのある方はよく使用していたであろう、データの送受信するために使用していた、赤外線通信をイメージしていただけるとわかりやすいと思います。
エアコンとリモコン間では、以下のようなことが行われています。
このリモコンの役割をRaspberry Pi で置き換え、かつ特定の温度でエアコンを制御させるという処理をしてあげることで、特定の温度でデバイスを制御させることが可能になります。
赤外線で通信されるデータの中身
赤外線で通信されるデータの中身は数字の羅列になっていて、この羅列は通信フォーマットに従って記載されています。日本では主に NEC / 家製協 / SONY の3種類があり、国内のほとんどのエアコンはこのフォーマットに従っています。
詳細はこちらをご参照ください。
下記以降は以下の環境をお持ちの方向けに記事を作成しています。
・Raspberry Pi のセットアップが済んでいる方
・Python でスクリプトを書いたことがある方
・PC環境:macOS
特定の温度でデバイスを動かすための装置を作成していきますが、エアコンを一定の温度で制御させるというレシピは、ネット上にたくさんの情報が溢れています。
そこで、今回は「赤外線でデバイスにデータを送る方法」をご紹介していきます。
装置を作るにあたり、下記の物が必要になりました。
これらを組み合わせると画像のような状態になります。
こちらの記事を参考に、Raspberry Pi に赤外線コードの登録をしていきます。記事内では赤外線の送受信、データ解析を行うためのプログラムが用意されているので、アップされているプログラムを使って、特定の温度で処理を変えていくという装置を作っていきます。
今回作成したプログラムをGithubに載せていますので、ご自身のPC上の任意の場所にクローンしてご利用ください。以降の説明ではこちらのプログラムを使って手順を説明していきます。
Github:astina-co/air_conditioner_control_at_temperature
クローンしたディレクトリに移動し、ターミナルで下記のコマンドを入力しEnterで実行します。
./cgirtool.py rec 登録するデバイスの名前
recの後には任意の名前をつけます。recでは赤外線を受信し登録する動作を指示しています。
ターミナルに下記のコードが表示されるので、用意したリモコンをRaspberry Pi の赤外線受信機に向けながら 「運転開始」のボタンを押します。
赤外線コード"登録するデバイスの名前"を受信中... 受信機に向けて赤外線を送信して下さい.
実行すると、受信コードが登録されます。この画像に表示されている赤外線コードがエアコンをONの状態にさせるコードです。
続けて、OFFの赤外線コードを読み取ります。
先ほど同様、Raspberry Pi の受信機に向かってOFFの状態を送信してください。
現在は2つの赤外線コードを登録している状態です。
エアコンを起動(ON):air_ON
エアコンを停止(OFF):air_OFF
今度はエアコンに向かって登録した赤外線コードを送信してみます。
ターミナルで 登録したデバイスの名前を入力し、エアコンが起動したら成功です。
これをONとOFFで登録した名前でそれぞれ試してみてください。
./cgirtool.py send 登録したデバイスの名前
一定の温度でエアコンを制御させるためのコードを追加していきましょう。
温度の設定方法についてはこちらの記事を参考にしています。
Githubの aircond.py の34行目~52行目を参照して下さい。今回の温度は27℃を基準に設定しています。
・28℃以上でエアコンを起動
・27℃以下でエアコンを終了
このファイルを実行するには下記のコマンドを入力します。
python3 aircond.py
コマンドを実行すると現在の温度・湿度の情報が画面に表示されます。
これで準備が整いました。
作成した装置で特定の温度を超えるとエアコンが動くか確認してみました。
現在の温度は25℃です。ここからドライヤーを使って人工的に28℃以上の状態を作りました。
28℃になったら自動的に赤外線コードを送信できれば成功です。
※登録されているデバイスの名前が air_enable となっていますが、air_ON と同じものです。
自動で送信できました!
次に扇風機を使って27℃以下の状態を作ります。
※こちらも登録されているデバイスの名前が air_disable となっていますが、air_OFF と同じものです。
こちらもOFFにできました!実験は成功しました。
しかし、エアコンの種類によってはRaspberry Pi と距離が離れているとうまく実行してくれない場合があります。
その場合、赤外線発光器から出力される赤外線は指向性が弱い可能性があるためエアコンの近く(1.5m以内程)で操作するとうまくいきました。
これはセンサーの個体差により操作位置に違いが出たようです。確実に電源を入れたい場合は、より精度の高いセンサーを購入したほうがよさそうです。
実際に制作してみて
赤外線は不可視光線のため、本当に発光しているか確認に手間を要しました。事前に赤外線LEDを使用して導通チェック、出力パルスはオシロスコープかロジックアナライザを使用するとわかりやすいかと思います。
赤外線リモコンには様々なフォーマットがあり、オシロスコープで赤外線のパルスを確認するまでは、このようなプロトコルが存在することを知らなかったので、送信されるパルスの多さに驚きました。通信プロトコルに無駄はなく、非常に興味深かったです。
直近では、温度センサの活用で生産性向上を図る企業も増えてきています。
以下に、温度センサの活用方法を解説しているのでご参照ください。
今回は、IoTの技術を活用すれば、温度管理に関するシステム化ができることを解説しました。特定の温度を条件に、空調などのデバイスを稼働させることが可能です。
このような技術を応用すれば、工場や倉庫の室温管理をシステム化できます。そのほか、農業用のビニールハウス栽培などにも活用できるでしょう。
温度とIoT技術に関することなら、ぜひお気軽にASTINAへご相談ください。IoTデバイスの製作からネットワークの構築までご提案させていただきます。
開発実績としては、屋外環境に対応した、気温・湿度・照度を図るロガーや、農業用デバイスがございます。また、ファクトリー・オートメーションに関する経験もありますので、倉庫や工場の改善についてもお気軽にご相談ください。
室温管理だけではなく、産業用装置に関する熱の監視やそれに基づいたアラート出しなど、予知保全に関する対応も可能でございます。