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

Sterownik temperatury i wilgotności, Atmega, SHT11

demeus 19 Sty 2012 23:25 11505 18
  • Sterownik temperatury i wilgotności, Atmega, SHT11


    Witam,

    Kilka lat temu zaprojektowałem bardzo prosty sterownik temperatury i wilgotności na potrzeby produkcji grzybów boczniaków. Był to jeden z pierwszych sterowników, które zbudowałem także proszę o wyrozumiałość ;-). Sterownik jest oparty o procesor Atmega16/32, który steruje optotriakami/triakami, pomiar wykonany na czujniku SHT11. W założeniu sterownik miał mieć kilka dodatkowych funkcji jak komunikacja z komputerem za pomocą RS232/RS485. Zabezpieczenie przed próbą jego uruchomienia przy otwartej obudowie (np. poprzez krańcówkę). Pomiar temperatury wewnątrz obudowy, oraz awaryjne wyłączenie sterowania w przypadku zbyt wysokiej temperatury. Oraz kilka innych funkcji, których już nie pamiętam, lecz ze względów na koszty wszystko zostało uproszczone do niezbędnego minimum.

    Płytka PCB wykonana metodą termotransferu przy pomocy drukarki laserowej przerobionej do prasowania płytek z wydrukami (coś jak urządzenie do laminowania). Całość została wycięta i powiercona na frezarce CNC, zabezpieczona lakierem do elektroniki. Płytka składa się z dwóch części sterowniczej (wyświetlacz oraz przyciski) oraz wykonawczej (procesor, triaki, gniazda). Opisy na płytce sterowniczej wykonane zostały również w technologii termotransferu. Obudowa (bodajże IP65) zakupiona w lokalnej hurtowni elektrotechnicznej. Czujnik SHT11 (wraz z filtrem SF1) podpięty został na ekranowanej skrętce FTP o długości 12m. Tutaj sporym problemem było uruchomienie transmisji na takiej odległości, mimo iż producent zapewniał, że wszystko powinno działać. To jednak przy odległości powyżej 3-5m były duże problemy z działaniem. Użytego rozwiązania niestety nie mogę ujawnić. Oprogramowanie zostało napisane w C (środowisko WinAVR) trochę problemów było ze zrobieniem sprawnego i czytelnego menu obsługiwanego przez 4 przyciski, lecz tutaj uzyskałem pomoc od przyjaciela. Sterowanie w zasadzie jest bardzo proste, dwu stanowe z zaprogramowaną minimalną histerezą dla temperatury i wilgotności. Sterownik miał załączać styczniki, które załączały obwód uruchamiający grzanie lub nawilżanie pomieszczeń.

    Aktualny stan pracy sygnalizowany jest za pomocą dwóch diod, niebieska – nawilżanie, czerwona – grzanie. Inne dodatkowe informacje są podawane na wyświetlaczu.

    Wszystko działa sprawnie przez ostatnie 3 lata. Niestety nie dysponuję już dokumentacją w postaci schematów płytek, czy oprogramowania. Mimo to postaram się odpowiedzieć na zaistniałe pytania.

    Poniżej zamieszam kilka zdjęć oraz "instrukcję" obsługi, które znalazłem przypadkowo i tchnęły mnie do napisania tego postu.


    Sterownik temperatury i wilgotności, Atmega, SHT11 Sterownik temperatury i wilgotności, Atmega, SHT11 Sterownik temperatury i wilgotności, Atmega, SHT11 Sterownik temperatury i wilgotności, Atmega, SHT11 Sterownik temperatury i wilgotności, Atmega, SHT11 Sterownik temperatury i wilgotności, Atmega, SHT11 Sterownik temperatury i wilgotności, Atmega, SHT11


    --
    Pozdrawiam,
    demeus

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    demeus
    Poziom 18  
    Offline 
    --
    pozdrawiam demeus
    Specjalizuje się w: elektronika komputerowa, sieci komputerowe
    demeus napisał 410 postów o ocenie 57, pomógł 10 razy. Mieszka w mieście Białystok. Jest z nami od 2005 roku.
  • Osprzęt kablowy
  • #2
    Paolo1976
    Poziom 24  
    Pamięta kolega, jaki był koszt tej obudowy? Bo wygląda bardzo solidnie i robi dobre wrażenie. PCB jest zabezpieczona przed utlenianiem?
  • #3
    janek1815
    Poziom 38  
    Gdzie to zostało zainstalowane i przetestowane?
    Druga rzecz to właśnie co z tą komunikacją z SHT11 na 12m jakieś naprowadzenie? Było to zrobione na drodze elektronicznej czy programowej?
  • Osprzęt kablowy
  • #4
    konel83
    Poziom 15  
    Taka mała dygresja, koledze chodziło chyba o skrętkę STP (Shielded Twisted Pair), a projekt wykonany starannie, sprawdza sie a o to chodzi ;D Czy czujnik temperatury uwzględnia wilgotność przy pomiarze?
  • #5
    adammruk
    Poziom 16  
    Myślę że na taką odległość najlepiej zastosować pętlę prądową, czasy w I2C nie są krytyczne więc można spokojnie taką linię obsłużyć. Ja przynajmniej szedłbym w tym kierunku.

    A czy mógłby kolega podzielić się procedurami obsługi tego SHT11? Mam w planach zająć się tym czujnikiem, i przydałyby się jakieś sprawdzone informacje.
  • #6
    mgiro
    Poziom 22  
    Jestem również ciekaw obsługi czujnika wilgotności, także proszę o szczegółowe informację :)
  • #7
    Mark II
    Poziom 20  
    konel83 napisał:
    Czy czujnik temperatury uwzględnia wilgotność przy pomiarze?

    Raczej odwrotnie?
  • #8
    FastProject
    Poziom 28  
    Obudowa fajna, a płytka bardzo ładnie do niej dopasowana. Razi jedynie to okno z LCD i przyciski na wierzchu...można by to wykończyć ciut lepiej.

    Co do dalekich transmisji do SHT11, to można zastosować komunikacje RS485. Co prawda mamy wtedy 2 procesory (jeden do odczytu i wysłania temperatury-wilgotności i drugi do odbioru i sterowania ale dane możemy przesyłać na dużo dłuższe odległości jak 12m.
  • #9
    Mateusz-me-1990
    Poziom 15  
    demeus napisał:
    Czujnik SHT11 (wraz z filtrem SF1) podpięty został na ekranowanej skrętce FTP o długości 12m. Tutaj sporym problemem było uruchomienie transmisji na takiej odległości, mimo iż producent zapewniał, że wszystko powinno działać. To jednak przy odległości powyżej 3-5m były duże problemy z działaniem

    Z tego co pamiętam producent wspomina o tym, że przy połączeniach ponad 10cm mogą być problemy. To i tak cud, że przy takich odległościach to działa. Tylko nie ma pewności, że zadziała przy następnej kopii. Tuż przy czujnikiu powinien być malutki kondziołek 100nF oraz najlepiej rezystor podciągający. Możliwe, że jest ale ja go najzwyczajniej nie zauważyłem. Myślałeś o RS485, można je wykorzystać jako medium do komunikacji między czujnikiem, ale to kosztem dodatkowego małego procesora co by obsłużył sam czujnik. Sprawdzasz CRC?

    mgiro napisał:
    Jestem również ciekaw obsługi czujnika wilgotności, także proszę o szczegółowe informację


    Polecam Datasheet SHT1x, gdzie jest wszystko opisane krok po kroku. Warto też zajrzeć do dokumentu CRC Checksum Calculation
    For Safe Communication of SHT1x and SHT7x Sensors
    . Zawiera wszystkie informacje jak zaimplementować sprawdzanie sumy kontrolnej CRC. Tak więc czytać i jak coś nie jasne pytać to naprowadzimy :D .

    edit:
    Widzę Kolega Daro_Elektronik wyprzedził mnie ciut z RS485 :D
  • #10
    demeus
    Poziom 18  
    Koszt obudowy był rzędu ok 40-60zł. Płytka jest zabezpieczona przed utlenianiem, za pomocą lakieru o czym wspomniałem w opisie.

    Urządzenie działa do dziś przy "produkcji" grzybów boczkniaków w Polsce, było robione na zamówienie.

    Uzyskanie transmisji pomiędzy czujnikiem SHT11, a procesorem było zrobione na drodze elektronicznej. I działa z kilkoma kopiami urządzenia bez zarzutu. I powtórzę dla wszystkich niedowiarków SHT11 nie obsługuje I2C, owszem wygląda to podobnie, ale to nie jest I2C.

    Skrętka jaka została użyta to FTP Link

    Tak czujnik wilgotności ma kompensacje temperaturową.

    Procedury do obsługi SHT11 już kiedyś zamieściłem na elektrodzie:
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=6617257#6617257

    Użycie RS485 do podłączenia SHT11 było jak najbardziej rozważane, lecz krytyczne w tym wypadku były narzucone z góry koszty.

    --
    Pozdrawiam,
    demeus
  • #11
    tmf
    Moderator Mikrokontrolery Projektowanie
    Możesz napisać gdzie kupiłeś obudowę? Wygląda fajnie i widać jest dostosowana do pracy na zewnątrz. Szukam podobnych i nigdzie nie mogę znaleźć.
  • #13
    tmf
    Moderator Mikrokontrolery Projektowanie
    adamslodki napisał:


    Nie do końca, to co pokazałeś to są zwykłe obudowy do elementów na szynę DIN. Do tego dopiero trzeba dokupić właściwą obudowę pasującą na szynę DIN do zamontowania w takiej obudowie.
  • #14
    siejacy_zamet
    Poziom 12  
    Witam.

    1. Razu pewnego zdarzyło mi się podpinanie SHT11 w komorze starzeniowej na 2m kablu i było z tym sporo problemów, bo środowisko było mocno zaszumione (grzałki, wentylatory, agregat chłodzący, silnik krokowy). Oczywiście czujnik podpięty był na skrętce ekranowanej. Dodanie kondensatorów 100nF + 10uF po obu stronach kabla na liniach zasilających oraz rezystorów podciągających 4k7 i kondensatorów 10pF do masy po obu stronach linii sygnałowych znacznie poprawiło transmisję. Błędy zdarzały się jednak raz na jakiś czas, głównie przy starcie agregatu. Niestety, Sensirion przesadził nieco z możliwościami swojego układu - w laboratoryjnych warunkach 10m prawdopodobnie jest osiągalne bez większych problemów.

    2. Faktycznie, SHT11 nie oferuje transmisji po I2C - to tylko z pozoru wygląda tak samo. Natomiast SHT21 posiada już pełne wsparcie I2C i umożliwia użycie standardowych bibliotek do jego obsługi. Przy montażu ręcznym może sprawić troszkę kłopotów mała obudowa QFN, zwłaszcza thermal pad od spodu - nic, czego hot air + dobry topnik by nie pokonał.

    Gratuluję wygranych bojów i życzę bezawaryjnej pracy urządzeń.
    Pozdrawiam!
  • #15
    Mateusz-me-1990
    Poziom 15  
    siejacy_zamet napisał:
    Niestety, Sensirion przesadził nieco z możliwościami swojego układu - w laboratoryjnych warunkach 10m prawdopodobnie jest osiągalne bez większych problemów.


    Mógłbyś wskazać w jakim konkretnym dokumencie piszą o tych 10m? Osobiście spotkałem się jedynie z informacją o 10cm, a to duża różnica.
  • #16
    siejacy_zamet
    Poziom 12  
    Zgadza się - piszą, że powyżej 10cm mogą występować przesłuchy i zerwanie komunikacji, co nie wyklucza stosowania układu na dłuższych przewodach. W akapicie, gdzie znajduje się wzmianka o tych 10cm, odsyłają do noty aplikacyjnej "ESD, Latch-up and EMC". Można w niej przeczytać, że w przypadku wystąpienia napięcia przekraczającego w którąś stronę napięcia zasilania, podania zbyt wysokiego napięcia zasilania, bądź wyładowania elektrostatycznego może nastąpić załączenie pasożytniczego tyrystora na pinie i w efekcie przekłamanie napięcia na tymże. Napisali również, że wystąpienie takich okoliczności może spowodować, że praca układu może nie być zgodna ze specyfikacją w datasheecie.

    Jak napisał Kolega demeus, udało mu się uzyskać poprawne odczyty na długim kablu, chociaż nie chce ujawnić w jaki sposób.

    W skrajnym przypadku można użyć światłowodu do transmisji danych, tylko jest to dosyć kosztowne rozwiązanie (SHT + uP + transceiver i drugie tyle po drugiej stronie). Wiem, że używa się takiego rozwiązania w środowisku, gdzie występują silne zakłócenia.
  • #17
    Mateusz-me-1990
    Poziom 15  
    No już z samym czytaniem to sobie poradzę. Pragnę jedynie zauważyć, że padające tam określenie "kilka metrów", czy samo "długie połączenia" jest określeniem dobrym przy pieczeniu ciasta, ale nie przy jakimkolwiek projektowaniu. W sumie ciężko spodziewać się od producenta podania konkretnej wartości, bo to zależy od wielu czynników, ale też ciężko ustalić za pewnik, iż przy długim połączeniu (i wartościach padających tutaj w temacie) powinno wszystko być ok. Można zmniejszyć częstotliwość transmisji, dodać filtry i to powinno pomóc. Tylko osobiście dla mnie takie rozwiązanie jest mocno karkołomne od dużych odległości są inne standardy bardziej do tego przystosowane, ale to jest moje zdanie.
  • #18
    siejacy_zamet
    Poziom 12  
    Zgadzam się. Cyfrowo: RS485, analogowo: 4-20mA. No i duże, ciężkie, drogie czujniki przemysłowe typu "gniotsja, nie łamiotsja".
    Swoją drogą - zmuszanie takich urządzeń, jak SHT11, czy DS18B20, do pracy na długich przewodach i w "niesprzyjających elektrycznie" warunkach jest czasochłonne i nie zawsze efektywne (ależ to człowiek kiedyś był głupi... ech...).
    Niemniej jednak ciekaw jestem jak autor sobie poradził.