DCF77: แžแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž‰แŸ’แž‰แžถแž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž™แŸ‰แžถแž„แžŠแžผแž…แž˜แŸ’แžแŸแž…?

แžŸแžฝแžŸแŸ’แžแžธ Habr แŸ”

แž”แŸ’แžšแž แŸ‚แž›แž‡แžถแž˜แž“แžปแžŸแŸ’แžŸแž‡แžถแž…แŸ’แžšแžพแž“แžŠแŸ‚แž›แž‘แžทแž‰แž“แžถแžกแžทแž€แžถ แžฌแžŸแŸ’แžแžถแž“แžธแž™แŸแžขแžถแž€แžถแžŸแž’แžถแžแžปแž”แžถแž“แžƒแžพแž‰ แž“แžถแžกแžทแž€แžถแžŠแŸ‚แž›แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แžŠแŸ„แž™แžœแžทแž‘แŸ’แž™แžป แžฌแžŸแžผแž˜แŸ’แž”แžธแžแŸ‚แž“แžทแž˜แžทแžแŸ’แžแžŸแž‰แŸ’แž‰แžถแž“แžถแžกแžทแž€แžถแžขแžถแžแžผแž˜แžทแž…แž“แŸ…แž›แžพแžœแŸแž…แžแŸ’แž…แž”แŸ‹แŸ” แž“แŸแŸ‡โ€‹แž‚แžบโ€‹แž„แžถแž™แžŸแŸ’แžšแžฝแž›โ€‹แžŽแžถแžŸแŸ‹ แž–แŸ’แžšแŸ„แŸ‡โ€‹แžขแŸ’แž“แž€โ€‹แž‚แŸ’แžšแžถแž“แŸ‹แžแŸ‚โ€‹แžแŸ’แžšแžผแžœโ€‹แžŠแžถแž€แŸ‹โ€‹แž“แžถแžกแžทแž€แžถโ€‹แž“แŸ…แž›แžพโ€‹แžแžป แž แžพแž™โ€‹แž˜แžฝแž™แžŸแž“แŸ’แž‘แžปแŸ‡โ€‹แž€แŸ’แžšแŸ„แž™แž˜แž€ แžœแžถโ€‹แž“แžนแž„โ€‹แž€แŸ‚แžŸแž˜แŸ’แžšแžฝแž›โ€‹แžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทโ€‹แž‘แŸ…แžแžถแž˜โ€‹แž–แŸแž›แžœแŸแž›แžถโ€‹แž–แžทแžแž”แŸ’แžšแžถแž€แžŠแŸ”
DCF77: แžแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž‰แŸ’แž‰แžถแž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž™แŸ‰แžถแž„แžŠแžผแž…แž˜แŸ’แžแŸแž…?

แž…แžผแžšแž™แžพแž„แžŸแŸ’แžœแŸ‚แž„แž™แž›แŸ‹แž–แžธแžšแž”แŸ€แž”แžŠแŸ‚แž›แžœแžถแžŠแŸ†แžŽแžพแžšแž€แžถแžš แž“แžทแž„แžŸแžšแžŸแŸแžšแž€แž˜แŸ’แž˜แžœแžทแž’แžธแžŒแžทแž€แžผแžŠแž“แŸ…แž€แŸ’แž“แžปแž„ Python แŸ”

แž˜แžถแž“แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž’แŸ’แžœแžพแžŸแž˜แž€แžถแž›แž€แž˜แŸ’แž˜แž–แŸแž›แžœแŸแž›แžถแžแžปแžŸแŸ—แž‚แŸ’แž“แžถแŸ” แž€แžถแžšแž–แŸแž‰แž“แžทแž™แž˜แž”แŸ†แž•แžปแžแž“แŸ…แžขแžบแžšแŸ‰แžปแž”แž‚แžบแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžขแžถแž›แŸ’แž›แžบแž˜แŸ‰แž„แŸ‹ DCF-77แž”แŸ’แžšแž‘แŸแžŸแž‡แž”แŸ‰แžปแž“แž˜แžถแž“แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž•แŸ’แž‘แžถแž›แŸ‹แžแŸ’แž›แžฝแž“ แž‡แŸแž“แŸ…แžŸแž แžšแžŠแŸ’แž‹แžขแžถแž˜แŸแžšแžทแž€แž˜แžถแž“แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž˜แžฝแž™แŸ” WWVB, แž›โ€‹แž›แŸ” แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€ แžšแžฟแž„แž“แŸแŸ‡แž“แžนแž„แž“แžทแž™แžถแž™แžขแŸ†แž–แžธ DCF77 แžŠแŸ‚แž›แž–แžถแž€แŸ‹แž–แŸแž“แŸ’แž’แž”แŸ†แž•แžปแž แž“แžทแž„แžขแžถแž…แž…แžผแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž”แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž‘แž‘แžฝแž›แž—แŸ’แž‰แŸ€แžœแž“แŸ…แž€แž“แŸ’แž›แŸ‚แž„แžแŸ’แž›แŸ‡แž“แŸ…แž€แŸ’แž“แžปแž„แž•แŸ’แž“แŸ‚แž€แžขแŸŠแžบแžšแŸ‰แžปแž”แž“แŸƒแž”แŸ’แžšแž‘แŸแžŸแžšแžปแžŸแŸ’แžŸแŸŠแžธ แž“แžทแž„แž”แžŽแŸ’แžแžถแž”แŸ’แžšแž‘แŸแžŸแž‡แžทแžแžแžถแž„ (แžขแŸ’แž“แž€แžŸแŸ’แžšแžปแž€แž“แŸ…แž†แŸ’แž„แžถแž™แž”แžผแž–แŸŒแžถแžขแžถแž…แž˜แžถแž“แž˜แžแžทแž•แŸ’แž‘แžปแž™แž‚แŸ’แž“แžถ แž‘แŸ„แŸ‡แž”แžธแž‡แžถแž™แŸ‰แžถแž„แžŽแžถแž€แŸแžŠแŸ„แž™ แž–แžฝแž€แž‚แŸแžขแžถแž…แž‘แž‘แžฝแž›แž”แžถแž“ แž“แžทแž„แžœแžทแž—แžถแž‚แžŸแž‰แŸ’แž‰แžถแž‡แž”แŸ‰แžปแž“;)

แžขแŸ’แžœแžธแž‚แŸ’แžšแž”แŸ‹แž™แŸ‰แžถแž„แžŠแŸ‚แž›แž”แžถแž“แžŸแžšแžŸแŸแžšแžแžถแž„แž€แŸ’แžšแŸ„แž˜แž“แžนแž„แž“แžทแž™แžถแž™แžขแŸ†แž–แžธ DCF77 แŸ”

