ืืขืื ืืืืจ.
ืืืกืืึธืืข ืคืืืข ืืืืก ืงืืืคื ืึท ืืืึทื ืึธืืขืจ ืืืขืืขืจ ืกืืึทื ืฆืืข ืืึธืื ืืขืืขื ืื ืจืึทืืืึธ ืงืึทื ืืจืึธืืื ืืืืืขืจ ืึธืืขืจ ืืคืืื ืึทืืึธืืืฉืข ืืืืืขืจ ืืึธืืึธ ืืืืฃ ืื ืคึผืึทืงืงืึทืืื ื. ืืึธืก ืืื ืืืืขืจ ืืึทืงืืืขื, ืืืืึทื ืืืจ ื ืึธืจ ืืึทืจืคึฟื ืฆื ืฉืืขืื ืื ืืืืืขืจ ืืืืฃ ืื ืืืฉ, ืืื ื ืึธื ืึท ืืฉืขืช ืขืก ืืืขื ืืืืืึธืืึทืืืฉ ืกืืจืืืขืจื ืฆื ืื ืคึผืื ืืืขื ืฆืืื.

ืืื ืก ืคืืืืจ ืืืืก ืืื ืขืก ืึทืจืืขื ืืื ืฉืจืืึทืื ืึท ืืืงืึธืืืขืจ ืืื ืคึผืืืืึธื.
ืขืก ืืขื ืขื ืคืึทืจืฉืืืขื ืข ืฆืืื ืกืื ืืงืจืึทื ืึทืืืืฉืึทื ืกืืกืืขืืขื. ืื ืืขืจืกื ืคืึธืืงืก ืืื ืืืืจืึธืคึผืข ืืื ืื ืืืึทืืฉ ืกืืกืืขื , ืืึทืคึผืึทื ืืื ืืืึทื ืืืืื ืกืืกืืขื , ืืื ืื USA ืขืก ืืื ืึท ืกืืกืืขื , ืืื ืืืื ืืืืืืขืจ. ืืืืึทืืขืจ, ืื ืืขืฉืืืืข ืืืขื ืืืื ืืืขืื DCF77, ืืื ืื ืืขืจืกื ืืึทืืืึทืืืง ืืื ืฆืืืจืืืืขื ืคึฟืึทืจ ืึธืคึผืืจืึธื ืืื ืขืืืขืืข ืขืจืืขืจ ืืื ืื ืืืืจืืคืขืืฉืข ืืืื ืคืื ืจืืกืืึทื ื ืืื ืืจืืืืงืข ืืขื ืืขืจ (ืจืขืืืืึทื ืฅ ืคืื ืื ืคืึทืจ ืืืจื ืงืขื ืืึธืื ืื ืคืึทืจืงืขืจื ืืืื ืื ื, ืึธืืขืจ, ืืื, ืืื ืงืขืจ, ืงืขื ืขื ืืึทืงืืืขื ืืื ืคืื ืึทื ืืขืจืงืืืึทืื ืื ืืึทืคึผืึทื ืืฉ ืกืืื ืึทื;).
ืึทืืฅ ืืขืฉืจืืื ืืื ืื ืืืขื ืืืื ืืืขืื ืื DCF77.
ืกืืื ืึทื ืึธืคึผืืจืึธื
DCF77 ืืื ืึท ืืึทื ื ืืืืึทืืืข ืกืืึทื ืฆืืข ืึทืคึผืขืจืืืืื ื ืืื ืึท ืึธืคืืงืืึทื ืคืื 77.5 ืื ืืื ืืจืึทื ืกืืืืื ื ืกืืื ืึทืื ืืื ืึทืืคึผืืืืื ืืึทืืืฉืึทืืืืฉืึทื. ืื 50KW ืกืืื ืฆืืข ืืขืคืื ื ืืื 25 ืงืืืืืขืืขืจ ืคืื ืคืจืื ืงืคืืจื, ืื ืืื ืื ืืขืืืืื ืืคืขืจืืจื ืืื 1959, ืืื ืืื 1973 ืืื ืืืืื ืืื ืคืืจืืืฆืืข ืฆืืืขืืืืื ืืขืืืืจื ืฆื ืื ืืขื ืื ืฆืืื. ืื ืืืืืืืืขื ืื ืืื ืึท ืึธืคืืงืืึทื ืคืื 77 KHz ืืื ืืืืขืจ ืืึทื ื, ืึทืืื ืื ืืืืขื ืฉืึทื ื ืคืื ืื ืึทื ืืขื ืข ืคืขืื ืืขื ืขื ืืืื ืืึทื ืฅ ืืืึทืืืฉ (ืคืึธืืึธ ืคึฟืื ืืืืงืืคึผืขืืืข):

