Semua orang jago di stasiun cuaca Buro H146G dengan termometer nirkabel eksternal H999. Tetapi hanya untuk melihat pembacaan pada LCD pudarnya membutuhkan pencahayaan yang baik. Dan akan lebih baik bagi saya jika suhu dan kelembaban output di luar jendela ditampilkan pada indikator yang cukup cerah (misalnya, menggabungkan tampilan suhu dan kelembaban dengan jam pada indikator debit gas IN-12). Tidak sulit untuk membuat kerajinan seperti itu, tetapi Anda harus mengetahui protokol pertukaran dengan termometer nirkabel. Sudah
ada artikel tentang penggunaan termometer stasiun cuaca nirkabel untuk mendapatkan suhu dan kelembaban di udara. Tetapi untuk stasiun Buro, protokol pertukaran belum dijelaskan. Jadi, kita perlu memperbaikinya: mungkin seseorang bisa berguna.
Di Internet, saya tidak menemukan deskripsi protokol untuk bertukar stasiun BURO. Dan ini berarti Anda harus membuka protokol pertukaran sensor nirkabel ini.
Termometer eksternal saya terlihat seperti ini:

Dengan menghubungkan receiver 433,92 MHz super-regeneratif Tiongkok ke osiloskop dan menekan tombol TEST pada termometer, terlihat jelas bagaimana pulsa transmisi bekerja. Nah, karena frekuensinya kecil, output penerima terhubung ke input kartu suara melalui pembagi resistif. Setelah memproses file suara yang direkam, pembanding menghasilkan gambar berikut:

Seperti stasiun cuaca lainnya, modulasi dilakukan dengan mengubah siklus tugas. Transmisi dimulai dari blok jam, kemudian ada sinyal jam lain, dan kemudian ada data, setelah itu sinyal jam terakhir berjalan. Dua nol setelah sinyal jam, tampaknya, adalah pengidentifikasi awal data - dalam hal apa pun, saya tidak pernah memperhatikan perubahannya. Data dengan jam mulai dan berakhir digandakan enam kali. Pertukaran data dilakukan oleh camilan.
Untuk decoding, saya memutuskan untuk mulai menerima pada jam pertama dan dua nol, dan selesai pada jam terakhir.
Untuk memecahkan kode sinyal seperti itu, cukup untuk menghitung durasi antara penurunan sinyal.
Untuk ini, saya menulis program pengujian sederhana untuk pengontrol Atmega8:
Output penerima terhubung ke pin 13 (AIN1). Atmega terhubung melalui max232 ke port COM komputer (atau ke adaptor USB-COM). Kecepatan port 9600 baud.
Setelah decoding, kita mendapatkan aliran data berikut (saya membuang dua nol terkemuka):
// tanpa tombol, saluran 1
1100 1100 0000 1110 1000 0110 1100 0001 0000 1001 Kelembaban: 28% Suhu: 25,4
// tidak ada tombol, saluran 2
1100 1100 0001 1110 1000 0110 1101 0001 0000 0110 Kelembaban: 29% Suhu: 25,4
Total paket terlihat seperti ini:

