DCF77標準電波発信MatterデバイスをM5StickCで作る

# DCF77標準電波トランスミッタ
電波時計モジュール買って古い時計のモジュールと組み替えた。
までは良かったけど、よく見たらDCF77じゃないですかこれ。日本のJJY電波用じゃないのね。（77.5 kHzか～。確かにドイツ局ドイツ局書いてあった気がするけどスルーしてた）

というわけで、EUらへん向けのDCF77標準電波を発信するMatterデバイスを作ります。
M5StickCにTasmota32 LVGLをWeb Installerでインストールし、追加アプリ"DCF77Transmitter.tapp"をTasmotaにアップロードしてMatterの設定して完成。今回、アンテナは内蔵LEDの回路で代用なのでハード追加は無しです。

![IMG_7944.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/130eacfc-01c3-65fb-b917-eaf9660ca68b.jpeg)

Ｍatter対応にしたのでiPhoneのHomeKitやAmazon Alexaから送信のOn/Offを操作できます。電波時計の受信スケジュールは電波状態の良い夜中になってるそうなので、それに合わせて送信もスケジュールするべきでしょう（HomeKitやAlexaのお仕事として）。

## ファームウェア書込み
M5StickCには、"Tasmota32 LVGL (english)"を選択して書き込みます
【Tasmota WebInstaller】  https://tasmota.github.io/install/

![install.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/51cda957-178e-a834-866e-25c9b077e202.png)

そのままWiFi接続をして(2.4GHzのみ)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/e12d3ae1-2549-8e78-1dc0-0debf0ef05e2.png)
繋がったら、VISIT DEVICE
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/62d74d8c-fdf7-b812-91e9-4fc5119e80bc.png)
M5StickC内のWebサーバに入れます。ここで設定していきます
![main.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/4fb3d592-41fc-0533-bf98-a0e6fcaf6c10.png)
configuration -> Auto-configuration
![configmenu01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/d5a04f8a-83ce-9132-f282-888350b998d8.png)
Auto-configuration で、 M5StickCを選択
![autoconfig.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/33ceb865-e181-9bb1-3555-4957494f19d0.png)
自動リブートしたら、configuration->configure template
元々はLEDになっているGPIO10をPWMに変更します。識別は1 
(今回は無理やりLEDに信号を出力します)
![gpio10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/57932b13-13f2-eb5e-946b-d3e8fc089a63.png)
Tool->Consoleで黒い画面を立ち上げて、日本のlocaltimeに設定します。
![tools.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/c39e7e56-54ba-a486-685e-9482c5f10d71.png)
「 timezone  +9:00 」と入力すればOK。ログのタイムスタンプで正しく設定されたか確認。
![timezone.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/e00e9b7d-7e80-e31f-3169-abd6b30d0818.png)

GitHubからDCF77Transmitter.tappをダウンロード

https://github.com/fknaopen/DCF77Transmitter/

Tool->Manage File systemで、tasmotaの追加アプリ( DCF77Transmitter.tapp )をアップロードします。
![app_upload.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/f6118945-c8b3-28c0-690c-cd8800766769.png)

ここまでで、一旦リブートしましょう。
![IMG_7945.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/0c9ce993-83b7-3ddc-4f5b-f35c2b931f29.jpeg)
起動後は、Off状態になっているため、M5StickCのボタンを押すとOnになります。
Onになったら液晶画面に現在時刻が表示され、少し待ってコンソールログに以下のような"DCF:"ログが出れば成功です
```
21:33:17.411 TAP: Loaded Tasmota App 'DCF77Transmitter.tapp'
        :
21:33:33.004 DCF: Out of sync
21:34:00.016 DCF: Tue 26.11.24 21:35 CET: 0-00000000000000-000101-10101100-1000010-011001-010-10001-001001000

```
続いて、configuration->configure matter
Matter enableにチェックを入れてから「Save」します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/ea8645ed-c757-255c-b00c-4a8003fc44e7.png)
自動リブートしたら、configuration->configure matter
Add to Configurationで(Type = Relay Parameter = 1)のエンドポイント追加
![IMG_7951.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/68465af1-708f-38d9-66d2-c42b362cf968.jpeg)

Matterデバイスとして参加できるようにするために Commissioning openにチェックを入れて「Save」します
![IMG_7952.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/3b44cf6d-c62a-6553-31cc-72324cba799c.jpeg)

## HomeKitへの参加
Commissioning openの状態で Manual pairing codeが表示されます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/4410c35a-1b78-e2db-08ff-dbb91958a4d1.png)

以降、iPhoneのHomeアプリでデバイス追加していきます
![IMG_7954.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/277344f9-858d-2adb-3169-03120dd4da4c.jpeg)
アクセサリを追加->その他のオプション->番号入力します
![IMG_7955 - コピー.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/bba70788-8bb4-799e-d3c4-b0c5e30da659.jpeg)

「認定されていない」旨の警告が出ますが、このまま追加してどんどん進めます。
ブリッジ１個と、コンセント１個が認識されればOKです。
コンセントにはそれらしい名前「DCF Transmitter」を付けます。
![IMG_7959 - コピー.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/5d6f4003-4648-25e2-cd90-771b9623dc20.jpeg)
「DCF Transmitter」がMatterデバイスとしてHomeKitに登録され、iPhoneからOn/Offできるようになります。
![IMG_7968 - コピー.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/dc24721a-77df-531d-b919-421dc3c3939c.jpeg)

## 動作確認
起動時はOff状態になっていて、iPhone画面とM5StickCのボタンによる「On」／「Off」が連動し、On状態の時には電波を送信します（1秒間隔でLEDの明暗が出ます）
![IMG_7971.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/339f938a-c052-a931-a01c-9f70c1ed0d25.jpeg)

## 電波時計の時刻を合わせる
外部にアンテナを付けない状態では電波の届く距離はごく僅かなので、電波時計モジュールの上に乗せて送信開始
電波時計のRECボタンを長押しして強制受信モードにすると0時の位置まで針が移動
![IMG_7941.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/b1f55a5b-3d73-aebe-2df7-611c01ea2290.jpeg)
5分程度して受信した時刻情報が揃って、時計の針が動き始めて正しい位置で停止。
問題なく良いですね。
![IMG_7946.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/591713e0-4035-0103-994e-69b138bae70a.jpeg)

## 補足
実は、Tasmota単体でもOn/Offスケジュール設定する機能あります
configuration->configure timer
![IMG_7949 - コピー.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/d771a098-eaf9-7ae1-11f4-0c6687a3c28c.jpeg)

強力なscriptで書いたアプリがインストールできるTasmotaおすすめ
【Tasmota】 = https://tasmota.github.io/docs/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6824/f5716212-3c96-c3d7-d841-46d04114f0b9.png)