概要
Google HomeとRaspberry Piを使って、家電を声で操作できるようにしました。
Raspberry Pi側では回路を組んで、「電気をつける・消す」「テレビをつける・消す」と言った赤外線の命令を学習させています。
Raspberry Pi側ではMQTTプロトコルを扱うサーバーをPythonで自作し、常駐させています。
Google HomeとIFTTTを連携させ、BeebotteというMQTT Brokerを用いてメッセージを送信し、それをRaspberry Piがキャッチし、赤外線を飛ばし家電を操作するといった仕様になっております。
Androidで専用の遠隔リモコンアプリも自作し、屋外でも家電の操作ができるようにしました。
これにより、「家に到着する10分前にエアコンの電源をつける」といったことも可能になります。
実行動画
MQTTプロトコルについて
https://devopedia.org/mqtt
MQTT は、Publish/Subscribe型のメッセージ処理を実現するためのシンプルで軽量なプロトコルです。
IoTデバイスは基本的にスペックがあまり高くないため、そのようなリソースの少ないマシンでも動作が可能なようにプロトコルは軽量である必要があります。
今回は利用していませんが、MQTTには多数のIoTデバイスとの通信をサポートする機能も組み込まれています。
Pythonでは「paho-mqtt」というライブラリを使用して、MQTTプロトコルを扱うプログラムを作成することができます。