Meteostanice, verze 3 Arduino |
|||||||||||||||||||||||||||||||||||||||||||||||||
(17.5.2014) | |||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Původní 2 verze jsou zde: Verze 1 - Printserver Edimax: edimax Verze 2 - Wrap: wrap Verze s WRAPem uměla měřit teplotu a vlhkost. Chtěl jsem ještě doplnit měření aktuálního barometrického tlaku. Postavil jsem tedy zapojení podle tohoto 1-Wire Barometer s čidlem MPX4115. Bohužel toto zapojení nebylo možné zkalibrovat na rozumný a použitelný průbeh. Proto jsem toto řešení zavrhl, a rozhodl se, že postavím novou meteostanici zcela od začátku. |
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Základem
tohoto nového řešení je
Tato deska obsahuje:
Což je pro takto jednoduché zařízení, které má z něho být postaveno jako dostačující. |
|||||||||||||||||||||||||||||||||||||||||||||||||
Pro měření teploty a vlhkosti jsem vybral čidlo Čidlo měří
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Pro měření atmosférického tlaku čidlo Čidlo měří:
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Celá meteosatnice pak vyvadá takto: |
|||||||||||||||||||||||||||||||||||||||||||||||||
Čidlo DHT22 je umístěno do plastové trubky o průměru 80mm. V dolní části je zabudovaný kvalitní ventilátor 12V s kuličkovými ložisky. Je napájen napětím cca 7.5V, a žene skrz trubku a okolo čidla okolní vzduch. Je tam proto, aby bylo čidlo co nejméně ovlivňováno teplotou trubky. Čidlo DHT22 je napojeno na I/O pin Arduina. Také jsou měřeny otáčky ventilátoru. Je použita HALL sonda, kterou každý takovýto ventilátor z PC obsahuje. Stačí připojit žlutý drát ventilátoru na I/O pin Arduina, a podepřít ho cca 10k odporem na 5V.
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Elektroniku - Arduino UNO, čidlo BMP085 regulovatelný zdroj pro napájení ventilátoru a Arduina jsem vestavěl do plastového boxu: Veškeré součástky jsou zapojené opět na univerzálním
plošném spoji. Je zde čidlo tlaku, a dále čidlo DS18B20, které měří teplotu
uvnitř boxu. Vzhledem k tomu, že se elektronika zahřívá sama o sobě, a ještě
když na box svítí sluníčko, tak teplota uvnitř dosahuje i v tomto ještě celkem
chladném počasí až 30ºC. Proto
jsem do boku boxu zabudoval ventilátor. Ten je napojený přes tranzistor na I/O
pin Arduina. Takže pokud Arduino zjistí, že teplota v boxu překročila určitou
hodnotu, tak sepne ventilátor, a chladí vnitřek boxu. |
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Takto zapojenou meteostanici jsem testoval několik měsíců souběžně s původní meteostanicí, běžící na Wrapu a s kvalitníma čidlama DS18B20 a HIH4000. Hodnoty teploty a vlhkosti jsem tedy zkalibroval podle těchto starých čidel, protože kvalita DHT22 bohužel nedosahuje zdaleka hodnot uváděných v datasheetu (viz dále). Hodnoty z Arduina jsem načítal do serveru přes USB port programem v Pythonu. Když jsem zjistil, že je toto zařízení jako meteostanice celkem použitelné, doplnil jsem je o další elektroniku:
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Ethernet shield mi bohužel trochu narušil mechanickou koncepci celého zařízení. Box je vyroben tak, aby šel kdykoliv "odpojit a odnést" pro případné úpravy do dílny. Bohužel jsem nesehnal vodotěsnou průchodku, kterou by prolezl ethernet kabel i s RJ45 konektorem, takže jsem ji musle vyrobit. Použil jsem část tuby od multivitaminu. Trubka je do boxu zalepená tavným lepidlem, a skrz zátku prochází ethernet kabel, který ja tam také utěsněný tavným lepidlem. Takže když potřebuji zařízení odnést, vytáhnu zátku, a konektor protáhnu skrz trubku.
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Software Arduino:
Server: (Atom 1.6GHz, 2GB RAM, Linux Mint Maya)
Smyčka v Arduinu je nastavena tak, aby se data na server odesílala každých 43s. Hodnoty do RRDtool databáze se načítají každou celou minutu, takže data odeslaná z Arduina jsou vždy maximálně minutu stará. To je asi všechno. |
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Nakupujete moduly pro Arduino na eBay, nebo Aliexpress? Existuje zde portál, který vám za tyto nákupy vrátí až 5% zpět přes tzv. CashBack Jak to funguje: hlavně VÁS to nic nestojí. Stačí se zaregistrovat na plnapenezenka.cz Když potom chcete něco nakoupit na eBay, Aliexpress atd, tak se přihlásíte na Plnoupeněženku, a odtud teprve přejdete na obchod, ve kterém chcete nakupovat. Tam nakoupíte za NORMÁLNÍ cenu. Server Plnápeněženka tanto nákup zaregistruje, a na váš účet vám pošle provizi až 5% z částky, za kterou jste nakoupil. To je vše. Zkusil jsem to, protože jsem si říkal, že nemám co ztratit, a ono to opravdu funguje :-) Nakupovat přes plnoupeněženku můžete jak v zahraničních, tak v našich obchodech (MALL, Kasa, Baťa, atd.) |
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Kvalita čidel V meteostanici jsou použita 2 čidla. BMP085
DHT22 a DHT11
Bohužel, daleko větší problém je
měření vlhkosti. Čidlo použité v meteostanici ukazuje celkem dobré hodnoty, v
mezích tolerance. Bohužel je to jediné čidlo, které se do tolerance jakž takž
vešlo.
Testy čidla vlhkosti.
Hledal jsem na internetu, jestli máme problémy s kvalitou těchto čidel jenom my, ale podle různých diskuzí jsem zjistil, že je to obecný problém. Kvalita čidel se velmi liší kus od kusu. Takže při nákupu těchto čidel je to bohužel o štěstí.
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Toto čidlo se docela povedlo
|
Kuchyňské soli je opravdu potřeba větší množství, a musí být
dostatečně mokrá Hodnota se ustálí po cca 8mi hodinách
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Pitva čidla DHT22 Jak je vidět, z jedné strany je termistor, který
měří teplotu, a vedle kapacitní čidlo vlhkosti. Kupodivu v čidle DHT11, které je rozebíratelné je označení MCU odbroušené, ale čidlo vlhkosti je standardní. Takže po jeho výměně DHT11 dále ukazoval normální hodnoty. |
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Ještě bych chtěl upozornit na jeden nepovedený modul k Arduinu. Jedná se o Hodiny reálného času (RTC) DS1307.
Koupil jsem první kus, a zjistil, že se rozejde za 14 dní asi o půl minuty.
Koupil jsem tedy druhý kus, a ten se rozcházel naprosto stejně. Zkusil jsem tedy
vyměnit krystal za krystal z digitálek, které šly relativně přesně. Bohužel, nic
se nezměnilo, a modul se dál rozcházel steným způsobem. Zkoušel jsem tedy ke
krystalu dávat kondenzátory. Při použití různých kapacit a různých zapojeních
kondenzátorů (paralelně ke krystalu, do séria nebo k zemi) se mi podařilo
dosáhnout pouze dvou stavů. Hodiny buď nešly vůbec, nebo se stejnou nepřesností.
Takže jsem je zahodil, a koupil RTC
modul DS3231. Ten je sice 2x tak drahý (asi 2.2$),
ale jde naprosto přesně! Má i vnitřní tepelnou kompenzaci, takže
mu nevadí ani velké výkyvy teploty. |
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Na hlavní stránku |