แž€แžถแžšแž‘แž‘แžฝแž›แžŸแž‰แŸ’แž‰แžถ

DCF77 แž‚แžบแž‡แžถแžŸแŸ’แžแžถแž“แžธแž™แŸแžšแž›แž€แžœแŸ‚แž„แžŠแŸ‚แž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž“แŸ…แž”แŸ’แžšแŸแž€แž„แŸ‹ 77.5 kHz แž“แžทแž„แž”แž‰แŸ’แž‡แžผแž“แžŸแž‰แŸ’แž‰แžถแž€แŸ’แž“แžปแž„แž˜แŸ‰แžผแžŒแžปแž›แžขแŸ†แž–แŸ’แž›แžธแž‘แžธแžแŸ” แžŸแŸ’แžแžถแž“แžธแž™แŸ 50KW แž˜แžถแž“แž‘แžธแžแžถแŸ†แž„แž“แŸ… 25 แž‚แžธแžกแžผแž˜แŸ‰แŸ‚แžแŸ’แžšแž–แžธแž‘แžธแž€แŸ’แžšแžปแž„ Frankfurt แžœแžถแž”แžถแž“แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแž“แŸ…แž†แŸ’แž“แžถแŸ† 1959 แž แžพแž™แž“แŸ…แž†แŸ’แž“แžถแŸ† 1973 แž–แŸแžแŸŒแž˜แžถแž“แž€แžถแž›แž”แžšแžทแž…แŸ’แž†แŸแž‘แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ…แž–แŸแž›แžœแŸแž›แžถแž–แžทแžแž”แŸ’แžšแžถแž€แžŠแŸ” แž”แŸ’แžšแžœแŸ‚แž„แžšแž›แž€แž“แŸ…แž”แŸ’แžšแŸแž€แž„แŸ‹ 77 KHz แž‚แžบแžœแŸ‚แž„แžŽแžถแžŸแŸ‹ แžŠแžผแž…แŸ’แž“แŸแŸ‡แžœแžทแž˜แžถแžแŸ’แžšแž“แŸƒแžœแžถแž›แžขแž„แŸ‹แžแŸ‚แž“แž€แŸแžŸแž˜แžšแž˜แŸ’แž™แžŠแŸ‚แžš (แžšแžผแž”แžแžแž–แžธแžœแžทแž‚แžธแž—แžธแžŒแžถ)แŸ–
DCF77: แžแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž‰แŸ’แž‰แžถแž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž™แŸ‰แžถแž„แžŠแžผแž…แž˜แŸ’แžแŸแž…?

แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž”แž‰แŸ’แž…แžผแž›แžขแž„แŸ‹แžแŸ‚แž“ แž“แžทแž„แžแžถแž˜แž–แž›แž”แŸ‚แž”แž“แŸแŸ‡ แž€แž“แŸ’แž›แŸ‚แž„แž‘แž‘แžฝแž›แž—แŸ’แž‰แŸ€แžœแž‚แŸ’แžšแž”แžŠแžŽแŸ’แžแž”แŸ‹แžŸแŸ’แž‘แžพแžšแžแŸ‚แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž“แŸƒแž‘แŸ’แžœแžธแž”แžขแžบแžšแŸ‰แžปแž” แž”แŸแžกแžถแžšแžปแžŸแŸ’แžŸ แžขแŸŠแžปแž™แž€แŸ’แžšแŸ‚แž“ แž“แžทแž„แž•แŸ’แž“แŸ‚แž€แž˜แžฝแž™แž“แŸƒแž”แŸ’แžšแž‘แŸแžŸแžšแžปแžŸแŸ’แžŸแŸŠแžธแŸ”

DCF77: แžแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž‰แŸ’แž‰แžถแž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž™แŸ‰แžถแž„แžŠแžผแž…แž˜แŸ’แžแŸแž…?

แž“แžšแžŽแžถแž˜แŸ’แž“แžถแž€แŸ‹แžขแžถแž…แžแžแžŸแž‰แŸ’แž‰แžถแž”แžถแž“แŸ” แžŠแžพแž˜แŸ’แž”แžธแž’แŸ’แžœแžพแžŠแžผแž…แž“แŸแŸ‡แž‚แŸ’แžšแžถแž“แŸ‹แžแŸ‚แž…แžผแž›แž‘แŸ…แž€แžถแž“แŸ‹แžขแŸ’แž“แž€แž‘แž‘แžฝแž›แžแžถแž˜แžขแŸŠแžธแž“แž’แžบแžŽแžทแž http://websdr.ewi.utwente.nl:8901/แž‡แŸ’แžšแžพแžŸแžšแžพแžŸแž”แŸ’แžšแŸแž€แž„แŸ‹ 76.5KHz แž“แžทแž„แž˜แŸ‰แžผแžŒแžปแž› USB แž“แŸ…แž‘แžธแž“แŸ„แŸ‡แŸ” แžšแžผแž”แž—แžถแž–แž‚แžฝแžšแžแŸ‚แž”แžพแž€แžŠแŸ‚แž›แž˜แžพแž›แž‘แŸ…แžŠแžผแž…แž“แŸแŸ‡แŸ–

DCF77: แžแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž‰แŸ’แž‰แžถแž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž™แŸ‰แžถแž„แžŠแžผแž…แž˜แŸ’แžแŸแž…?

แž“แŸ…แž‘แžธแž“แŸ„แŸ‡แž™แžพแž„แž…แžปแž…แž”แŸŠแžผแžแžปแž„แž‘แžถแž‰แž™แž€ แž แžพแž™แž€แžแŸ‹แžแŸ’แžšแžถแž”แŸ†แžŽแŸ‚แž€แž˜แžฝแž™แžšแž™แŸˆแž–แŸแž›แž‡แžถแž…แŸ’แžšแžพแž“แž“แžถแž‘แžธแŸ” แž‡แžถแž€แžถแžšแž–แžทแžแžŽแžถแžŸแŸ‹แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž˜แžถแž“แžขแŸ’แž“แž€แž‘แž‘แžฝแž› "แž–แžทแžแž”แŸ’แžšแžถแž€แžŠ" แžŠแŸ‚แž›แžขแžถแž…แžแžแž”แŸ’แžšแŸแž€แž„แŸ‹ 77.5KHz แžขแŸ’แž“แž€แžขแžถแž…แž”แŸ’แžšแžพแžœแžถแž”แžถแž“แŸ”

