เบชเบฐเบเบฒเบเบเบต Habr.
เบญเบฒเบเบเบฐเปเบเบฑเบเบซเบผเบฒเบเบเบปเบเบเบตเปเบเบทเปเปเบกเบเบซเบผเบทเบชเบฐเบเบฒเบเบตเบชเบฐเบเบฒเบเบญเบฒเบเบฒเบเปเบเปเปเบซเบฑเบเปเบกเบเบเบงเบเบเบธเบกเบงเบดเบเบฐเบเบธเบซเบผเบทเปเบกเปเบเบฐเบเบฑเปเบเปเบฅเปเบเปเปเบกเบเบเบฐเบฅเปเบฒเบกเบฐเบเบนเบขเบนเปเปเบเปเบเบทเปเบญเบเบซเบธเปเบกเบซเปเป. เบเบตเปเปเบกเปเบเบชเบฐเบเบงเบเบซเบผเบฒเบ, เปเบเบฒเบฐเบงเปเบฒเบเปเบฒเบเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเบงเบฒเบเปเบกเบเปเบชเปเปเบเบฐ, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเปเบงเบฅเบฒเปเบเบซเบเบถเปเบ, เบกเบฑเบเบเบฐเบเบฑเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบฒเบกเปเบงเบฅเบฒเบเบตเปเปเบเปเบเบญเบ.
เปเบซเปเบเบงเบเปเบฎเบปเบฒเบเบดเบเบญเบญเบเบงเปเบฒเบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเปเบเบงเปเบเปเบฅเบฐเบเบฝเบเบเบปเบงเบเบญเบเบฅเบฐเบซเบฑเบเปเบ Python.
เบกเบตเบฅเบฐเบเบปเบ synchronization เปเบงเบฅเบฒเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ. เบเบตเปเบเบดเบเบปเบกเบเบตเปเบชเบธเบเปเบเปเบญเบตเบฃเบปเบเปเบกเปเบเบฅเบฐเบเบปเบเปเบขเบเบฅเบฐเบกเบฑเบ
เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเบตเปเบเบฝเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเบเบฐเบเปเบฝเบงเบเบฑเบ DCF77.
เบเบฒเบเบฎเบฑเบเบชเบฑเบเบเบฒเบ
DCF77 เปเบเบฑเบเบชเบฐเบเบฒเบเบตเบเบทเปเบเบเบฒเบงเบเบตเปเบเปเบฒเปเบเบตเบเบเบฒเบเบขเบนเปเบเบตเปเบเบงเบฒเบกเบเบตเปเบเบญเบ 77.5 kHz เปเบฅเบฐเบชเบปเปเบเบชเบฑเบเบเบฒเบเปเบเปเบกเบเบนเบเบเบงเบฒเบกเบเบงเปเบฒเบเบเบญเบเบเบงเบฒเบ. เบชเบฐเบเบฒเบเบต 50KW เบเบฑเปเบเบขเบนเปเบซเปเบฒเบเบเบฒเบ Frankfurt 25 เบเบดเปเบฅเปเบกเบฑเบ, เบกเบฑเบเปเบเปเปเบฅเบตเปเบกเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบเบต 1959, เปเบฅเบฐเปเบเบเบต 1973 เบเปเปเบกเบนเบเบงเบฑเบเบเบตเปเบเปเบเบทเบเปเบเบตเปเบกเปเบเบปเปเบฒเปเบเปเบงเบฅเบฒเบเบตเปเปเบเปเบเบญเบ. เบเบงเบฒเบกเบเบฒเบงเบเบทเปเบเบขเบนเปเบเบตเปเบเบงเบฒเบกเบเบตเปเบเบญเบ 77 KHz เปเบกเปเบเบเบฒเบงเบซเบผเบฒเบ, เบชเบฐเบเบฑเปเบ เบเบฐเปเบฒเบเบเบญเบเบชเบฐเปเบฒเบกเบชเบฒเบเบญเบฒเบเบฒเบเปเบกเปเบเบเปเบญเบเบเปเบฒเบเปเปเบฒเบฐเบชเบปเบก (เบฎเบนเบเบเบฒเบ Wikipedia):
เบเปเบงเบเปเบชเบปเบฒเบญเบฒเบเบฒเบเปเบฅเบฐเบเบฐเบฅเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบง, เบเบทเปเบเบเบตเปเบฎเบฑเบเปเบเบเบเบงเบกเปเบญเบปเบฒเปเบเบทเบญเบเบเบฑเบเบซเบกเบปเบเบเบญเบเปเบญเบตเบฃเบปเบ, เปเบเบฅเบฒเบฃเบนเบ, เบขเบนเปเบเบฅเบเปเบฅเบฐเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบฅเบฑเบเปเบเบ.
เบเบธเบเบเบปเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบถเบเบชเบฑเบเบเบฒเบเปเบเป. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเบฝเบเปเบเปเปเบเบซเบฒเบเบนเปเบฎเบฑเบเบญเบญเบเปเบฅเบเป
เบขเบนเปเบเบตเปเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบปเบเบเบธเปเบกเบเบฒเบงเปเบซเบฅเบเปเบฅเบฐเบเบฑเบเบเบถเบเบเบดเปเบเบชเปเบงเบเบเบฒเบงเบซเบผเบฒเบเบเบฒเบเบต. เปเบเปเบเบญเบ, เบเปเบฒเบเปเบฒเบเบกเบตเบเบปเบงเบฎเบฑเบ "เบเบตเปเปเบเปเบเบดเบ" เบเบตเปเบชเบฒเบกเบฒเบเบเบฑเบเบเบถเบเบเบงเบฒเบกเบเบตเป 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()
เบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเปเบกเบเบนเบเบเบงเบฒเบกเบเบงเปเบฒเบเปเบซเบเปเบเบปเบเบเบฐเบเบด:
เปเบเบทเปเบญเปเบฎเบฑเบเปเบซเปเบเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบเบเปเบฒเบเบเบถเปเบ, เปเบซเปเปเบญเบปเบฒเบเบญเบเบชเบฑเบเบเบฒเบเปเบเบเปเบเป Hilbert transform:
analytic_signal = signal.hilbert(data)
A = np.abs(analytic_signal)
plt.plot(A[:100000])
เบเบฐเบซเบเบฒเบเบเบปเบ:
เบเปเปเบซเปเบซเบผเบธเบเบเบฒเบเบฅเบฐเบเบฒเบเบชเบฝเบเบฅเบปเบเบเบงเบเปเบเบเบเปเบฒเปเบเปเบเบปเบงเบเบญเบเบเปเปเบฒเบเปเบฒเบ, เปเบฅเบฐเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบเบเบดเบเปเบฅเปเบเปเบฒเบชเบฐเปเบฅเปเบ, เปเบเบดเปเบเบเบฐเปเบเบฑเบเบเบฐเปเบซเบเบเบเปเปเบกเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบงเบดเปเบเบฒเบฐ.
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
เบเบปเบเปเบเปเบฎเบฑเบ (เปเบชเบฑเปเบเบชเบตเปเบซเบผเบทเบญเบ): เปเบเบฑเบเบชเบฑเบเบเบฒเบเบเบทเปเบเปเบเบทเบญเบเบชเบตเปเบซเบฅเปเบฝเบกเบเบตเปเบเปเบญเบเบเปเบฒเบเบเปเบฒเบเบเบตเปเบเบฐเบงเบดเปเบเบฒเบฐ.
เบเบฒเบเปเบเบเบงเบดเปเบเบฒเบฐ
เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เบเปเบฒเบ เบเบณ เปเบเบฑเบเบเปเบญเบเปเบเปเบฎเบฑเบ เบฅเบณ เบเบฑเบเบเปเบญเบ. เปเบเบเบชเปเบฒเบเบชเบฑเบเบเบฒเบเบเบปเบงเบกเบฑเบเปเบญเบเปเบกเปเบเบเปเบฒเบเบเบฒเบเบซเบผเบฒเบ.
เบเปเบฒเบกเบฐเบเบญเบเปเบเปเบเบญเบญเบเปเบเบฑเบเปเบฅเบเบฐเบเบตเบชเบญเบ. เบเปเบฒเปเบฅเบเบฐเบซเปเบฒเบเบฅเบฐเบซเบงเปเบฒเบเบเปเบฒเบกเบฐเบเบญเบเปเบกเปเบ 0.1s (เปเบเบฑเปเบ: เบเบงเบฒเบกเบเบฒเบงเบเบญเบเบเปเบฒเบกเบฐเบเบญเบเปเบญเบเปเบกเปเบ 0.9s), เปเบเบตเปเบก โ0โ เปเบชเปเบฅเปเบฒเบเบฑเบเบเบดเบ; เบเปเบฒเปเบฅเบเบฐเบซเปเบฒเบเปเบกเปเบ 0.2s (เปเบเบฑเปเบ: เบเบงเบฒเบกเบเบฒเบงเปเบกเปเบ 0.8s), เปเบเบตเปเบก โ1โ. เปเบเบเบญเบเบเปเบฒเบเบเบญเบเปเบเปเบฅเบฐเบเบฒเบเบตเปเบกเปเบเบชเบฐเปเบเบเปเบเบเบเปเบฒเบกเบฐเบเบญเบ "เบเบฒเบง", เบเบฒเบง 2s, เบฅเปเบฒเบเบฑเบเบเบดเบเปเบเปเบเบทเบเบเบฑเบเปเบเบฑเบเบชเบนเบ, เปเบฅเบฐเบเบฒเบเบเบทเปเบกเบเปเปเบกเบนเบเปเบฅเบตเปเบกเบเบปเปเบเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ.
เบเปเบฒเบเปเบเบดเบเบเบตเปเปเบกเปเบเบเปเบฒเบเบเบตเปเบเบฐเบเบฝเบเปเบ 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
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบฅเปเบฒเบเบฑเบเบเบญเบ bits, เปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบฅเบฑเบเบชเบญเบเบงเบดเบเบฒเบเบตเบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเบตเป:
0011110110111000001011000001010000100110010101100010011000
0001111100110110001010100001010000100110010101100010011000
เปเบเบเบงเบดเบเบตเบเบฒเบเบเบฒเบ, เบกเบฑเบเบซเบเปเบฒเบชเบปเบเปเบเบเบตเปเบชเบฑเบเบเบฒเบเบเบฑเบเบกเบต "เบเบฑเปเบเบเบตเบชเบญเบ" เบเบญเบเบเปเปเบกเบนเบ. เบฅเปเบฒเบเบฑเบเบเบดเบเบเบฑเบเบเบทเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเปเบเบเปเบเป
เบเบฑเปเบเบเบญเบเบชเบธเบเบเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ: เปเบเปเบฎเบฑเบเบเปเปเบกเบนเบเบเบปเบงเบเบดเบ. Bits เบเบทเบเบชเบปเปเบเบเปเปเบซเบเบถเปเบเบเบฑเปเบเบเปเปเบงเบดเบเบฒเบเบต, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบกเบตเบเปเบฒเบเบงเบเบเบฑเบเบซเบกเบปเบ 59 bits, เปเบเบดเปเบเบเปเบญเบเบเปเบฒเบเบซเบผเบฒเบเบเบญเบเบเปเปเบกเบนเบเบเบทเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบ:
เบเบดเบเปเบเปเบเบทเบเบญเบฐเบเบดเบเบฒเบเบขเบนเปเปเบ
เบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเบเปเบญเบเบเบฒเบเบเบปเบเบฅเบญเบเบเปเบงเบเบเบปเบเปเบญเบ, เบฅเบฐเบซเบฑเบเบเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบเปเบกเปเบเปเบซเปเบเบฒเบเปเบเป 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
เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบเบฑเปเบเปเบกเปเบ magic เบเบฑเบเบซเบกเบปเบ. เบเบฐเปเบซเบเบเบเบญเบเบฅเบฐเบเบปเบเบเบฑเปเบเบเปเบฒเบงเปเบกเปเบเบงเปเบฒเบเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบเปเบกเปเบเบเปเบฒเบเบเบฒเบเบเบตเปเบชเบธเบเปเบฅเบฐเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบเบธเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒ microcontroller เบเบตเปเบเปเบฒเบเบเบฒเบเบเบตเปเบชเบธเบ. เบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเบเบฑเบเบเบงเบฒเบกเบเบฒเบงเบเบญเบเบเปเบฒเบกเบฐเบเบญเบ, เบชเบฐเบชเบปเบก 60 bits, เปเบฅเบฐเปเบเบเบญเบเบเปเบฒเบเบเบญเบเปเบเปเบฅเบฐเบเบฒเบเบตเบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบเบตเปเปเบเปเปเบงเบฅเบฒเบเบตเปเปเบเปเบเบญเบ. เปเบกเบทเปเบญเบเบฝเบเบเบฝเบเบเบฑเบเบงเบดเบเบตเบเบฒเบเบญเบทเปเบเปเบเบญเบ synchronization เบเบตเปเปเบเปเปเบงเบฅเบฒ (GPS, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, เบซเบผเบทเบเบฃเบฐเปเบเบปเปเบฒเบซเปเบฒเบก, เบญเบดเบเปเบเบตเปเบเบฑเบ:), เบเบฒเบ synchronization เบงเบดเบเบฐเบเบธเบเบฑเปเบเบเปเบฒเบงเบฎเบฝเบเบฎเปเบญเบเปเบซเปเบกเบตเปเบเบทเบญเบเบเปเปเบกเบตเปเบเบเปเบฒ - เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, เบชเบฐเบเบฒเบเบตเบชเบฐเบเบฒเบเบญเบฒเบเบฒเบเปเบฎเบทเบญเบเบเบปเบเบเบฐเบเบดเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฐเบกเบฒเบเบซเบเบถเปเบเบเบตเปเบ 2 เบซเบกเปเปเปเบ AA. เปเบเบฒเบฐเบชเบฐเบเบฑเปเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒ wristwatches เปเบกเปเบเปเบฎเบฑเบเบเปเบงเบเบเบฒเบ synchronization เบงเบดเบเบฐเบเบธ, เปเบเปเบเบญเบ, เปเบเบดเปเบเบเบฒเบซเบผเบทเบชเบฐเบเบฒเบเบตเบเบฐเบซเบเบปเบ.
เบเบงเบฒเบกเบชเบฐเบเบงเบเบชเบฐเบเบฒเบเปเบฅเบฐเบเบงเบฒเบกเบเปเบฒเบเบเบฒเบเบเบญเบ DCF เบเบฑเบเบเบถเบเบเบนเบเบเบนเปเบเบตเปเบกเบตเบเบงเบฒเบกเบเบฐเบเบทเบฅเบทเบฅเบปเปเบ DIY. เบชเปเบฒเบฅเบฑเบเบเบฝเบเปเบเป $ 10-20 เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบทเปเปเบกเบเบนเบเปเบชเบปเบฒเบญเบฒเบเบฒเบเบเบตเปเบเบฝเบกเบเปเบญเบกเบเบตเปเบกเบตเปเบเบทเปเบญเบเบฎเบฑเบเปเบฅเบฐเบเบปเบเบเบฐเบฅเบดเบ TTL, เปเบเบดเปเบเบชเบฒเบกเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบ Arduino เบซเบผเบทเบเบปเบงเบเบงเบเบเบธเบกเบญเบทเปเบเป.
เบเบฝเบเปเบฅเปเบงเบชเปเบฒเบฅเบฑเบ Arduino
เบเบนเปโเบเบตเปโเบเบฒเบโเบเบฐโเบซเบเบฒโเปเบเบดเบโเปเบกเปเบโเบงเปเบฒโเบชเบฒโเบกเบฒเบโเบเบปเบโเบฅเบฐโเบเบฑเบโเปเบกเบโเปเบกเปโเปเบเบปเปเบฒโเบเบญเบโเปเบเบปเบฒโเปเบเบปเปเบฒโเปเบเบโเบเบฒเบโเบเบดเบโเบเบฑเปเบโเบเบปเบโเปเบโเปเบซเบกเปโเบเบตเปโเบกเบตโเบเบฒเบ synchronization เบงเบดโเบเบฐโเบเบธโ:
เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเบซเบเบถเปเบเปเบ ebay เปเบเบเปเบเปเบเปเบฒเบชเปเบฒเบเบฑเบ "เบเบฒเบเปเบเบทเปเบญเบเปเบซเบงเบเบงเบเบเบธเบกเบงเบดเบเบฐเบเบธ".
เปเบฅเบฐเบชเบธเบเบเปเบฒเบ, hack เบเบตเบงเบดเบเบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเปเบเปเบญเปเบฒเบเบเบตเปเปเบ. เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเปเบกเบตเปเบเบทเปเบญเบเบชเบปเปเบเบชเบฑเบเบเบฒเบเบงเบดเบเบฐเบเบธเบเบฝเบงเปเบเบชเบญเบเบชเบฒเบกเบเบฑเบเบเบดเปเบฅเปเบกเบฑเบเบเปเปเปเบ, เบกเบฑเบเบเปเปเบเบฒเบเบเบตเปเบเบฐเบชเปเบฒเบเบชเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบงเบเปเบงเบเบเบปเบเปเบญเบ. เบกเบตเปเบเบเบเบฒเบเบขเบนเปเปเบ Google Play เบเบตเปเปเบญเบตเปเบเบงเปเบฒ "DCF77 Emulator" เบเบตเปเบชเบปเปเบเบชเบฑเบเบเบฒเบเปเบเบซเบฒเบซเบนเบเบฑเบ. เบญเบตเบเบเบฒเบกเบเบนเปเบเบฝเบ, เบเปเบฒเบเปเบฒเบเปเบญเบปเบฒเบชเบฒเบเบเบญเบเบซเบนเบเบฑเบเบขเบนเปเบฎเบญเบเปเบกเบ, เบเบงเบเบกเบฑเบเบเบฐเบเบฑเบเบชเบฑเบเบเบฒเบ (เบกเบฑเบเบซเบเปเบฒเบชเบปเบเปเบเปเบเบงเปเบ, เปเบเบฒเบฐเบงเปเบฒเบซเบนเบเบฑเบเบเปเบฒเบกเบฐเบเบฒเบเบฐเบเปเปเบเบฐเบฅเบดเบเบชเบฑเบเบเบฒเบ 77KHz, เปเบเปเบเบฒเบเบฎเบฑเบเปเบกเปเบเบญเบฒเบเบเบฐเปเบเบฑเบเบเปเบญเบเบเบงเบฒเบกเบเบปเบกเบเบฝเบงเบเบฑเบ). เปเบ Android 9, เปเบเบฅเปเบเบฅเบกเบเปเปเปเบเปเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบซเบกเบปเบเบชเปเบฒเบฅเบฑเบเบเปเบญเบ - เบกเบตเบเบฝเบเปเบเปเบเปเปเบกเบตเบชเบฝเบ (เบซเบผเบทเบเบฒเบเบเบตเบเปเบญเบเบเปเปเปเบเปเบเบดเบ - เบกเบฑเบเปเบกเปเบ 77KHz, เบซเบผเบฑเบเบเบฒเบเบเบตเปเบเบฑเบเบซเบกเบปเบ:), เปเบเปเบเบฒเบเบเบตเบเบปเบเบญเบฒเบเบเบฐเปเบเบเบเบตเบเบงเปเบฒ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบฒเบเบเบปเบเปเบฎเบฑเบเปเบซเปเบเบปเบงเปเบญเบเปเบเบฑเบเปเบเบทเปเบญเบเบชเปเบฒเบเบชเบฑเบเบเบฒเบ DCF เปเบเบฑเบกเบฎเบนเบเปเบเบ, เปเบเบดเปเบเบเปเบฒเบเบเบตเปเบเบฐเปเบฎเบฑเบเปเบ Arduino เบซเบผเบท ESP32 เบเบฝเบงเบเบฑเบ:
(เปเบซเบผเปเบเบเปเปเบกเบนเบ
เบชเบฐเบซเบฅเบธเบ
เบฅเบฐเบเบปเบ DCF เปเบเปเบเบฒเบเปเบเบฑเบเบเปเบฒเบเบเบฒเบเปเบฅเบฐเบชเบฐเบเบงเบเบซเบผเบฒเบ. เบเปเบงเบเบเบงเบฒเบกเบเปเบญเบเปเบซเบฅเบทเบญเบเบญเบเปเบเบทเปเบญเบเบฎเบฑเบเบเบตเปเบเปเบฒเบเบเบฒเบเปเบฅเบฐเบฅเบฒเบเบฒเบเบทเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบกเบตเปเบงเบฅเบฒเบเบตเปเปเบเปเบเบญเบเบชเบฐเปเบซเบกเบตเปเบฅเบฐเบขเบนเปเบเบปเปเบงเบเบธเบเปเบซเปเบ, เปเบเปเบเบญเบเบขเบนเปเปเบเบเบทเปเบเบเบตเปเบฎเบฑเบ. เบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฒเบเปเบเปเบเบฐเบซเบเบฒเบเบเบดเบเบดเบเบญเบเปเบฅเบฐเบญเบดเบเปเบเบตเปเบเบฑเบเบเบญเบเบชเบดเปเบเบเปเบฒเบเป, เบเบฒเบเปเบเปเปเบเบเปเบฒเบเปเบเบฑเปเบเบเปเบฒเบงเบเบฐเบกเบตเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเปเบเบฑเบเปเบงเบฅเบฒเบเบปเบเบเบฒเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com