logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega] [Atmega][SHT21] - Czy jeden mikroprocesor wystarczy do 30 czujników?

Resires 30 Mar 2013 19:43 4809 9
  • #1 12133747
    Resires
    Poziom 9  
    Celem projektu jest mierzenie poziomu wilgotności, a następnie wizualizacja na PC (np w LabView).

    Pomiar wilgotności będzie wykonywany w około 30 punktach, jednak będą one w niewielkiej odległości względem siebie.

    Pomysl jest nastepujący:

    Czujniki SHT21 będą za pomocą I2C komunikować się w z AtMegą (prawdopodobnie 32). Następnie co kilkanaście sekund AtMega będzie wysyłać po RS232 paczkę z informacją zbiorczą o pomiarach do komputera.


    Ponieważ nie miałem do tej pory styczności z wielokrotnym pomiarem takiego parametru, a jedynie z pomiarem jednego czujnika temperatury (DS1621), mam wiele wątpliwości:


    1. Czy jeden mikroprocesor wystarczy?
    2. Czy ten czujnik jest wodoodporny / czy styki powinny być jakoś zabezpieczone?
    3. Czy nie tracę dokładności pomiaru wilgotności? Doradzano mi, aby lepiej wykonywać te pomiary za pomocą przetworników analog/cyfra.
  • #2 12133873
    tmf
    VIP Zasłużony dla elektroda
    Zaraz, chcesz 30 czujników połączyć przy pomocy I2C do jednej ATMegi? A w jakiej odległości od Atmegi będą te czujniki? Zdajesz sobie sprawę, że I2C to taka magistrala na kilkanaście centymetrów?
    Jeśli ci to nie przeszkadza, to, nie wiem jak SHT21, ale inne SHT są bardzo wrażliwe na zalanie. Właściwie po tym żadnego sensownego pomiaru wilgotności nie uzyskasz. Natomiast jedna ATMega spokojnie obsłuży 30 czujników. Nie ma sensu też ładować się w czujniki analogowe, wilgotności w końcu nie mierzy się z dokładnością do x miejsc po przecinku.
  • #3 12134050
    Resires
    Poziom 9  
    Wszystkie czujniki będą znajdowały się w komorze o wymiarach około 0,5 m x 0,4 m x 0,4 m.

    W kwestii odległości sugerowałem się: https://www.elektroda.pl/rtvforum/topic20851.html


    Czujniki nie będą wystawione na polewanie wodą, tylko raczej na parę wodną która będzie skraplać się na ściankach.

    Satysfakcjonującym mnie efektem byłaby wiedza, że np wilgoć pojawiła się w polu nr 5 po tylu sekundach, a w polu nr 8 dużo później.
  • #4 12134153
    tmf
    VIP Zasłużony dla elektroda
    Jeśli woda ci się skropli na polu pomiarowym czujnika to koniec z pomiarem. To nie jest czujnik mogący pracować w takich warunkach. Przy takim rozmiarze komory i braku innych źródeł zakłóceń powinno to działać, ale gwarancji nie ma. I2C zostało zaprojektowane do łączenia urządzeń leżących blisko siebie. Aby poprawić odporoność na zakłócenia należy nie tylko zwolnić szybkość transmisji, ale też zmniejszyć stromość zboczy sygnału. Jeśli korzystasz ze sprzętowego I2C to piny dla niego mają taką funkcję. Dodatkowe kondensatory kilkadziesiąt-set pF mogą pomóc.
  • #5 12135150
    wdogli
    Poziom 18  
    Witam.
    Czujniki SHT21 mają wszystkie ten sam niezmienny adres czyli 0x77. Jak chcesz na jedną szynę i2c podpiąć i obsługiwać taką ilość czujników ??
    Pozdrawiam
  • #6 12135709
    pawel_konin
    Poziom 20  
    Resires napisał:
    Celem projektu jest mierzenie poziomu wilgotności, a następnie wizualizacja na PC (np w LabView).

    Pomiar wilgotności będzie wykonywany w około 30 punktach, jednak będą one w niewielkiej odległości względem siebie.

    Pomysl jest nastepujący:

    Czujniki SHT21 będą za pomocą I2C komunikować się w z AtMegą (prawdopodobnie 32). Następnie co kilkanaście sekund AtMega będzie wysyłać po RS232 paczkę z informacją zbiorczą o pomiarach do komputera.


    Ponieważ nie miałem do tej pory styczności z wielokrotnym pomiarem takiego parametru, a jedynie z pomiarem jednego czujnika temperatury (DS1621), mam wiele wątpliwości:


    1. Czy jeden mikroprocesor wystarczy?
    2. Czy ten czujnik jest wodoodporny / czy styki powinny być jakoś zabezpieczone?
    3. Czy nie tracę dokładności pomiaru wilgotności? Doradzano mi, aby lepiej wykonywać te pomiary za pomocą przetworników analog/cyfra.


    Skoro kolega Tmf mówi o destrukcyjnym działaniu skroplonej wody na te czujniki to może skłonić się do dedykowanych czujników wilgotności np HIGROMETR LB-712TW plus jakiś fajny przetwornik powiedzmy 12bit. Wadą takiego rozwiązania jest cena czujnika. Z tańszych opcji pomiarowych wilgotności jest psychrometr który można wykonać na pewno taniej niż dedykowany czujnik wilgotności.

    edit: po 20 min
    widzę ze one też nie są odporne na wykraplanie pary wodnej. Pozostaje budowa klatki meterologicznej albo psychrometr.
  • #7 12143330
    Resires
    Poziom 9  
    Rzeczywiście, skraplanie może być problemem.

    Pomyślałem, że rowiązaniem mogą być osłonki jakiegoś typu stanowiące swego rodzaju "bufor powietrzny". Znalazłem urządzenie pomiarowe EL-USB-2 (zawierające w sobie czujnik SHT1X), które ma tego rodzaju osłonkę. Oczywiście nie zależy mi na przechowywaniu pomiarów i baterii w które wyposażony jest EL-USB-2, a jedynie na osłonkach które posiada. Czy można znaleźć coś takiego?


    Jeżeli chodzi o transmisję danych, to faktycznie rozwiązanie z mikroprocesorem oraz I2C wydaje się być nietrafione. Skłaniam się teraz bardziej ku gotowemu urządzeniu jak np rejestrator 16-kanałowy PICOLOG 1216. Czy ktoś ma doświadczenie w komunikacji jego z czujnikami SHT1X ?
  • #8 12143525
    tmf
    VIP Zasłużony dla elektroda
    Kup SHT1x, który ma interfejs quasi-I2C, wtedy możesz zrobić wspólną linię danych lub CLK, w efekcie będziesz potrzebował wyjść n+1, gdzie n to liczba czujników. Implementacja programowa protokołu na dowolnym pinie IO jest banalna. Na I2C też to zrobisz, tyle, że protokół ciut bardziej skomplikowany. Pozostaje problem ze skraplaniem, ale tu nie mam doświadczeń.
  • #9 12144522
    wdogli
    Poziom 18  
    Witam ponownie.

    Dotychczas bawiłem się zarówno czujnikami SHT11 jak i SHT21.
    Moje spostrzeżenia:
    Napięcie zasilania:
    SHT11 - bardzo dobrze działa przy 5V
    SHT21 - działa przy 5V ale krótko jakieś 3 miesiące potem płonie

    [Atmega] [Atmega][SHT21] - Czy jeden mikroprocesor wystarczy do 30 czujników?

    i należy ją wymienić na nową (przetestowane) a wiec zasilanie tej czujki jedynie 3,3 V do tego układ konwertera poziomów logicznych z 5V <=> 3,3V lub mikrokontroler zasilana 3,3V.

    Kalibracja:
    SHT21 - nie wymaga kalibracji należy odczytać z czujki szereg parametrów a następnie używać ich w obliczaniu wilgotności.
    SHT11 - czujka wymaga kalibracji. Ja stosowałem kalibrację nad roztworem nasyconym soli kuchennej w temperaturze 20 stp. C

    Wykroplenia:
    SHT11 - według mnie czujka nieodporna na wykroplenia udało mi się spalić jedną czujkę podczas kalibracji. Czujka dosłownie dotknęła lustra wody podczas kalibracji. Po wysuszeniu nie dokonuje już odczytu wilgotności jednak nadal można z niej odczytać temperaturę. Jest możliwe ze spowodowała to sól w roztworze.
    SHT21 - uważam że jest w pełni odporna na wykroplenia. U mnie od kilku miesięcy pracuje taka czujka za oknem a jedyną osłoną jest osłona radiacyjna wykonana z podstawek doniczkowych. Coś w tym stylu:

    [Atmega] [Atmega][SHT21] - Czy jeden mikroprocesor wystarczy do 30 czujników?

    obrazek pobrany z tego linka: Link

    Dodatkowo zastanawiam się nad czymś takim.
    Czy układ który budujesz będzie pracował w na tyle zmiennych się warunkach że będzie zachodziło wykroplenie ?? Wykroplenie wilgoci na czujce będzie zachodzić jeśli będzie ona miała odpowiednio niższą temperaturę niż jej otoczenie (temperatura punktu rosy)

    [Atmega] [Atmega][SHT21] - Czy jeden mikroprocesor wystarczy do 30 czujników?

    Pozdrawiam
  • #10 12148424
    Resires
    Poziom 9  
    Tak, wykroplenie jest prawdopodobnie nieuniknione. Czujniki będą umieszczone na wewnętrznych ściankach pojemnika, w którym będzie znajdował się garnek z gotującą wodą.

    Aktualnie skrystalizowały mi się trzy pomysły:

    1)
    Czujnik cyfrowy <-> Mały uC <->
    Czujnik cyfrowy <-> Mały uC <-> Przetwornik C/A <-> Logger (PicoLog 1216) <-> PC
    Czujnik cyfrowy <-> Mały uC <->

    Czujnik cyfrowy: SHT1x
    Mały uC: np AtMega 8

    2)
    Czujnik cyfrowy <->
    Czujnik cyfrowy <-> Większy uC (np Atmega 32) <-> PC
    Czujnik cyfrowy <->

    Każdy czujnik ma własny pin mikroprocesora dla SDA oraz wspólny mikroprocesora pin dla SCL.

    3) Tak by było chyba najdrożej, ale zarazem najprościej:

    Czujnik analogowy <->
    Czujnik analogowy <-> Logger (PicoLog 1216) <-> PC
    Czujnik analogowy <->

    Czujnik Hc 610 wydawałby się być dobry, jednak jego temperatura pracy może zostać przekroczona.
REKLAMA