Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ADT7420 - Arduino - stacja meteorologiczna

Areecki 20 Sty 2015 14:50 2355 9
  • #1 20 Sty 2015 14:50
    Areecki
    Poziom 14  

    Witam
    Od kilku dni poszukuje dokładnego czujnika temperatury, którego mógłbym podłączyć do Arduino i cieszyć się mniejszymi błędami niż w przypadku DS18B20 i innych popularnych czujników takich jak LM35xx , TMP36GT9Z , TMP102 I2C , AM2023.

    Kolega z forum zaproponował mi LM35CAZ jako coś lepszego niż DS18B20 ale z specyfikacji wynika, że max odchylenie może sięgać 0,5 C :
    ADT7420 - Arduino - stacja meteorologiczna
    ADT7420 - Arduino - stacja meteorologiczna

    Postanowiłem więc szukać dalej i trafiłem na ten film :
    https://www.youtube.com/watch?v=qYaoU5jzqk8
    Potem znalazłem specyfikacje tego czujnika : http://www.farnell.com/datasheets/1691071.pdf

    Wstępnie z tego co widać czujnik działa na ICE model ADT7420 i ma bardzo dobre parametry pomiaru, liniowość temperatury oraz rozdzielczość.

    Potem z tego artykułu :
    http://www.plociennik.info/index.php/funkcje?showall=&start=2
    oraz z tego :
    http://starter-kit.nettigo.pl/2010/03/temperatura-i-lcd/

    dowiedziałem się, że A/C w Arduino jest 10bitowe i odczyt wartości może się zawierać w przedziale 0 do 1023 - więc 1024 wartości , piszą też, że im mniejsze napięcie tym dokładniejszy pomiar, i A/C nie jest zbyt liniowo dokładne, a w drugim artykule, że Arduino podłączone przez port USB może generować błędy z powodu niedokładnego napięcia na porcie USB.

    Moje pytanie brzmi takie bo widzę, że w specyfikacji tego czujnika najlepsza dokładność jest uzyskiwana przy napięciu 2,7 V ~3,0 V. Rozumiem, że trzeba by zapewnić Arduino jakiś w miarę dobry regulator napięcia który podawał by np. w miarę dokładnie 3,0 V np. http://www.analog.com/static/imported-files/data_sheets/REF19xSeries.pdf . Czy do tego regulatora trzeba by też kupić referencyjny przetwornik A/C ? Czy samo zastosowanie referencyjnego napięcia polepszy wskazania tego termometru i jak trzeba to podłączyć do Arduino w tym wypadku ?

    Znalazłem do kupienia tutaj z elektroniką http://pl.farnell.com/digilent/pmodtmp2/adt7420-temp-sensor-16bit-pmod/dp/2290114

    I tutaj sam czujnik i w przypadku tego co powiedziałem wyżej nie wiem który wybrać.
    http://pl.farnell.com/analog-devices/adt7420u...2/temp-sensor-16bit--0-25c-16lfcsp/dp/2306581

    Proszę o jakąś wskazówkę :)

    0 9
  • Pomocny post
    #2 20 Sty 2015 15:10
    wondurbm
    Poziom 16  

    ADT7420 możesz zasilać bezpośrednio z 3,3V generowanego na płytce Arduino. Trzeba tylko zapewnić dobre filtrowanie linii zasilającej, np. poprzez dodanie obwodu RC na zasilaniu ADT7420. Trzeba też pamiętać, że jeśli ADT7420 jest zasilany innym napięciem niż ATMEGA, to rezystory podciągające szynę I2C powinny być podłączone do 3,3V, zamiast do 5V (jeżeli jest to Arduino Uno lub inne pracujące z zasilaniem procesora 5V). Można też zastosować konwerter poziomów.

    0
  • #3 20 Sty 2015 15:16
    Areecki
    Poziom 14  

    Dzięki za odpowiedź. Może ktoś jeszcze doda swoje 3 grosze odnośnie tego czy mam kupić sam goły czujnik czy z tą eletroniką ?

    0
  • Pomocny post
    #4 20 Sty 2015 15:21
    wondurbm
    Poziom 16  

    A czy jesteś w stanie sam zaprojektować i zrobić (lub zamówić) płytkę do tego czujnika, a potem go wlutować? Jego obudowa ma wymiar 4x4mm i nie ma wystających pinów. Właściwie nadaje się tylko do lutowania w piecu lub w ostateczności rozgrzanym powietrzem.

    Więc jeśli nie masz doświadczenia, kup od razu gotowy moduł bez zastanawiania się, chociaż tani nie jest.

    0
  • #6 20 Sty 2015 15:51
    wondurbm
    Poziom 16  

    A tak z ciekawości zapytam. Jaka to aplikacja, w której dokładność DS18B20 jest niewystarczająca? Przede wszystkim jaki zakres temperatur i co będzie mierzone (powietrze?).

    0
  • #7 20 Sty 2015 16:16
    Areecki
    Poziom 14  

    Pomiar dla potrzeb własnych , ale czytałem tutaj na forum, ze DS ma błędy czasami nawet rzędu 1-2 C , ponadto się podgrzewa przy częstych odczytach. Mam w planach w przyszłości zbudowanie stacji meteo ponieważ od dziecka interesuje się meteorologią, jednak dokładność +/- 0,5 jest dla mnie nie wystarczająca. Pomiar oczywiście temperatury powietrza, lub temperatury 10 cm na gruntem ( przygruntowe przymrozki ), myślałem jeszcze o czujnikach PT100 i PT1000 i znalazłem nawet gotowy termometr z dataloggerem ale jaka w tym zabawa jeśli nie można go w żaden sposób zmodyfikować.

    http://www.togo.lodz.pl/sklep/?p=productsMore...ujnikiem-zewnetrznym-b-(&-177;0.05%B0C!!!)-b-
    http://www.termoprodukt.com.pl/produkty/rejestratory-temperatury-wilgotnosci/termio-25

    Z tego co wiem z czujnikiem PT100 czy PT1000 i podłączeniem go do arduino jest sporo problemów od kwestii elektronicznej - za wysokie schody jak dla mnie.

    Zakres temperatur to -30 do + 40 lub -40 do + 40 .

    Sporo informacji jest tuaj : https://www.elektroda.pl/rtvforum/viewtopic.php?p=12513216#12513216 Może jednak poszukać cyfrowego termometru ?

    0
  • Pomocny post
    #8 20 Sty 2015 16:26
    wondurbm
    Poziom 16  

    Problem z ADT7420 w stacji pogodowej polega na tym, że trzeba go jakoś sprytnie zabudować, żeby jednocześnie zapewnić dobrą transmisję ciepła z otoczenia do czujnika i zabezpieczyć go przez wpływem wilgoci. Co może być trudne jeżeli nie projektuje się własnego PCB.

    Z DS18B20 jest łatwiej ze względu na typ obudowy - można po prostu przylutować przewody i włożyć do metalowej rurki (albo po prostu kupić gotowy czujnik zabezpieczony przez wilgocią). Poza tym nie dawałbym wiary obiegowym opiniom na temat dokładności (czy też jej braku) w tych czujnikach. Jeżeli prawidłowo się podłączy (elektrycznie i termicznie) mają dokładności nawet znacząco lepsze niż deklarowane przez producenta wartości graniczne. Oczywiście, przy dobrym projekcie ADT7420 daje potencjalnie większą dokładność.

    A myślałeś już o innych elementach stacji pogodowej? Czujniku wilgotności, opadu, wiatromierzu itd.?

    0
  • #9 20 Sty 2015 17:22
    Areecki
    Poziom 14  

    Wilgotność nie jest dla mnie tak ważna jak temperatura . Jest trochę też czujników wilgotności chociażby np. DHT22 np. tutaj link http://www.mikrokontroler.pl/content/czujniki-wilgotnosci-i-temperatury-dht11-i-dht22 pewnie można było by go kupić taniej.
    Nie rozumiem czemu tam jest napisane, że dokładność czujnika temperatury wynosi 0,2 C to jest nie prawda i pisałem w tej sprawie już do innego sklepu .
    W DHT22 dokładność pomiaru temperatury wynosi +/- 0,5 C , a to 0,2 C to chyba liniowość .
    http://www.kamami.pl/index.php?productID=207279 tutaj to samo .
    LoL nawet w datashed http://dl.btc.pl/kamami_wa/dht22_ds.pdf piszą, że dokładność pomiaru to 0,2 C a kilka linijek wyżej, że użyty jest czujnik DS18B20 hehe dobre !
    Tutaj natomiast już tabela przedstawia wyniki prawidłowo : http://www.ebay.com/itm/AM2303-Digital-Output...rature-And-Humidity-Sensor-HAVC-/120952106363

    Za duży offtop się robi więc napisze krótko :
    Wiatromierz oparty o działanie kontaktronu z użyciem takich czujników jak mam obecnie w swojej stacji meteo : http://www.ambientweather.com/amws1180wc.html , czujnik kierunku wiatru jest podobny więcej można poczytać tutaj :
    ADT7420 - Arduino - stacja meteorologiczna

    deszczomierz też nie jest drogi ( te elementy wyżej można kupić taniej np. w sklepie Maplin w UK znalazłem taki wiatromierz za 2 dolary z hakiem i podesłałem link ElectroMarasowi z YT który robi filmy o Arduino i może kiedyś zrobi taki film dla mnie ) . Poza tym jest sporo w sieci na ten tematu chociażby tutaj ( deszczomierz korytkowy też działa na podobnej zasadzie zwierania kontaktronu ) https://www.sparkfun.com/products/8942
    https://www.sparkfun.com/categories/152
    I tutaj trochę kodu do Arduino odnośnie czujników o które pytasz : https://learn.sparkfun.com/tutorials/weather-...derground?_ga=1.15847798.131755518.1421685835

    W planach odległych jest jeszcze pomiar natężenia światła, pomiar UV, pomiar wilgotności gleby, kilka czujników DS do pomiarów np. temp pieca CO, temperatury 10 cm nad grunetem, czujnik deszczu taki : http://www.instructables.com/id/Arduino-Modules-Rain-Sensor/ lub taki : http://www.rainsensors.com/ , detektor wyładowań atmosferycznych :D.

    0
  • #10 20 Sty 2015 20:43
    wondurbm
    Poziom 16  

    Jak słusznie zauważyłeś, niektórzy mylą parametr accuracy (dokładność) z repeatability (powtarzalność) i potem piszą bzdury w opisach.

    0