แž‡แžถแž€แžถแžšแž–แžทแžแžŽแžถแžŸแŸ‹แžŠแŸ„แž™แž€แžถแžšแž‘แž‘แžฝแž›แžŸแž‰แŸ’แž‰แžถแž˜แŸ‰แŸ„แž„แžœแžทแž‘แŸ’แž™แžปแžแžถแž˜แžšแž™แŸˆแžขแŸŠแžธแž“แž’แžบแžŽแžทแžแž™แžพแž„แž“แžนแž„แž˜แžทแž“แž‘แž‘แžฝแž›แž”แžถแž“แž–แŸแž›แžœแŸแž›แžถแžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœแž–แžทแžแž”แŸ’แžšแžถแž€แžŠแž‘แŸ - แžŸแž‰แŸ’แž‰แžถแžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แž‡แžผแž“แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž–แž“แŸ’แž™แžถแž–แŸแž›แŸ” แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž‚แŸ„แž›แžŠแŸ…แžšแž”แžŸแŸ‹แž™แžพแž„แž‚แžบแž‚แŸ’แžšแžถแž“แŸ‹แžแŸ‚แžŸแŸ’แžœแŸ‚แž„แž™แž›แŸ‹แž–แžธแžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แž“แŸƒแžŸแž‰แŸ’แž‰แžถแž”แŸ‰แžปแžŽแŸ’แžŽแŸ„แŸ‡ แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžšแžฟแž„แž“แŸแŸ‡ แž€แžถแžšแžแžแžแžถแž˜แžขแŸŠแžธแž“แž’แžบแžŽแžทแžแž‚แžบแž›แžพแžŸแž–แžธแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแžถแž“แŸ‹แŸ” แž“แŸ…แž€แŸ’แž“แžปแž„แž‡แžธแžœแžทแžแž–แžทแž แžงแž”แž€แžšแžŽแŸแžฏแž€แž‘แŸแžŸแžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž‘แž‘แžฝแž› แž“แžทแž„แž€แžถแžšแžŒแžทแž€แžผแžŠ แž–แžฝแž€แž‚แŸแž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž–แžทแž—แžถแž€แŸ’แžŸแžถแžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸ”

แžŠแžผแž…แŸ’แž“แŸแŸ‡ แž™แžพแž„โ€‹แž”แžถแž“โ€‹แž‘แž‘แžฝแž›โ€‹แž€แžถแžšโ€‹แžแžโ€‹แž แžพแž™โ€‹ แžแŸ„แŸ‡โ€‹แž…แžถแž”แŸ‹โ€‹แž•แŸ’แžŠแžพแž˜โ€‹แžŠแŸ†แžŽแžพแžšโ€‹แž€แžถแžšโ€‹แžœแžถแŸ”

แž€แžถแžšแžŒแžทแž€แžผแžŠแžŸแž‰แŸ’แž‰แžถ

แžแŸ„แŸ‡แž•แŸ’แž‘แžปแž€แžฏแž€แžŸแžถแžšแžŠแŸ„แž™แž”แŸ’แžšแžพ Python แž แžพแž™แž˜แžพแž›แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แžšแž”แžŸแŸ‹แžœแžถแŸ–

from scipy.io import wavfile
from scipy import signal
import matplotlib.pyplot as plt
import numpy as np

sample_rate, data = wavfile.read("dcf_websdr_2019-03-26T20_25_34Z_76.6kHz.wav")
plt.plot(data[:100000])
plt.show()

แž™แžพแž„แžƒแžพแž‰แž˜แŸ‰แžผแžŒแžปแž›แž‘แŸ†แž แŸ†แž’แž˜แŸ’แž˜แžแžถแŸ–
DCF77: แžแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž‰แŸ’แž‰แžถแž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž™แŸ‰แžถแž„แžŠแžผแž…แž˜แŸ’แžแŸแž…?

แžŠแžพแž˜แŸ’แž”แžธโ€‹แžŸแž˜แŸ’แžšแžฝแž›โ€‹แž€แžถแžšโ€‹แžŒแžทแž€แžผแžŠ แžŸแžผแž˜โ€‹แž™แž€โ€‹แžŸแŸ’แžšแŸ„แž˜แžŸแŸ†แž”แžปแžแŸ’แžšโ€‹แžŸแž‰แŸ’แž‰แžถโ€‹แžŠแŸ„แž™โ€‹แž”แŸ’แžšแžพ Hilbert transformแŸ–

analytic_signal = signal.hilbert(data)
A = np.abs(analytic_signal)
plt.plot(A[:100000])

แž›แž‘แŸ’แž’แž•แž›แž–แž„แŸ’แžšแžธแž€แŸ–
DCF77: แžแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž‰แŸ’แž‰แžถแž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž™แŸ‰แžถแž„แžŠแžผแž…แž˜แŸ’แžแŸแž…?

แžŸแžผแž˜โ€‹แžŸแž˜แŸ’แžšแžฝแž›โ€‹แž€แžถแžšโ€‹แž”แž‰แŸ’แž…แŸแž‰โ€‹แžŸแŸ†แžกแŸแž„โ€‹แžŠแŸ„แž™โ€‹แž”แŸ’แžšแžพโ€‹แžแž˜แŸ’แžšแž„โ€‹แž€แž˜แŸ’แžšแžทแžโ€‹แž‘แžถแž” แž แžพแž™โ€‹แž€แŸ’แž“แžปแž„โ€‹แž–แŸแž›โ€‹แž‡แžถแž˜แžฝแž™โ€‹แž‚แŸ’แž“แžถโ€‹แž“แžนแž„โ€‹แž‚แžŽแž“แžถโ€‹แžแž˜แŸ’แž›แŸƒโ€‹แž˜แž’แŸ’แž™แž˜ แžŠแŸ‚แž›โ€‹แž“แžนแž„โ€‹แž˜แžถแž“โ€‹แž”แŸ’แžšแž™แŸ„แž‡แž“แŸโ€‹แž–แŸแž›โ€‹แž€แŸ’แžšแŸ„แž™โ€‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹โ€‹แž€แžถแžšโ€‹แž‰แŸ‚แž€แŸ”

b, a = signal.butter(2, 20.0/sample_rate)
zi = signal.lfilter_zi(b, a)
A, _ = signal.lfilter(b, a, A, zi=zi*A[0])
avg = (np.amax(A) + np.amin(A))/2

