はじめに
Appleから初スマートスピーカーのHomePodが発売されていますが、GooleHome、Alexaに比べて、周辺機器がほとんど無いです。
iOS関連の勉強会などで、HomeKitアクセサリーの作り方を広める活動していますが、他のスマートスピーカーに比べて、難しい印象を受けます。
または、Apple公式のHomeKitADKがラズパイで動作しますが、各種センサーの繋ぎ込みの説明がありません。
難易度を下げるために、Arduino開発環境にすることで、Linux/Windows/macOSのマルチプラットホームでHomeKitアクセサリーを作ることができます。
センサーの繋ぎ込みも、Arduinoの豊富なライブラリーを使うことができます。
Arduino 開発環境のM5StickCでHomeKitアクセサリーを作りました!
— Sam Akada@技術書典8 Day1あ08 (@sam_akada) February 29, 2020
温度計とリレー制御です。#M5Stack #M5StickC #Arduino pic.twitter.com/av6KycA3xV
事前準備
- Arduino 1.8.12
- M5StickC Arduino Library 0.1.1
HomeKit Accessory Protocol (HAP) for Arduino Library をインストール
【macOSの場合】
$ brew install unrar ->unrarコマンドをインストール済みの場合は不要
$ cd ~/Documents/Arduino/libraries/
$ git clone https://github.com/SamAkada/ESPHap.git
$ unrar x ESPHap/wolfssl/wolfSSL.rar
ディレクトリ構成
Arduino/libraries/wolfSSLのディレクトリができていることを確認してください。
wolfSSL.rarの別のツールで展開した場合は、Arduino/libraries/直下にフォルダーごと、コピーしてください。
サンプルプログラム
サンプルプログラムの先頭のWiFi設定を変更してください。
iPhoneなどのiOS端末が同一ネットワーク上でないと、HomeKitアクセサリーが認識しません。
const char* ssid = "myssid";
const char* password = "mypassword";
Relay_Hap.ino: リレー制御プログラム
*Relay UNITが無くても、Lチカします。
*他のセンサーについても、随時、紹介できたらと思います。
HomeKitアクセサリーのセットアップコード
111-11-111
トラブルシューティング
Homeアクセサリーを見えなくなった
iOSのホームアプリから、該当のHomeアクセサリーを削除して、esptool.pyツールにて、M5StickCのフラッシュメモリを全消去してから、再度、プログラムの書き込みとペアリングを行ってください。
$ esptool.py --port /dev/cu.usbserial-xxxxxxxx erase_flash
esptool.py v2.8
Serial port /dev/cu.usbserial-xxxxxxx
Connecting....
Detecting chip type... ESP32
Chip is ESP32-PICO-D4 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: xx:xx:xx:xx:xx:xx
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 7.9s
Hard resetting via RTS pin...
たなかまさゆき さんのESP32でesptool.pyの使い方が参考になります。
https://lang-ship.com/blog/work/esp32-esptool-py/
WiFi接続しない
Arduino IDEのシリアルモニタでログを確認してください。
LFのみ、115200bps
最後に
オンリーワンなHomeKitアクセサリーを作りましょう!
参考
アップルのHomePodとHomeKit技術本
ESPHap for M5StickC
macOS Catalina で M5StickCに書き込みできない
謝辞
Many thanks to maximkulkin & Yurik72
https://github.com/Yurik72
https://github.com/maximkulkin