Blogエム・フィールドメンバーによる技術情報ブログメニューコンテンツへ2712月RaspberryPiを使って家のエアコンを制御してみたはじめにはじめまして。エンジニアリングソリューション事業部の平尾です。今回は、RaspberryPi(ラズベリーパイ)を使って家のエアコンを制御する方法をご紹介します。RaspberryPiとは下図に示すように、ムキ出しの基板に様々なインタフェースを搭載したシングルボードコンピュータになります。HDMIポートにディスプレイ、USBポートにマウスとキーボードを繋ぐことでデスクトップPCとして使用することもできます。RaspberryPiの魅力は何と言っても、GPIOコネクタが付いていることです。input/outputの略で、「汎用入出力」を意味します。GPIOピンにはあらかじめ定義された目的はなく、デフォルトでは使用されません。説明されてもさっぱり分からないと思いますので、噛み砕いて説明します。GPIOについて説明する前に、そもそもPCやスマホなどの電子機器がどうやって動いているかご存知でしょうか?電子機器はCPUがタッチパネルやディスプレイなど色々な電子部品を制御することで動いています。CPUはどうやって電子部品を制御しているのかというと、電気を流したり止めたりすることで制御しています。電気で電子部品を制御するために、CPUの裏には丸い金属端子が沢山ついており、この金属端子と電子部品を接続することでCPUは電子部品を制御できます。CPUの裏にある金属端子全てと電子部品を好き勝手に接続していいわけではありません。CPUへの電源供給用だったり、メモリ制御用だったりCPUを販売しているメーカーによって予め役割が決められ金属端子もあります。CPUを購入したユーザーが自由に使える金属端子のことをGPIOと言います。https://www.raspberrypi.org/ブレッドボードとは次に、RaspberryPiのGPIOと電子部品を接続するためのブレッドボードについて説明します。ブレッドボードは等間隔で穴が空いており、穴同士は内部で結線されています(下図参照)この穴に対して電子部品を挿していくことで、RaspberryPiのGPIOと電子部品を接続することができます。今回制御するエアコンは、赤外線リモコンで操作するタイプです。RaspberryPiでエアコンを制御するには、ラズベリーパイに赤外線リモコンの役割を持たせる必要があります。そのためには、次2つの電子部品が必要になります。赤外線LED→エアコンに向けて赤外線を送るために必要。赤外線受信モジュール→リモコンが送信している赤外線データの送信パターンを学習するために必要。この2つをブレッドボードを使ってRaspberryPiのGPIOと接続すると下図のようになります。RaspberryPiでエアコンを制御するための回路これで、RaspberryPiでエアコンを制御するためのハード構成(見た目)のカスタマイズは完了です。以降ではソフト部分について説明していきます。回路に合わせてGPIOの初期設定を行うGPIOの初期設定では、GPIOの電気の流れの向きを制御します。CPUからGPIO端子に電気を流す(output)GPIO端子からCPUに電気を流す(input)設定を行うのにコードを書く必要はありません。RaspberryPiのGPIOを制御するためのpigpioというPythonライブラリがすでに用意されているため、手順に従ってコマンドを実行するだけです。done以上でGPIOの設定は完了になりますが、「これで本当にGPIO設定できてるの🤔」と疑問を抱く人のために、コマンド実行で電気を流したり/止めたりできていることを確認する方法も記載しておきます。事前準備:ブレッドボードに指している赤外線LEDを、普通のLEDに差し替えます(※)※スマホのカメラを介してみれば、赤外線LEDでも光っていることも確認できます。レンズをかなり近づけた状態でON/OFFを繰り返してやっと光っていることが確認できるレベルです。/dev/pigpio赤外線を送受信する方法これまた、pigpioを使って赤外線の送受信を行うためのirr.pyというライブラリが既に存在するため、手順に従ってコマンドを実行するだけです。赤外線受信モジュールにエアコンのリモコンを向けた状態で、次のコマンドを実行し、ONボタンを押下することで、エアコンON時の赤外線データを学習できます。赤外線データは赤外線LEDのONとOFFの繰り返しであるため、ON/OFFの時間が学習データとして保存されます。次のコマンドを実行することで、エアコンをON状態ににすることができます。light:onさいごに今回、RaspberryPiでエアコンを制御するにあたりソースコードは一切書いていません。コマンド操作で、既存のPythonライブラリを実行しただけです。RaspberryPiで電子部品を制御するためのPythonライブラリは他にもたくさんあります。Python=AIのイメージが強い印象ですが、RaspberryPiと組み合わせることで自作のIoT機器をお手軽に開発することができます。今回の記事で、AIだけではないPythonの魅力に気付いて頂けたのであれば幸いです。気になったり、興味が湧いた記事があったら、なんでもコメントしてみてね。コーポレートサイトの問い合わせ欄からでも大丈夫だよ。reserved.1週間IT業界を覗いてみませんか?詳細はこちら。