แž›แž‘แŸ’แž’แž•แž› (แž”แž“แŸ’แž‘แžถแžแŸ‹แž–แžŽแŸŒแž›แžฟแž„)แŸ– แž‡แžถแžŸแž‰แŸ’แž‰แžถแžšแž›แž€แžšแžถแž„แž€แžถแžšแŸ‰แŸแžŠแŸ‚แž›แž„แžถแž™แžŸแŸ’แžšแžฝแž›แžœแžทแž—แžถแž‚แŸ”
DCF77: แžแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž‰แŸ’แž‰แžถแž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž™แŸ‰แžถแž„แžŠแžผแž…แž˜แŸ’แžแŸแž…?

แž€แžถแžšแž‰แŸ‚แž€

แžŠแŸ†แž”แžผแž„แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแž‘แž‘แžฝแž›แž”แžถแž“แž›แŸ†แžŠแžถแž”แŸ‹แž”แŸŠแžธแžแŸ” แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แžŸแž‰แŸ’แž‰แžถแžแŸ’แž›แžฝแž“แžœแžถแž‚แžบแžŸแžถแž˜แž‰แŸ’แž‰แžŽแžถแžŸแŸ‹แŸ”
DCF77: แžแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž‰แŸ’แž‰แžถแž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž™แŸ‰แžถแž„แžŠแžผแž…แž˜แŸ’แžแŸแž…?

แž‡แžธแž–แž…แžšแžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ‚แž„แž…แŸ‚แž€แž‘แŸ…แž‡แžถแž…แž“แŸ’แž›แŸ„แŸ‡แž‘แžธแž–แžธแžšแŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแž…แž˜แŸ’แž„แžถแž™แžšแžœแžถแž„แž‡แžธแž–แž…แžšแž‚แžบ 0.1s (แž–แŸ„แž›แž‚แžบแž”แŸ’แžšแžœแŸ‚แž„แž‡แžธแž–แž…แžšแžแŸ’แž›แžฝแž“แžฏแž„แž‚แžบ 0.9s) แžŸแžผแž˜แž”แž“แŸ’แžแŸ‚แž˜ "0" แž‘แŸ…แž›แŸ†แžŠแžถแž”แŸ‹แž”แŸŠแžธแž แž”แŸ’แžšแžŸแžทแž“แž”แžพแž…แž˜แŸ’แž„แžถแž™แž‚แžบ 0.2s (แž–แŸ„แž›แž‚แžบแž”แŸ’แžšแžœแŸ‚แž„แž‚แžบ 0.8s) แžŸแžผแž˜แž”แž“แŸ’แžแŸ‚แž˜ "1"แŸ” แž…แžปแž„แž”แž‰แŸ’แž…แž”แŸ‹แž“แŸƒแž“แžถแž‘แžธแž“แžธแž˜แžฝแž™แŸ—แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž แžถแž‰แžŠแŸ„แž™แž‡แžธแž–แž…แžš "แžœแŸ‚แž„" แž”แŸ’แžšแžœแŸ‚แž„ 2 แžœแžทแž“แžถแž‘แžธ แž›แŸ†แžŠแžถแž”แŸ‹แž”แŸŠแžธแžแžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ†แžŽแžแŸ‹แžกแžพแž„แžœแžทแž‰แž‘แŸ…แžŸแžผแž“แŸ’แž™ แž แžพแž™แž€แžถแžšแž”แŸ†แž–แŸแž‰แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž˜แŸ’แžแž„แž‘แŸ€แžแŸ”

แžแžถแž„แž›แžพแž„แžถแž™แžŸแŸ’แžšแžฝแž›แžŸแžšแžŸแŸแžšแž€แŸ’แž“แžปแž„ Python แŸ”

sig_start, sig_stop = 0, 0
pos = 0
bits_str = ""
while pos < cnt - 4:
    if A[pos] < avg and A[pos+1] > avg:
        # Signal begin
        sig_start = pos
    if A[pos] > avg and A[pos+1] < avg:
        # Signal end
        sig_stop = pos

        diff = sig_stop - sig_start
    
        if diff < 0.85*sample_rate:
            bits_str += "1"
        if diff > 0.85*sample_rate and diff < 1.25*sample_rate:
            bits_str += "0"
        if diff > 1.5*sample_rate:
            print(bits_str)
            bits_str = ""

    pos += 1

แž‡แžถแž›แž‘แŸ’แž’แž•แž› แž™แžพแž„แž‘แž‘แžฝแž›แž”แžถแž“แž”แžŽแŸ’แžแžปแŸ†แž“แŸƒแž”แŸŠแžธแž แž€แŸ’แž“แžปแž„แžงแž‘แžถแž แžšแžŽแŸแžšแž”แžŸแŸ‹แž™แžพแž„แžšแž™แŸˆแž–แŸแž›แž–แžธแžšแžœแžทแž“แžถแž‘แžธ แžœแžถแž˜แžพแž›แž‘แŸ…แžŠแžผแž…แž“แŸแŸ‡แŸ–

0011110110111000001011000001010000100110010101100010011000
0001111100110110001010100001010000100110010101100010011000

แž“แžทแž™แžถแž™แžขแž‰แŸ’แž…แžนแž„แžœแžถแž‚แžฝแžšแžฑแŸ’แž™แž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแžŠแŸ‚แž›แžŸแž‰แŸ’แž‰แžถแž€แŸแž˜แžถแž“ "แžŸแŸ’แžšแž‘แžถแž”แŸ‹แž‘แžธแž–แžธแžš" แž“แŸƒแž‘แžทแž“แŸ’แž“แž“แŸแž™แž•แž„แžŠแŸ‚แžšแŸ” แž›แŸ†แžŠแžถแž”แŸ‹แž”แŸŠแžธแžแž€แŸแžแŸ’แžšแžผแžœแž”แžถแž“แžขแŸŠแžทแž“แž€แžผแžŠแžŠแŸ„แž™แž”แŸ’แžšแžพ แž˜แŸ‰แžผแžŒแžปแž›แžŠแŸ†แžŽแžถแž€แŸ‹แž€แžถแž›. แžแžถแž˜แž‘แŸ’แžšแžนแžŸแŸ’แžŠแžธ แž“แŸแŸ‡แž‚แžฝแžšแžแŸ‚แž•แŸ’แžแž›แŸ‹แž“แžผแžœแž€แžถแžšแžŒแžทแž€แžผแžŠแžŠแŸแžšแžนแž„แž˜แžถแŸ†แž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ€แž แžŸแžผแž˜แŸ’แž”แžธแžแŸ‚แž€แŸ’แž“แžปแž„แž€แžšแžŽแžธแž˜แžถแž“แžŸแž‰แŸ’แž‰แžถแžแŸ’แžŸแŸ„แž™แž€แŸแžŠแŸ„แž™แŸ”

