19
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Arduino 開発環境の M5StickCで HomeKitアクセサリーを作る!

Last updated at Posted at 2020-03-01

はじめに

Appleから初スマートスピーカーのHomePodが発売されていますが、GooleHome、Alexaに比べて、周辺機器がほとんど無いです。
iOS関連の勉強会などで、HomeKitアクセサリーの作り方を広める活動していますが、他のスマートスピーカーに比べて、難しい印象を受けます。
または、Apple公式のHomeKitADKがラズパイで動作しますが、各種センサーの繋ぎ込みの説明がありません。
難易度を下げるために、Arduino開発環境にすることで、Linux/Windows/macOSのマルチプラットホームでHomeKitアクセサリーを作ることができます。
センサーの繋ぎ込みも、Arduinoの豊富なライブラリーを使うことができます。

事前準備

  • Arduino 1.8.12
  • M5StickC Arduino Library 0.1.1

setup.png lib.png

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/直下にフォルダーごと、コピーしてください。
ssl.png

サンプルプログラム

サンプルプログラムの先頭のWiFi設定を変更してください。
iPhoneなどのiOS端末が同一ネットワーク上でないと、HomeKitアクセサリーが認識しません。

const char* ssid = "myssid";
const char* password = "mypassword";

Relay_Hap.ino: リレー制御プログラム
*Relay UNITが無くても、Lチカします。

ENV_HAP.ino: 温度計と湿度計プログラム
IMG_9890.jpg

*他のセンサーについても、随時、紹介できたらと思います。

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

19
15
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?