ืืื ืึทืืึท ืึทื ืึทื ืืขื ืข ืืื ืืึทืื ืึทืจืืึทื ืฉืจืืึทื, ืืขืจ ืึธืคึผืืจืึธื ืืขืื ื ืงืึธืืืขืจืก ืึผืืขื ืึทืืข ืคืื โโืืืืจืึธืคึผืข, ืืขืืึทืจืืก, ืืืงืจืืื ื ืืื ืืืื ืคืื ืจืืกืืึทื ื.

ืืืขืจ ืขืก ืื ืงืขื ืขื ืจืขืงืึธืจืืืจื ืึท ืกืืื ืึทื. ืฆื ืืึธื ืืึธืก, ื ืึธืจ ืืืื ืฆื ืื ืึธื ืืืื ืืคื ืขืืขืจ , ืืืืกืงืืืึทืื ืื ืึธืคืืงืืึทื 76.5KHz ืืื ืืกื ืืึทืืืฉืึทืืืืฉืึทื ืืึธืจื. ื ืืืื ืืึธื ืขืคืขื ืขื ืืืึธืก ืงืืงื ืขืคึผืขืก ืืื ืืึธืก:

ืืึธ ืืืจ ืืจืืงื ืื ืืจืืคืงืืคืืข ืงื ืขืคึผื ืืื ืจืขืงืึธืจืืืจื ืึท ืคืจืึทืืืขื ื ืขืืืขืืข ืืื ืื ืืึทื ื. ืืึธื, ืืืื ืืืจ ืืึธื ืึท "ืคืึทืงืืืฉ" ืืคื ืขืืขืจ ืืืึธืก ืืื ืืืืืืช ืฆื ืจืขืงืึธืจืืืจื ืื 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 ืืืขืจืืึทืื:
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.1 ืก (ื"ื ืื ืืขื ื ืคืื ืื ืืืืคืขืง ืืื ืืื 0.9 ืก), ืืืืื "0" ืฆื ืื ืืืกื ืกืืงืืืึทื ืก; ืืืื ืื ืืืกืืึทื ืกืข ืืื 0.2 ืก (ื"ื ืื ืืขื ื ืืื 0.8 ืก), ืืืืื "1". ืืขืจ ืกืืฃ ืคืื ืืขืืขืจ ืืื ืื ืืื ืื ืืขืืืืื ืืืจื ืึท "ืืึทื ื" ืืืืคืขืง, 2 ืก ืืึทื ื, ืื ืืืกื ืกืืงืืืึทื ืก ืืื ืืึทืฉืืขืืืง ืฆื ื ืื, ืืื ืคืืืื ื ืืืืื ืืืืืขืจ.
ืื ืืืืื ืืื ืืจืื ื ืฆื ืฉืจืืึทืื ืืื ืคึผืืืืึธื.
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 ืืืื, ืืื ืืืึธืก ืืึทื ืฅ ืึท ืคึผืืึทืฅ ืคืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืื ืงืึธืืขื:

ืื ืืืืื ืืขื ืขื ืืืกืงืจืืืื ืืื , ืืื ืืื ืืขื ืขื ืืึทื ืฅ ืืฉืืงืึทืืืข. ืืขืจ ืขืจืฉืืขืจ 15 ืืืื ืืขื ืขื ื ืืฉื ืืขื ืืฆื, ืืึธืืฉ ืขืก ืืขื ืขื ืืขืืืขื ืคึผืืึทื ื ืฆื ื ืืฆื ืืื ืคึฟืึทืจ ืืืืจืขื ืื ื ืกืืกืืขืืขื ืืื ืืืื ืคืึทืจืืืืืืงืื ื. ืืืกื A1 ืื ืืืงืืืฅ ืึทื ืืขืจ ืืืืืขืจ ืืืขื ืืืืฉื ืฆื ืืึธืืืืื ืฉืคึผืึธืจื ืฆืืื ืืื ืืขืจ ืืืืึทืืขืจ ืฉืขื. ืืืกื ืึท2 ืื ืืืงืืืฅ ืึทื ืึทื ื ืึธื , ืืืืก ืืืขืจื ืืืื ืืขื ืืฆื ืฆื ืกืืจืืืขืจื ืฆืืื ืืืื ืืขืจ ืขืจื'ืก ืจืืืืฆืืข. ืื ืจืืขื ืืืื ืงืึธืืืจื ืฉืขื, ืืื ืื, ืกืขืงืื ืืขืก ืืื ืืึทืืข.

ืคึฟืึทืจ ืื ืืืืก ืืืืื ืฆื ืขืงืกืคึผืขืจืืืขื ื ืืืืฃ ืืืืขืจ ืืืืื, ืื ืืืงืึธืืืื ื ืงืึธื ืืื ืืขืืขืื ืืื ืืขืจ ืื ืกืคึผืืืืขืจ.
ืืงืืจ ืงืึธื
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
ืืื ืคืึทืงื, ืืึธืก ืืื ืึทืืข ืื ืืึทืืืฉ. ืื ืืืึทืืข ืคืื โโืึทืืึท ืึท ืกืืกืืขื ืืื ืึทื ืืืงืึธืืืื ื ืืื ืืึธืจ ืคึผืฉืื ืืื ืงืขื ืขื ืืืื ืืขืืื ืืืืฃ ืงืืื, ืืคืืื ืื ืกืืืคึผืืึทืกื ืืืงืจืึธืงืึธื ืืจืึธืืืขืจ. ืืืจ ืคืฉืื ืฆืืืื ืื ืืขื ื ืคืื ืื ืคึผืึทืืกืื, ืึธื ืงืืืึทืื 60 ืืืื, ืืื ืืื ืื ืกืืฃ ืคืื ืืขืืขืจ ืืื ืื ืืืจ ืืึทืงืืืขื ืื ืคึผืื ืืืขื ืฆืืื. ืืื ืคืืจืืืืื ืฆื ืื ืืขืจืข ืืขืืืื ืคืื ืฆืืื ืกืื ืืงืจืึทื ืึทืืืืฉืึทื (ืืคึผืก, ืืืฉื, ืึธืืขืจ ืืืืื, ืื ืืื ืืขืจื ืขื:), ืึทืืึท ืจืึทืืืึธ ืกืื ืืงืจืึทื ืึทืืืืฉืึทื ืจืืงืืืืืขืจื ืึผืืขื ืงืืื ืขืืขืงืืจืข - ืืืฉื, ืึท ืจืขืืืืขืจ ืืืื ืืืขืืขืจ ืกืืึทื ืฆืืข ืืืืคื ืคึฟืึทืจ ืืืขืื ืึท ืืึธืจ ืืืืฃ 2 ืึทืึท ืืึทืืขืจืื. ืืขืจืืืขืจ, ืืคืืื ืืืจืืกืืืืึทืืฉืื ืืขื ืขื ืืขืืืื ืืื ืจืึทืืืึธ ืกืื ืืงืจืึทื ืึทืืืืฉืึทื, ื ืื ืฆื ืืขืจืืึธื ืขื, ืคืื ืงืืจืก, ืืืึทื ื ืืืึทืืฉืื ืึธืืขืจ ืืึทืก ืกืืึทื ืฆืืข ืืืึทืืฉืื.
ืื ืงืึทื ืืืื ืืึทื ืก ืืื ืคึผืึทืฉืืขืก ืคืื DCF ืืืื ืฆืืฆืืขื ืืื ืขื ืืืืืึทืกืฅ. ืคึฟืึทืจ ืืืืื $ 10-20 ืืืจ ืงืขื ืขื ืงืืืคื ืึท ืคืึทืจืืืง ืึทื ืืขื ืข ืืึธืืืืข ืืื ืึท ืคืึทืจืืืง ืืคื ืขืืขืจ ืืื TTL ืจืขืืืืืึทื, ืืืึธืก ืงืขื ืขื ืืืื ืงืึธื ื ืขืงืืขื ืฆื ืึทื Arduino ืึธืืขืจ ืื ืืขืจืข ืงืึธื ืืจืึธืืืขืจ.