แž‡แŸ†แž แžถแž“แž…แžปแž„แž€แŸ’แžšแŸ„แž™แžšแž”แžŸแŸ‹แž™แžพแž„แŸ– แž‘แž‘แžฝแž›แž”แžถแž“แž‘แžทแž“แŸ’แž“แž“แŸแž™แž–แžทแžแž”แŸ’แžšแžถแž€แžŠแŸ” แž”แŸŠแžธแžแžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แž‡แžผแž“แž˜แŸ’แžแž„แž€แŸ’แž“แžปแž„แž˜แžฝแž™แžœแžทแž“แžถแž‘แžธ แžŠแžผแž…แŸ’แž“แŸแŸ‡แž™แžพแž„แž˜แžถแž“แžŸแžšแžปแž” 59 แž”แŸŠแžธแž แžŠแŸ‚แž›แž€แŸ’แž“แžปแž„แž“แŸ„แŸ‡แž–แŸแžแŸŒแž˜แžถแž“แž‡แžถแž…แŸ’แžšแžพแž“แžแŸ’แžšแžผแžœแž”แžถแž“แžขแŸŠแžทแž“แž€แžผแžŠแŸ–
DCF77: แžแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž‰แŸ’แž‰แžถแž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž™แŸ‰แžถแž„แžŠแžผแž…แž˜แŸ’แžแŸแž…?

แž”แŸŠแžธแžแžแŸ’แžšแžผแžœแž”แžถแž“แž–แžทแž–แžŽแŸŒแž“แžถแž“แŸ…แž€แŸ’แž“แžปแž„ Wikipediaแž แžพแž™แž–แžฝแž€แž‚แŸแž–แžทแžแž‡แžถแž…แž„แŸ‹แžŠแžนแž„แž…แž„แŸ‹แžƒแžพแž‰แžŽแžถแžŸแŸ‹แŸ” 15 แž”แŸŠแžธแžแžŠแŸ†แž”แžผแž„แž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแž‘แŸ แž‘แŸ„แŸ‡แž”แžธแž‡แžถแž˜แžถแž“แž‚แž˜แŸ’แžšแŸ„แž„แž”แŸ’แžšแžพแžœแžถแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž–แŸ’แžšแž˜แžถแž“ แž“แžทแž„แž€แžถแžšแž€แžถแžšแž–แžถแžšแžŸแŸŠแžธแžœแžทแž›แž€แŸแžŠแŸ„แž™แŸ” แž”แŸŠแžธแž A1 แž”แž„แŸ’แž แžถแž‰แžแžถแž“แžถแžกแžทแž€แžถแž“แžนแž„แž”แŸ’แžแžผแžšแž‘แŸ…แž˜แŸ‰แŸ„แž„แžŸแž“แŸ’แžŸแŸ†แž–แž“แŸ’แž›แžบแžแŸ’แž„แŸƒแž€แŸ’แž“แžปแž„แž˜แžฝแž™แž˜แŸ‰แŸ„แž„แž”แž“แŸ’แž‘แžถแž”แŸ‹แŸ” แž”แŸŠแžธแž A2 แž”แž„แŸ’แž แžถแž‰แžแžถแž€แžถแžšแž”แž“แŸ’แžแŸ‚แž˜ แž›แŸ„แžแž›แžพแž€แž‘แžธแž–แžธแžšแžŠแŸ‚แž›แž–แŸแž›แžแŸ’แž›แŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŠแžพแž˜แŸ’แž”แžธแž€แŸ‚แžแž˜แŸ’แžšแžผแžœแž–แŸแž›แžœแŸแž›แžถแž‘แŸ…แžแžถแž˜แž€แžถแžšแž”แž„แŸ’แžœแžทแž›แžšแž”แžŸแŸ‹แž•แŸ‚แž“แžŠแžธแŸ” แž”แŸŠแžธแžแžŠแŸ‚แž›แž“แŸ…แžŸแž›แŸ‹แžขแŸŠแžทแž“แž€แžผแžŠแž˜แŸ‰แŸ„แž„ แž“แžถแž‘แžธ แžœแžทแž“แžถแž‘แžธ แž“แžทแž„แž€แžถแž›แž”แžšแžทแž…แŸ’แž†แŸแž‘แŸ”

DCF77: แžแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž‰แŸ’แž‰แžถแž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž™แŸ‰แžถแž„แžŠแžผแž…แž˜แŸ’แžแŸแž…?

แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžขแŸ’แž“แž€แžŠแŸ‚แž›แž…แž„แŸ‹แž–แžทแžŸแŸ„แž’แž“แŸแžŠแŸ„แž™แžแŸ’แž›แžฝแž“แžฏแž„ แž€แžผแžŠแžŒแžทแž€แžผแžŠแžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แžแž›แŸ‹แžฑแŸ’แž™แž“แŸ…แž€แŸ’แžšแŸ„แž˜ spoiler แŸ”
แž”แŸ’แžšแž—แž–

def decode(bits):
    if bits[0] != '0' or bits[20] != '1':
        return
    
    minutes, hours, day_of_month, weekday, month, year = map(convert_block,
                                                             (bits[21:28], bits[29:35], bits[36:42], bits[42:45],
                                                              bits[45:50], bits[50:58]))
    days = ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')
    print('{dow}, {dom:02}.{mon:02}.{y}, {h:02}:{m:02}'.format(h=hours, m=minutes, dow=days[weekday],
                                                               dom=day_of_month, mon=month, y=year))


def convert_ones(bits):
    return sum(2**i for i, bit in enumerate(bits) if bit == '1')


def convert_tens(bits):
    return 10*convert_ones(bits)


def right_parity(bits, parity_bit):
    num_of_ones = sum(int(bit) for bit in bits)
    return num_of_ones % 2 == int(parity_bit)


def convert_block(bits, parity=False):
    if parity and not right_parity(bits[:-1], bits[-1]):
        return -1
    
    ones = bits[:4]
    tens = bits[4:]
    return convert_tens(tens) + convert_ones(ones)

แž“แŸ…แž–แŸแž›แžŠแŸ‚แž›แž™แžพแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แž˜แŸ’แž˜แžœแžทแž’แžธ แž™แžพแž„แž“แžนแž„แžƒแžพแž‰แž›แž‘แŸ’แž’แž•แž›แžŸแŸ’แžšแžŠแŸ€แž„แž“แžนแž„แž“แŸแŸ‡แŸ–

0011110110111000001011000001010000100110010101100010011000
Tuesday, 26.03.19, 21:41
0001111100110110001010100001010000100110010101100010011000
Tuesday, 26.03.19, 21:42

