DCF77標準電波トランスミッタ
電波時計のためのDCF77標準電波を発信するMatterデバイスを作ります。
以下の記事でM5StickCを使ってポータブルなDCF77標準電波トランスミッタを作りました。今回は据え置きでの運用に耐えうるよう、アンテナを付けて4m程度の距離で通信できるものにしました。
ソフトウェア
M5Stamp picoにTasmotaをWeb Installerでインストールし、追加アプリ"DCF77Transmitter.tapp"をTasmotaにアップロードしてMatterの設定して完成。
ハードウェア
アンテナは下記サイトを参考にしてPWMの出力をアンプを介してバーアンテナで送信しています。
パーツリスト
・抵抗 ・・・ 82Ω x1, 330Ω x1
・コンデンサ ・・・ 6800pF x1
・AMバーアンテナ ・・・ BT360CF x1
・MOSFET ・・・ 2N7000 x1
・コントローラ ・・・ M5Stamp pico x1
ファームウェア書込み
M5Stamp picoには、"Tasmota (english)"を選択して書き込みます
【Tasmota WebInstaller】 https://tasmota.github.io/install/
そのままWiFi接続をして(2.4GHzのみ)
繋がったら、VISIT DEVICE
M5Stamp内のWebサーバに入れます。ここで設定していきます
configuration -> Configure Other
TemplateをM5Stamp pico用に書き換えます
【Configuration】https://templates.blakadder.com/m5stack_m5stamp_pico.html からコピペして
Activateにチェックを入れてから「Save」します
自動リブートしたら、configuration->configure module
Module typeをM5Stamp Picoに切り替えて、
GPIO25をPWMに変更します。識別は1
Tool->Consoleで黒い画面を立ち上げて、日本のlocaltimeに設定します。
「 timezone +9:00 」と入力すればOK。ログのタイムスタンプで正しく設定されたか確認。
GitHubからDCF77Transmitter.tappをダウンロード
Tool->Manage File systemで、tasmotaの追加アプリ( DCF77Transmitter.tapp )をアップロードします。
一旦、リブートします
起動後は、Off状態になっているため、M5Stampのボタンを押すとOnになってLEDが点灯します。少し待ってコンソールログに以下のような"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」します
自動リブートしたら、configuration->configure matter
Add to Configurationで(Type = Relay, Parameter = 1)のエンドポイント追加
Matterデバイスとして参加できるようにするために Commissioning openにチェックを入れて「Save」します
コンソールログには以下のような"MTR:"ログが出ます
00:00:06.011 MTR: +Add_Event (CRIT 15001) [00]0028/00 (StartUp) - 14.3.0.0
00:00:06.016 MTR: +Add_Event (CRIT 15002) [00]0033/03 (BootReason) - 1U
00:00:06.018 MTR: Configuring endpoints
00:00:06.019 MTR: endpoint = 0 type:root
00:00:06.031 MTR: endpoint = 1 type:aggregator
00:00:06.035 MTR: endpoint = 2 type:light3
00:00:06.039 MTR: endpoint = 3 type:relay relay:1
00:00:06.041 RSL: RESULT = {"Matter":{"Initialized":1}}
00:00:06.043 MTR: Starting UDP server on port: 5540
HomeKitへの参加
Commissioning openの状態で Manual pairing codeが表示されます
以降、iPhoneのHomeアプリでデバイス追加していきます
アクセサリを追加->その他のオプション->番号入力します
「認定されていない」旨の警告が出ますが、このまま追加してどんどん進めます。
ブリッジ1個と、照明1個、コンセント1個が認識されればOKです。
コンセントにはそれらしい名前「DCF Transmitter」を付けます。
「DCF Transmitter」がMatterデバイスとしてHomeKitに登録され、iPhoneからOn/Offできるようになります。
動作確認、電波時計の時刻を合わせる
起動時はOff状態になっていて、iPhone画面とM5Stampのボタンによる「On」/「Off」が連動し、On状態の時には電波を送信します(LEDも点灯)
動作確認は、まずM5Stampの時刻を変更(Consoleのコマンド「 timezone +9:05 」で5分進めるなど)しておいてOnにして送信開始。電波時計はRECボタンを長押しして強制受信モードにすると0時の位置まで針が移動 -> 5~10分程度して受信した時刻情報が揃って、時計の針が動き始めてM5Stampと同じ時刻で停止すればOK。
4m程度の距離で試してみましたが問題なく、離れたところに常設できそうです。
補足
実は、Tasmota単体でもOn/Offスケジュール設定する機能あります
configuration->configure timer
さくさくMatterデバイスが作れるTasmotaおすすめ
【Tasmota】 = https://tasmota.github.io/docs/