ืฉืืื ืืขืฉืจืืื ืคึฟืึทืจ Arduino . ืึธืืขืจ, ืขืก ืืื ืฉืืื ืืืงืื ื ืึทื ืงืืื ืขื ืื ืืืึธืก ืืืจ ืืึธื ืืืืฃ ืึท ืืืงืจืึธืงืึธื ืืจืึธืืืขืจ, ืืืจ ืขื ืืืงื ืืื ืึท ืืืืืขืจ ืึธืืขืจ ืึท ืืืขืืขืจ ืกืืึทื ืฆืืข. ืืื ืึทืืึท ืึท ืืืื, ืืึทืงืืืขื ืื ืคึผืื ืืืขื ืฆืืื ืืื ืืึทืงืข ืืจืื ื, ืฆืืืขืฉืืขืื, ืคืื ืงืืจืก, ืืืจ ืืขื ื ืืื ืืขืจ ืึธืคึผืืจืึธื ืืขืื ื. ื ื, ืืืจ ืงืขื ืขื ืืขื ืืขื ืื ืื ืกืงืจืืคึผืฉืึทื "ืึทืืึธืืืฉืข ืืืืืขืจ" ืืืืฃ ืืืื ืืืึทื, ืืื ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื ืืขืจืงืืขืจื ืฆื ืึทืืขืืขื ืึทื ืื ืืืื ืืื ืืึทืงืข ืกืื ืืงืจืึทื ืืืื ืืื ืึท ืึทืืึธืืืฉืข ืืืืืขืจ.
ืื ืืืืก ืืืืื ืงืขื ืขื ืืคืืื ืึทืคึผืืจืืื ืืืืขืจ ืึทืื ืืึธืืข ืก ืืืึทื ืืืจื ืื ืกืืึธืืื ื ืึท ื ืืึทืข ืืขืงืึทื ืืืึทื ืืื ืจืึทืืืึธ ืกืื ืืงืจืึทื ืึทืืืืฉืึทื:

ืืืจ ืงืขื ืขื ืืขืคึฟืื ืขื ืืืื ืขืจ ืืืืฃ ืขืืืึท ื ืืฆื ืื ืืขืจืืื ืขื "ืจืึทืืืึธ ืงืึทื ืืจืึธืืื ืืึทืืืขืืื ื".
ืืื ืฆืื ืกืืฃ, ื ืืขืื ืก-ืืจืืง ืคืืจ ืื ืืืืก ืืืื ืฉืืื ืืื ืืืขืจ ืืขืืืืขื ื. ืืคืืื ืืืื ืขืก ืืื ื ืืฉืื ืงืืื ืืืื ืจืืืื ืืจืื ืกืืืืขืจ ืืื ืขืจืืืื ื ืคืืจ ืืืืื ื ืงืืืึธืืขืืขืจ, ืืื ืืจืื ื ืฆื ืฉืืคื ืืืื ืก ืืืืื. ืขืก ืืื ืื ืื ืืคืืืงืืฆืืข ืืืืฃ ืืืื ืคึผืืื ืืขืจืืคื "DCF77 ืขืืืืึทืืึธืจ" ืืืืก ืฉืืงื ืืจืืืก ื ืกืืื ืื ืฆื ืืขืืคืึธืื ื. ืืขืจ ืืืืจ ืืืืืืคืืขื ืื ืืืื ืืืจ ืืืืงืื ืืขื ืืขืืคืึธืื ืงืึทืื ืืจืื ืืขื ืืืืืขืจ, ืืืขื ืขืก ืืืืคืืืคื ืืขื ืกืืื ืื (ืืื ืืืืื ืืขืจ ืืื ืืื ืืืื, ืืืืื ืจืขืืืืขืจืข ืืขืืคืึธืื ื ืืืขืื ื ืืฉื ืคืจืืืืฆืืจื ื 77 kHz ืกืืื ืื, ืืืขืจ ืขืก ืืื ืืกืชืื ืฆืืืื ืืึทืจืืึธื ืืงืก). ืืืืฃ ืืืื ืืืืืขืจ... Android ืคึผืจืึธืืจืึทื 9 ืืึธื ืืืื ื ืืฉื ืืขืึทืจืืขื โ ืขืก ืืื ืคืฉืื ื ืืฉื ืืขืืืขื ืงืืื ืงืืึทื ื (ืึธืืขืจ ืืคืฉืจ ืืึธื ืืื ืขืก ืคืฉืื ื ืืฉื ืืขืงืขื ื ืืขืจื โ ืขืก ืืื ืืึธื 77 kHz. :)), ืึธืืขืจ ืืคืฉืจ ืืืขื ืขืืขืฆืขืจ ืึทื ืืขืจืฉ ืืึธืื ืืขืกืขืจ ืืื. ืขืืืขืืข ืืขื ืืฉื, ืึธืืขืจ, ืืืืขื ืืืืขืจ ืืืืืขื ืขื ืคืืืฉืืขื ืืืงื DCF ืกืืื ืึทื ืืขื ืขืจืึทืืึธืจ, ืืืึธืก ืืื ืืจืื ื ืฆื ืืึทืื ืืื ืึทื Arduino ืึธืืขืจ ESP32:

(ืืงืืจ )
ืกืึธืฃ
ืื DCF ืกืืกืืขื ืืื ืืขืืืขื ืืึทืงืข ืืึทื ืฅ ืคึผืฉืื ืืื ืืึทืงืืืขื. ืืื ืืขืจ ืืืืฃ ืคืื ืึท ืคึผืฉืื ืืื ืืืืืง ืืคื ืขืืขืจ, ืืืจ ืงืขื ืขื ืืึธืื ืื ืคึผืื ืืืขื ืฆืืื ืฉืืขื ืืืง ืืื ืืืืขืืื, ืคืื ืงืืจืก ืืื ืืขืจ ืึธืคึผืืจืึธื ืืขืื ื. ืขืก ืืืื ื ืึทื ืืคืืื ืืจืึธืฅ ืืืืืืกืคึผืจืขื ืืืืืืึทืืืืึทืืืึธื ืืื ืื ืืื ืืขืจื ืขื ืคืื ืืืื ืืก, ืึทืืึท ืคึผืฉืื ืกืึทืืืฉืึทื ื ืืืขื ืืืื ืืื ืคืึธืืขืจืื ื ืคึฟืึทืจ ืึท ืืึทื ื ืฆืืึทื.
ืืงืืจ: www.habr.com