แžแžถแž˜แž–แžทแž แž“แŸ„แŸ‡แž‡แžถแžœแŸแž‘แž˜แž“แŸ’แžแž‘แžถแŸ†แž„แžขแžŸแŸ‹แŸ” แžขแžแŸ’แžแž”แŸ’แžšแž™แŸ„แž‡แž“แŸแž“แŸƒแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž”แŸ‚แž”แž“แŸแŸ‡แž‚แžบแžแžถแž€แžถแžšแžŒแžทแž€แžผแžŠแž‚แžบแžŸแžถแž˜แž‰แŸ’แž‰แž”แŸ†แž•แžปแž แž แžพแž™แžขแžถแž…แž’แŸ’แžœแžพแž”แžถแž“แž“แŸ…แž›แžพแžŽแžถแž˜แžฝแž™แžŸแžผแž˜แŸ’แž”แžธแžแŸ‚ microcontroller แžŸแžถแž˜แž‰แŸ’แž‰แž”แŸ†แž•แžปแžแž€แŸแžŠแŸ„แž™แŸ” แž™แžพแž„แž‚แŸ’แžšแžถแž“แŸ‹แžแŸ‚แžšแžถแž”แŸ‹แž”แŸ’แžšแžœแŸ‚แž„แž“แŸƒแž‡แžธแž–แž…แžš แž”แŸ’แžšแž˜แžผแž›แž•แŸ’แžแžปแŸ† 60 แž”แŸŠแžธแž แž แžพแž™แž“แŸ…แž…แžปแž„แž”แž‰แŸ’แž…แž”แŸ‹แž“แŸƒแž“แžถแž‘แžธแž“แžธแž˜แžฝแž™แŸ— แž™แžพแž„แž‘แž‘แžฝแž›แž”แžถแž“แž–แŸแž›แžœแŸแž›แžถแž–แžทแžแž”แŸ’แžšแžถแž€แžŠแŸ” แž”แžพแž”แŸ’แžšแŸ€แž”แž’แŸ€แž”แž‘แŸ…แž“แžนแž„แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แžแž•แŸ’แžŸแŸแž„แž‘แŸ€แžแž“แŸƒแž€แžถแžšแž’แŸ’แžœแžพแžŸแž˜แž€แžถแž›แž€แž˜แŸ’แž˜แž–แŸแž›แžœแŸแž›แžถ (แžงแž‘แžถแž แžšแžŽแŸ GPS แžฌแž–แŸ’แžšแŸ‡แž แžถแž˜แžƒแžถแžแŸ‹ แžขแŸŠแžทแž“แž’แžบแžŽแžทแž :) แž€แžถแžšแž’แŸ’แžœแžพแžŸแž˜แž€แžถแž›แž€แž˜แŸ’แž˜แžœแžทแž‘แŸ’แž™แžปแž”แŸ‚แž”แž“แŸแŸ‡แž‘แžถแž˜แž‘แžถแžšแžŸแŸ’แž‘แžพแžšแžแŸ‚แž‚แŸ’แž˜แžถแž“แžขแž‚แŸ’แž‚แžทแžŸแž“แžธ - แžงแž‘แžถแž แžšแžŽแŸ แžŸแŸ’แžแžถแž“แžธแž™แŸแžขแžถแž€แžถแžŸแž’แžถแžแžปแž€แŸ’แž“แžปแž„แž•แŸ’แž‘แŸ‡แž’แž˜แŸ’แž˜แžแžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž”แŸ’แžšแž แŸ‚แž›แž˜แžฝแž™แž†แŸ’แž“แžถแŸ†แž›แžพแžขแžถแž‚แžปแž™ AA แž…แŸ†แž“แžฝแž“ 2 แŸ” แž แŸแžแžปแžŠแžผแž…แŸ’แž“แŸแŸ‡แž แžพแž™ แžŸแžผแž˜แŸ’แž”แžธแžแŸ‚แž“แžถแžกแžทแž€แžถแžŠแŸƒแž€แŸแžแŸ’แžšแžผแžœแž”แžถแž“แž•แž›แžทแžแžกแžพแž„แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž’แŸ’แžœแžพแžŸแž˜แž€แžถแž›แž€แž˜แŸ’แž˜แžœแžทแž‘แŸ’แž™แžป แž˜แžทแž“แž˜แŸ‚แž“แž“แžทแž™แžถแž™แž–แžธแž“แžถแžกแžทแž€แžถแž‡แž‰แŸ’แž‡แžถแŸ†แž„ แžฌแž“แžถแžกแžทแž€แžถแžŸแŸ’แžแžถแž“แžธแž™แŸแžแžถแž˜แžŠแž„แž•แŸ’แž›แžผแžœแž“แŸ„แŸ‡แž‘แŸแŸ”

แž—แžถแž–แž„แžถแž™แžŸแŸ’แžšแžฝแž› แž“แžทแž„แž—แžถแž–แžŸแžถแž˜แž‰แŸ’แž‰แžšแž”แžŸแŸ‹ DCF แž€แŸแž‘แžถแž€แŸ‹แž‘แžถแž‰แžขแŸ’แž“แž€แž…แžผแž›แž…แžทแžแŸ’แž DIY แž•แž„แžŠแŸ‚แžšแŸ” แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžแŸ’แžšแžนแž˜แžแŸ‚ $10-20 แžขแŸ’แž“แž€แžขแžถแž…แž‘แžทแž‰แž˜แŸ‰แžผแžŒแžปแž›แžขแž„แŸ‹แžแŸ‚แž“แžŠแŸ‚แž›แžแŸ’แžšแŸ€แž˜แžšแžฝแž…แž‡แžถแžŸแŸ’แžšแŸแž… แž‡แžถแž˜แžฝแž™แž“แžนแž„แžงแž”แž€แžšแžŽแŸแž‘แž‘แžฝแž› แž“แžทแž„แž‘แžทแž“แŸ’แž“แž•แž› TTL แžŠแŸ‚แž›แžแŸ’แžšแŸ€แž˜แžšแžฝแž…แž‡แžถแžŸแŸ’แžšแŸแž… แžŠแŸ‚แž›แžขแžถแž…แž—แŸ’แž‡แžถแž”แŸ‹แž‡แžถแž˜แžฝแž™ Arduino แžฌแžงแž”แž€แžšแžŽแŸแž”แž‰แŸ’แž‡แžถแž•แŸ’แžŸแŸแž„แž‘แŸ€แžแŸ”
DCF77: แžแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž‰แŸ’แž‰แžถแž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž™แŸ‰แžถแž„แžŠแžผแž…แž˜แŸ’แžแŸแž…?

