🔻

バーアンテナでDCF77標準電波を発信するMatterデバイスを作る

に公開

DCF77標準電波トランスミッタ

電波時計のためのDCF77標準電波を発信するMatterデバイスを作ります。

IMG_7997.jpg

以下の記事でM5StickCを使ってポータブルなDCF77標準電波トランスミッタを作りました。今回は据え置きでの運用に耐えうるよう、アンテナを付けて4m程度の距離で通信できるものにしました。

ソフトウェア

M5Stamp picoにTasmotaをWeb Installerでインストールし、追加アプリ"DCF77Transmitter.tapp"をTasmotaにアップロードしてMatterの設定して完成。

ハードウェア

アンテナは下記サイトを参考にしてPWMの出力をアンプを介してバーアンテナで送信しています。

https://github.com/harlock974/time-signal

パーツリスト
・抵抗  ・・・ 82Ω x1, 330Ω x1
・コンデンサ  ・・・ 6800pF x1
・AMバーアンテナ ・・・ BT360CF x1
・MOSFET ・・・ 2N7000 x1
・コントローラ ・・・ M5Stamp pico x1

回路図
電源は5vのUSBアダプタとしました
IMG_7999.jpg

実装イメージ
pinにはM5Stamp picoを挿します
IMG_8005.jpg

ファームウェア書込み

M5Stamp picoには、"Tasmota (english)"を選択して書き込みます
【Tasmota WebInstaller】 https://tasmota.github.io/install/

a1.png

そのままWiFi接続をして(2.4GHzのみ)
image.png
繋がったら、VISIT DEVICE
image.png
M5Stamp内のWebサーバに入れます。ここで設定していきます
main.png

configuration -> Configure Other
TemplateをM5Stamp pico用に書き換えます
【Configuration】https://templates.blakadder.com/m5stack_m5stamp_pico.html からコピペして

a2.png

Activateにチェックを入れてから「Save」します

自動リブートしたら、configuration->configure module
Module typeをM5Stamp Picoに切り替えて、
GPIO25をPWMに変更します。識別は1

a3.png

Tool->Consoleで黒い画面を立ち上げて、日本のlocaltimeに設定します。
tools.png
「 timezone +9:00 」と入力すればOK。ログのタイムスタンプで正しく設定されたか確認。
timezone.png

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

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

Tool->Manage File systemで、tasmotaの追加アプリ( DCF77Transmitter.tapp )をアップロードします。
a4.png

一旦、リブートします

起動後は、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」します
image.png
自動リブートしたら、configuration->configure matter
Add to Configurationで(Type = Relay, Parameter = 1)のエンドポイント追加
a6.png
Matterデバイスとして参加できるようにするために Commissioning openにチェックを入れて「Save」します
a5.png

コンソールログには以下のような"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が表示されます
image.png

以降、iPhoneのHomeアプリでデバイス追加していきます
IMG_7954.jpg
アクセサリを追加->その他のオプション->番号入力します
IMG_7955 - コピー.jpg

「認定されていない」旨の警告が出ますが、このまま追加してどんどん進めます。
ブリッジ1個と、照明1個、コンセント1個が認識されればOKです。
コンセントにはそれらしい名前「DCF Transmitter」を付けます。
IMG_7959 - コピー.jpg
「DCF Transmitter」がMatterデバイスとしてHomeKitに登録され、iPhoneからOn/Offできるようになります。
7.png

動作確認、電波時計の時刻を合わせる

起動時はOff状態になっていて、iPhone画面とM5Stampのボタンによる「On」/「Off」が連動し、On状態の時には電波を送信します(LEDも点灯)

動作確認は、まずM5Stampの時刻を変更(Consoleのコマンド「 timezone +9:05 」で5分進めるなど)しておいてOnにして送信開始。電波時計はRECボタンを長押しして強制受信モードにすると0時の位置まで針が移動 -> 5~10分程度して受信した時刻情報が揃って、時計の針が動き始めてM5Stampと同じ時刻で停止すればOK。
4m程度の距離で試してみましたが問題なく、離れたところに常設できそうです。
IMG_7946.jpg

補足

実は、Tasmota単体でもOn/Offスケジュール設定する機能あります
configuration->configure timer
IMG_7949 - コピー.jpg

さくさくMatterデバイスが作れるTasmotaおすすめ
【Tasmota】 = https://tasmota.github.io/docs/
image.png

Discussion