Recenze

Jak dekódovat signál z bezdrátového snímače teploty a vlhkosti meteostanice Vitek VT-6404? — Habr Otázky a odpovědi

Byla tam meteorologická stanice. Po chvíli základní jednotka selhala, ale bezdrátový senzor dál funguje a na svém malém displeji ukazuje teplotu a vlhkost. Základní jednotka má malou desku (přijímač) s anténou, má tři piny VCC GND DATA. Tedy napájení + a – a data, která pocházejí ze senzoru. Připojením napájení k přijímači a připojením DATA ke vstupu zvukové karty PC jsme byli schopni zaznamenat zvuk, který vychází ze snímače. V programu pro úpravu zvuku jsem viděl schéma signálu. Foto 1.

Za méně než 1 sekundu dorazí 3 téměř identické signály s nepatrným rozdílem na konci. Jeden ze signálů je na fotografii 2 zvětšen.

Nic víc než sbírka 0 a 1. Když si představíte, že je čára nahoře, je to impuls, a když je dole, impuls neexistuje. Existují pouze 4 typy impulsů:
1. Dojde ke krátkému impulsu.
2. Existuje dlouhý impuls.
3. Žádný puls není krátký.
4. Žádný puls dlouhý.
Víc možností není. Předpokládal jsem, že: Je krátký puls = 1. Je dlouhý puls = 11. Není krátký puls = 0. Není dlouhý puls = 00. V důsledku toho byl na port LPT odeslán signál, I napsal program, který přečte tento signál a převede ho na sadu 0s a 1s. Ukázalo se, že tady je řádek 1010110011001101001101010011010101010011001011001010110100101100110101001 Toto je jen příklad, pro každou teplotu a vlhkost je vlastní řádek. Malá část řádku se změní, několik znaků přibližně na pravé straně. Levá strana se nemění. Existuje podezření, že číslo čidla a číslo domu, ke kterému čidlo patří, je toto vše nastaveno v samotném čidle.

Úkol: přijmout signál ze senzoru na PC, zpracovat jej programově a zobrazit teplotu a vlhkost, kterou ukazuje.

Pro zobrazení teploty a vlhkosti na obrazovce je potřeba každému signálu přiřadit teplotu a vlhkost, která je na senzoru v době odeslání signálu. Signál není rozdělen na teplotu a vlhkost odděleně; neexistuje žádná věc, že ​​když se teplota změní, některé hodnoty se změní a když se změní vlhkost, jiné se změní. Mění se celá pravá strana, i když se mění jen teplota nebo jen vlhkost. Protože senzor pracuje v rozsahu přibližně -30 +50 v krocích po 0,1 a vlhkost se pohybuje od 0 do 100, existuje několik set tisíc možností. Nejsem schopen shromáždit celou databázi raků. Nasbíral jsem jen část. Je zde sada signálů s vlhkostí 60% a teplotou od 25,7 do 28,8 téměř bez mezer. Téměř, protože některé hodnoty se prostě nezobrazují, například neexistuje žádná hodnota 28,3 S 60% Existuje 28,2 S 60% a okamžitě 28,4 S 60% Bez ohledu na to, jak jsem se snažil získat 28,3 S 60%, toto není se podle mého názoru vůbec nevyskytuje, chybí a takových hodnot je mnoho, například xx.9 C 60% často chybí Kde xx je jakákoli teplota končící na, 9 Někdy existuje, 9 ale častěji Není.

Přečtěte si více
Jak rozeznat mátu od meduňky / A jaké jsou jejich užitečné vlastnosti - článek z rubriky Jak zařídit kuchyň na

Máte nápady, jak na základě dat vytvořit většinu chybějících dat?

Musíte získat takovou základnu

27,0 C 60 %
1010110011001101001101010011010101010011001011001010110100110011001101001

27,1 C 60 %
1010110011001101001101010011010101010011001011001010110100110100110011001

27,2 C 60 %
1010110011001101001101010011010101010011001011001010110100101100110010101

A tak dále. A to ne od 27 C ale od -30 a to nejen pro 60% ale pro všechna možná procenta. Získejte základ na základě některých známých údajů.

Základna a snímač používají bezrámové MS, takže není možné zjistit jejich názvy.

Zde je fotografie snímače. Celkový pohled, samotné termo a vlhkostní prvky. A poplatek.

V senzoru jsou 2 desky nad sebou a jsou připájeny 3 nožičkami. Jak jsem pochopil, tak nahoře je vysílač a na zadní straně je displej a pod ním bezrámečkový MS. Desky jsou k sobě připájené, takže se mezi ně nemůžete dostat a vidět, co tam ještě je, pokud to neodpájíte, ale já to zatím pájet nechci.

——————–
Řešení. Třeba se to někomu bude hodit.
Šel jsem zjistit kódování Manchester a aplikovat ho na signál, běžné kódování nefungovalo, použil jsem diferenciální kódování Manchester a to je přesně to, co jsem potřeboval.
Dříve program skenoval signál a vydal následující řádek:
1010110011001101001101010011010101010011001011001010110100110011001101001
Výše jsem popsal, jak to dopadá. Pak z tohoto řádku získám binární kód následovně. Vezmeme první 2 hodnoty, pokud se liší, dojde ke změně signálu – toto je „1“, nezáleží na tom, zda je to 01 nebo 10, hlavní je, že došlo ke změně. Pokud jsou hodnoty stejné, je to „0“ nezáleží na tom, zda je to 00 nebo 11. Výsledkem je následující řádek:
110000010011001111000100110100000010
Teď už zbývá jen zvýraznit, kde je vlhkost a kde teplota, na fotografii níže.
Влажность – jednoduše převést z binárního na desítkové. Je přiděleno 7 bitů, možná hodnota je od 0 do 127, ale poslední hodnota je 96, vlhkost se dále nezvyšuje a na senzoru se zobrazí HI.
Teplota (celočíselné hodnoty) — Nejprve převedeme binární na desítkové a získáme hodnotu teplotních celých čísel, ale tato hodnota je o 50 stupňů vyšší než skutečná teplota. tak odečtěte 50 – to je teplota. Takže 00000000 je teplota -50 C (teoreticky jsem to nezkontroloval).
Teplota (desetiny) – Tady to není jasné, krok se mění. pak 0,05 pak 0,1, protože s krokem 0,05 potřebujete 20 hodnot, ale ve 0 bitech je pouze 15-4. Protože ale teplota na displeji zobrazuje jen desetiny, krok 0,05 nehraje zvláštní roli, základ, který jsem nasbíral, jsem postavil na jeho základě, kde je krok 0,05 a kde je 0,1 a to stačí.
Bity, které nejsou podepsané, neobsahují zvláště důležité informace. Za prvé, někde je nastavení čidla, číslo čidla a číslo domu. A nakonec, nevím, možná kontrolujem signál na chyby, možná ne, ale to nevadí, mám, co jsem potřeboval.

  • Otázka byla položena před více než třemi lety
  • Zobrazení 3716

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Back to top button