แž”แžถแž“แžŸแžšแžŸแŸแžšแžšแžฝแž…แž แžพแž™แžŸแž˜แŸ’แžšแžถแž”แŸ‹ Arduino แž”แžŽแŸ’แžŽแžถแž›แŸแž™แžŠแŸ‚แž›แžแŸ’แžšแŸ€แž˜แžšแžฝแž…แž‡แžถแžŸแŸ’แžšแŸแž…. แž‘แŸ„แŸ‡แž™แŸ‰แžถแž„แžŽแžถแž€แŸแžŠแŸ„แž™ แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸแžŠแžนแž„แžšแžฝแž…แž แžพแž™แžแžถแž˜แžทแž“แžแžถแžขแŸ’แž“แž€แž’แŸ’แžœแžพแžขแŸ’แžœแžธแž“แŸ…แž›แžพ microcontroller แžขแŸ’แž“แž€แž”แž‰แŸ’แž…แž”แŸ‹แžŠแŸ„แž™แž“แžถแžกแžทแž€แžถ แžฌแžŸแŸ’แžแžถแž“แžธแž™แžขแžถแž€แžถแžŸแž’แžถแžแžปแŸ” แž‡แžถแž˜แžฝแž™แž“แžนแž„แžงแž”แž€แžšแžŽแŸแž”แŸ‚แž”แž“แŸแŸ‡ แž€แžถแžšแž‘แž‘แžฝแž›แž”แžถแž“แž–แŸแž›แžœแŸแž›แžถแž–แžทแžแž”แŸ’แžšแžถแž€แžŠแž‚แžบแž–แžทแžแž‡แžถแž„แžถแž™แžŸแŸ’แžšแžฝแž›แžŽแžถแžŸแŸ‹ แžŠแŸ‚แž›แž”แžถแž“แž•แŸ’แžแž›แŸ‹แžแžถแžขแŸ’แž“แž€แžŸแŸ’แžแžทแžแž“แŸ…แž€แŸ’แž“แžปแž„แž€แž“แŸ’แž›แŸ‚แž„แž‘แž‘แžฝแž›แž—แŸ’แž‰แŸ€แžœแŸ” แž‡แžถแž€แžถแžšแž”แŸ’แžšแžŸแžพแžšแžŽแžถแžŸแŸ‹ แžขแŸ’แž“แž€แžขแžถแž…แž–แŸ’แž™แžฝแžšแžŸแžทแž›แžถแž…แžถแžšแžนแž€ "แž“แžถแžกแžทแž€แžถแžขแžถแžแžผแž˜แžทแž€" แž“แŸ…แž›แžพแž“แžถแžกแžทแž€แžถแžšแž”แžŸแŸ‹แžขแŸ’แž“แž€ แž แžพแž™แž€แŸ’แž“แžปแž„แž–แŸแž›แžแŸ‚แž˜แžฝแž™แž–แž“แŸ’แž™แž›แŸ‹แžŠแž›แŸ‹แž˜แž“แžปแžŸแŸ’แžŸแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แž“แžถแžแžถแžงแž”แž€แžšแžŽแŸแž“แŸแŸ‡แž–แžทแžแž‡แžถแž’แŸ’แžœแžพแžŸแž˜แž€แžถแž›แž€แž˜แŸ’แž˜แžŠแŸ„แž™แž”แŸ’แžšแžพแž“แžถแžกแžทแž€แžถแžขแžถแžแžผแž˜แžทแž…แŸ”

แžขแŸ’แž“แž€โ€‹แžŠแŸ‚แž›โ€‹แž”แŸ’แžšแžถแžแŸ’แž“แžถโ€‹แžขแžถแž…โ€‹แžŠแŸ†แžกแžพแž„โ€‹แž“แžถแžกแžทแž€แžถโ€‹แž‡แžธแžŠแžผแž“โ€‹แž…แžถแžŸแŸ‹โ€‹แž”แžถแž“โ€‹แžŠแŸ„แž™โ€‹แžŠแŸ†แžกแžพแž„โ€‹แž™แž“แŸ’แžแž€แžถแžšโ€‹แžแŸ’แž˜แžธโ€‹แž‡แžถแž˜แžฝแž™โ€‹แž“แžนแž„โ€‹แž€แžถแžšโ€‹แž’แŸ’แžœแžพโ€‹แžŸแž˜แž€แžถแž›แž€แž˜แŸ’แž˜โ€‹แžœแžทแž‘แŸ’แž™แžปแŸ–

DCF77: แžแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž‰แŸ’แž‰แžถแž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž™แŸ‰แžถแž„แžŠแžผแž…แž˜แŸ’แžแŸแž…?

แžขแŸ’แž“แž€แžขแžถแž…แžŸแŸ’แžœแŸ‚แž„แžšแž€แž˜แžฝแž™แž“แŸ…แž›แžพ ebay แžŠแŸ„แž™แž”แŸ’แžšแžพแž–แžถแž€แŸ’แž™แž‚แž“แŸ’แž›แžนแŸ‡ "แž…แž›แž“แžถแžŠแŸ‚แž›แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แžŠแŸ„แž™แžœแžทแž‘แŸ’แž™แžป"แŸ”