I0-I7 - pengidentifikasi termometer. Setiap kali termometer dihidupkan, pengenal berubah.
C0-C1 - saluran (ada 3 kemungkinan total). Saluran diberi nomor dari awal.
H0-H7 - kelembaban. Kelembaban sebagai persentase dibaca apa adanya, tetapi suhu (T0-T11) karena alasan tertentu diatur dalam format yang tidak biasa untuk stasiun cuaca. Dilihat oleh deskripsi protokol pertukaran berbagai stasiun cuaca yang saya temukan, orang akan mengharapkan suhu dalam sepersepuluh derajat dan dengan pergeseran batas bawah termometer. Jadi tidak. Percobaan menunjukkan bahwa kode suhu stasiun cuaca ini diterjemahkan ke derajat Celcius sebagai (T-1220) / 18. Bagaimana angka ajaib ini hanya tahu orang Cina yang datang dengan protokol pertukaran ini.
Seperti yang disarankan oleh wolowizard dalam komentar, stasiun mentransfer suhu dalam sepersepuluh derajat Fahrenheit, sehingga terjemahan yang bermakna dalam derajat Celcius akan menjadi 0,1 * (T-320) * 5 / 9-500 = 0,1 * (T-1220) /1,8.
Bit K berhubungan dengan menekan tombol TEST.
Penugasan bidang yang tersisa tidak dapat ditetapkan, tetapi ternyata nilai sakelar Fahrenheit / Celsius pada termometer tidak masuk ke protokol pertukaran. Agaknya gigitan terakhir (atau mungkin bagian dari yang kedua dari belakang) juga CRC, tapi saya belum dapat menghitung algoritme (ada kecurigaan bahwa baris dan kolom yang menggigit terlibat dalam perhitungan). Jika ada yang bisa memecahkan teka-teki ini, beri tahu kami algoritma penghitungan.
Bagi mereka yang ingin memeras otak mereka, tetapi tidak memiliki termometer seperti itu, saya memberikan tabel data yang diterima.
Meja 1001 0110 0101 1011 1000 0110 1000 0010 0001 1111 Key:0 Ch:2 H:40%, T:25.2 C 1001 1001 0000 1101 1010 0100 0101 0101 0000 0110 Key:0 Ch:1 H:85%, T:-1.2 C 1001 0110 0101 1100 1000 0110 1010 0010 0001 0100 Key:0 Ch:2 H:42%, T:25.3 C 1001 0110 1001 0110 0111 0110 1101 0001 0010 1111 Key:0 Ch:2 H:29%, T:24.1 C 1001 0110 1001 0000 0111 0110 1101 0001 0010 1000 Key:0 Ch:2 H:29%, T:23.7 C 1001 0110 1001 0010 0101 0110 1110 0001 0010 1111 Key:0 Ch:2 H:30%, T:22.1 C 1001 0110 1001 1001 0011 0110 1110 0001 0010 1100 Key:0 Ch:2 H:30%, T:20.7 C 1001 0110 1001 1111 0001 0110 1111 0001 0010 1010 Key:0 Ch:2 H:31%, T:19.2 C 1001 0110 0101 1001 0000 0110 0001 0010 0010 1000 Key:0 Ch:2 H:33%, T:18.0 C 1001 0110 0101 0010 1111 0101 0010 0010 0010 0111 Key:0 Ch:2 H:34%, T:16.7 C 1001 0110 0101 0100 1110 0101 0010 0010 0010 0010 Key:0 Ch:2 H:34%, T:16.0 C 1001 0110 0101 0100 1101 0101 0011 0010 0010 0001 Key:0 Ch:2 H:35%, T:15.1 C 1001 0110 0101 1100 1100 0101 0100 0010 0010 1110 Key:0 Ch:2 H:36%, T:14.6 C 1001 0110 0101 1111 1011 0101 0101 0010 0010 1111 Key:0 Ch:2 H:37%, T:13.9 C 1001 0110 0101 0011 1011 0101 0101 0010 0010 0001 Key:0 Ch:2 H:37%, T:13.2 C 1001 0110 0101 1001 1010 0101 0110 0010 0010 0101 Key:0 Ch:2 H:38%, T:12.7 C 1001 0110 0101 0100 1010 0101 0111 0010 0010 1000 Key:0 Ch:2 H:39%, T:12.4 C 1001 0110 0101 1011 1001 0101 0111 0010 0010 1010 Key:0 Ch:2 H:39%, T:11.9 C 1001 0110 0101 0011 1001 0101 1000 0010 0010 1001 Key:0 Ch:2 H:40%, T:11.5 C 1001 0110 0101 1011 1000 0101 1000 0010 0010 1110 Key:0 Ch:2 H:40%, T:11.0 C 1001 0110 0101 0111 1000 0101 1001 0010 0010 0101 Key:0 Ch:2 H:41%, T:10.8 C 1001 0110 0101 1111 0111 0101 1001 0010 0010 1101 Key:0 Ch:2 H:41%, T:10.3 C 1001 0110 0101 0111 0111 0101 1010 0010 0010 0111 Key:0 Ch:2 H:42%, T:9.9 C 1001 0110 0101 0001 0111 0101 1011 0010 0010 0101 Key:0 Ch:2 H:43%, T:9.6 C 1001 0110 0101 1011 0110 0101 1100 0010 0010 0110 Key:0 Ch:2 H:44%, T:9.2 C 1001 0110 0101 1000 0110 0101 1100 0010 0010 1100 Key:0 Ch:2 H:44%, T:9.1 C 1001 0110 0101 0011 0110 0101 1101 0010 0010 0110 Key:0 Ch:2 H:45%, T:8.8 C 1001 0110 0101 1001 0101 0101 1110 0010 0010 0110 Key:0 Ch:2 H:46%, T:8.2 C 1001 0110 0101 0101 0101 0101 1111 0010 0010 1101 Key:0 Ch:2 H:47%, T:8.0 C 1001 0110 0101 0010 0101 0101 1111 0010 0010 1100 Key:0 Ch:2 H:47%, T:7.8 C 1001 0110 0101 1110 0100 0101 1111 0010 0010 0000 Key:0 Ch:2 H:47%, T:7.6 C 1001 0110 0101 1100 0100 0101 1111 0010 0010 1100 Key:0 Ch:2 H:47%, T:7.5 C