แž แžพแž™แž‡แžถแž…แžปแž„แž€แŸ’แžšแŸ„แž™, แž€แžถแžš hack แž‡แžธแžœแžทแžแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžขแŸ’แž“แž€แžŠแŸ‚แž›แž”แžถแž“แžขแžถแž“แž†แŸ’แž„แžถแž™แž“แŸแŸ‡แŸ” แž‘แŸ„แŸ‡แž”แžธแž‡แžถแž˜แžทแž“แž˜แžถแž“แžงแž”แž€แžšแžŽแŸแž”แž‰แŸ’แž‡แžผแž“แžŸแž‰แŸ’แž‰แžถแžœแžทแž‘แŸ’แž™แžปแžแŸ‚แž˜แžฝแž™แž€แŸ’แž“แžปแž„แž…แž˜แŸ’แž„แžถแž™แž–แžธแžšแž–แžถแž“แŸ‹แž‚แžธแžกแžผแž˜แŸ‰แŸ‚แžแŸ’แžšแžแžถแž„แž˜แžปแžแž€แŸแžŠแŸ„แž™ แž€แŸแžœแžถแž˜แžทแž“แž–แžทแž”แžถแž€แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แž„แŸ’แž€แžพแžแžŸแž‰แŸ’แž‰แžถแž”แŸ‚แž”แž“แŸแŸ‡แžŠแŸ„แž™แžแŸ’แž›แžฝแž“แžฏแž„แžŠแŸ‚แžšแŸ” แž˜แžถแž“แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž˜แžฝแž™แž“แŸ…แž›แžพ Google Play แžŠแŸ‚แž›แž˜แžถแž“แžˆแŸ’แž˜แŸ„แŸ‡แžแžถ "DCF77 Emulator" แžŠแŸ‚แž›แž”แž‰แŸ’แž…แŸแž‰แžŸแž‰แŸ’แž‰แžถแž‘แŸ…แž€แžถแž“แŸ‹แž€แžถแžŸแŸ” แž™แŸ„แž„แž‘แŸ…แžแžถแž˜แžขแŸ’แž“แž€แž“แžทแž–แž“แŸ’แž’ แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แžšแžปแŸ†แžแŸ’แžŸแŸ‚แž“แŸƒแž€แžถแžŸแž‡แžปแŸ†แžœแžทแž‰แž“แžถแžกแžทแž€แžถ แž–แžฝแž€แž‚แŸแž“แžนแž„แž…แžถแž”แŸ‹แžŸแž‰แŸ’แž‰แžถ (แžœแžถแž‚แžฝแžšแžขแŸ„แž™แž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแž–แžธแžšแž”แŸ€แž”แžŠแŸ‚แž›แž€แžถแžŸแžŸแŸ’แžแžถแž”แŸ‹แž’แž˜แŸ’แž˜แžแžถแž“แžนแž„แž˜แžทแž“แž”แž„แŸ’แž€แžพแžแžŸแž‰แŸ’แž‰แžถ 77KHz แž‘แŸ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž€แžถแžšแž‘แž‘แžฝแž›แž‚แžบแž”แŸ’แžšแž แŸ‚แž›แž‡แžถแžŠแŸ„แž™แžŸแžถแžšแžขแžถแž˜แŸ‰แžผแž“แžทแž€)แŸ” แž“แŸ…แž›แžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžš Android 9 แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž“แŸแŸ‡แž˜แžทแž“แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž‘แžถแž›แŸ‹แžแŸ‚แžŸแŸ„แŸ‡แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžแŸ’แž‰แžปแŸ† - แžœแžถแž˜แžทแž“แž˜แžถแž“แžŸแŸ†แžกแŸแž„แž‘แŸ (แžฌแž”แŸ’แžšแž แŸ‚แž›แž‡แžถแžแŸ’แž‰แžปแŸ†แž˜แžทแž“แž”แžถแž“แžฎแžœแžถ - แžœแžถแž‚แžบ 77KHz แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž‘แžถแŸ†แž„แžขแžŸแŸ‹ :) แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž”แŸ’แžšแž แŸ‚แž›แž‡แžถแž“แžšแžŽแžถแž˜แŸ’แž“แžถแž€แŸ‹แž“แžนแž„แž˜แžถแž“แžŸแŸ†แžŽแžถแž„แž‡แžถแž„แŸ” แž‘แŸ„แŸ‡แž‡แžถแž™แŸ‰แžถแž„แžŽแžถแž€แŸแžŠแŸ„แž™แžขแŸ’แž“แž€แžแŸ’แž›แŸ‡แž’แŸ’แžœแžพแžฑแŸ’แž™แžแŸ’แž›แžฝแž“แž–แžฝแž€แž‚แŸแž€แŸ’แž›แžถแž™แž‡แžถแžงแž”แž€แžšแžŽแŸแž”แž„แŸ’แž€แžพแžแžŸแž‰แŸ’แž‰แžถ DCF แž–แŸแž‰แž›แŸแž‰แžŠแŸ‚แž›แž„แžถแž™แžŸแŸ’แžšแžฝแž›แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แž„แŸ’แž€แžพแžแž“แŸ…แž›แžพ Arduino แžฌ ESP32 แžŠแžผแž…แž‚แŸ’แž“แžถ:

DCF77: แžแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž‰แŸ’แž‰แžถแž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž™แŸ‰แžถแž„แžŠแžผแž…แž˜แŸ’แžแŸแž…?
(แž”แŸ’แžšแž—แž– sgfantasytoys.wordpress.com/2015/05/13/synchronize-radio-controlled-watch-without-access)

แžŸแŸแž…แž€แŸ’แžแžธแžŸแž“แŸ’แž“แžทแžŠแŸ’แž‹แžถแž“

แž”แŸ’แžšแž–แŸแž“แŸ’แž’ DCF แž”แŸ’แžšแŸ‚แž‘แŸ…แž‡แžถแž–แžทแžแž‡แžถแžŸแžถแž˜แž‰แŸ’แž‰ แž“แžทแž„แž„แžถแž™แžŸแŸ’แžšแžฝแž›แŸ” แžŠแŸ„แž™แž˜แžถแž“แž‡แŸ†แž“แžฝแž™แž–แžธแžขแŸ’แž“แž€แž‘แž‘แžฝแž›แžŸแžถแž˜แž‰แŸ’แž‰ แž“แžทแž„แžแŸ„แž€ แžขแŸ’แž“แž€แžขแžถแž…แž˜แžถแž“แž–แŸแž›แžœแŸแž›แžถแž–แžทแžแž”แŸ’แžšแžถแž€แžŠแž‡แžถแž“แžทแž…แŸ’แž… แž“แžทแž„แž‚แŸ’แžšแž”แŸ‹แž‘แžธแž€แž“แŸ’แž›แŸ‚แž„ แž‡แžถแž€แžถแžšแž–แžทแžแž“แŸ…แž€แŸ’แž“แžปแž„แžแŸ†แž”แž“แŸ‹แž‘แž‘แžฝแž›แž—แŸ’แž‰แŸ€แžœแŸ” แžœแžถแž แžถแž€แŸ‹แž”แžธแžŠแžผแž…แž‡แžถ แž‘แŸ„แŸ‡แž”แžธแž‡แžถแž˜แžถแž“แž€แžถแžšแžšแžธแž€แžšแžถแž›แžŠแžถแž›แž‡แžถแžŒแžธแž‡แžธแžแž› แž“แžทแž„แžขแŸŠแžธแž“แž’แžบแžŽแŸ‚แžแž“แŸƒแžขแŸ’แžœแžธแŸ—แž€แŸแžŠแŸ„แž™ แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžŠแŸแžŸแžถแž˜แž‰แŸ’แž‰แž”แŸ‚แž”แž“แŸแŸ‡แž“แžนแž„แž˜แžถแž“แžแž˜แŸ’แžšแžผแžœแž€แžถแžšแž€แŸ’แž“แžปแž„แžšแž™แŸˆแž–แŸแž›แž™แžผแžšแŸ”

แž”แŸ’แžšแž—แž–: www.habr.com

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