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

Rejestrator temperatury

aleexander 30 Kwi 2009 17:23 15575 32
  • Rejestrator temperatury
    Witam!
    Chciałem zaprezentować urządzenie będące rejestratorem temperatury powietrza.

    Założenia:
    - wewnętrzna pamięć nieulotna, w której zapisywane by były wartości temperatury, możliwość ciągłej rejestracji przez co najmniej miesiąc
    - wyświetlacz LCD, pokazujący aktualne temperatury wewnętrzne i zewnętrzne, aktualny czas i opcje
    - możliwość komunikacji z komputerem poprzez magistralę RS485, do której są już podłączone dwa inne urządzenia (zamek w drzwiach i sterowalne gniazdo zasilania +24V)
    - złącze do programowania ISP
    - sygnalizator dźwiękowy różnych, wybranych zdarzeń
    - sygnalizacja optyczna wybranych zdarzeń
    - łatwość konfiguracji
    - strona estetyczna :)

    Rezultaty:

    Zasilanie
    Urządzenie zasilam napięciem +24V, na płytce znajdują się dwa stabilizatory - napięcia +5V oraz +3,3V.

    Mikrokontroler
    Zastosowany mikrokontroler to Atmega32 taktowany wewnętrznym zegarem 8 MHz.

    Pamięć
    Do przechowywania pomiarów zastosowałem dwa układy AT 24C64, o łącznej pojemności 128 Kb (16KB). Przyjąłem, że wartość temperatury będzie zapisywana do pamięci co 10 minut. Jedna próbka zajmuje 2 bajty, co przy uwzględnieniu pewnego zapasu starcza na 50 dni ciągłej rejestracji. Pozostała pamięć w przyszłości będzie mogła być wykorzystana do czegoś innego, zależy co dodam do programu.

    Czujniki temperatury
    Wykorzystałem scalone czujniki temperatury produkcji Maxim-Dallas. Obydwa układy dysponują rozdzielczością pomiaru wynoszącą 12 bitów.
    Jako czujnik wewnętrzny pracuje układ DS1631 w obudowie DIP, a jako zewnętrzny układ DS7505 SMD. Temperaturę podawaną przez czujniki przeliczam dla uzyskania rozdzielczości 0,1 stopnia.
    Na potrzeby zasilania DS7505 musiałem dodać stabilizator 3,3V.
    Czujniki temperatury oraz pamięci EEPROM komunikują się z mikrokontrolerem przy użyciu magistrali I2C.

    Komunikacja z komputerem
    Standardowa aplikacja układu MAX485. Prędkość transmisji 4800 b/s.
    Dwuprzewodowa magistrala RS485.

    LCD
    Standardowy wyświetlacz oparty o sterownik HD44780. Posiada dwie linie po 24 znaki. Niestety bez podświetlenia ale dostałem go za darmo więc nie było co wybrzydzać :)

    Panel przedni
    4 przyciski sterujące pracą i umożliwiające poruszanie się po menu. Dodatkowo dwie diody LED SMD, w tym jedna dwukolorowa. Służą do pokazywania paru określonych zdarzeń podczas pracy. Szerzej o nich w części Program.





    Konstrukcja mechaniczna
    Podstawę stanowi płytka główna. Wykonana z laminatu o grubości 1mm, ma wystarczającą sztywność by utrzymać całość. Część przednią stanowi prostokąt o szerokości płytki, wycięty z poliwęglanu (pleksi zimnogiętej). Przykręcony do podstawy za pomocą dwóch płaskowników aluminiowych. Wyświetlacz LCD przymocowany jest do frontu poprzez śruby M3 i małe tulejki dystansowe, tak samo panel z przyciskami.
    Zdaję sobie sprawę, że takie wyeksponowanie elementów konstrukcyjnych ma tylu przeciwników, co zwolenników, jednak mi się bardzo podoba kiedy wszystko dobrze widać :) Taki nowoczesny design.
    Wyświetlacz LCD oraz przyciski podłączone do płytki głównej poprzez taśmy wielożyłowe.
    Na spodzie przykleiłem 4 gumowe stopki, żeby całość nie ślizgała się po podłożu i stała poziomo.

    Program
    Napisanie programu zajęło mi najwięcej czasu (swoją drogą brakowało trochę wolnego czasu, gdybym przysiadł do niego to pewnie udałoby się szybciej).
    Pisałem w języku BASCOM. Skompilowany program zajmuje obecnie około 62% pamięci Atmegi. W przyszłości zamierzam dodać jeszcze kilka funkcji.
    Urządzenie jest konfigurowalne poprzez menu, z którego mamy dostęp do wszystkich ustawień. Konfiguracja jest zapisywana w EEPROMIE Atmegi i przywracana przy każdym uruchomieniu.
    Zegar czasu rzeczywistego jest zrealizowany programowo, bazując na kwarcu 32768 kHz. Po sprawdzeniu precyzji odmierzania czasu okazało się, że układ spóźnia się około 3 sekund tygodniowo, co w przeliczeniu daje niecałe 3 minuty rocznie. Myślę, że jest to niezły wynik :)
    Ustawianie godziny nieco uprościłem, mianowicie możliwe jest synchronizowanie zegara co pełną godzinę. Czyli kiedy jest godzina 14 to w menu zegara ustawiamy godzinę 14 i w momencie naciśnięcia przycisku zegar jest ustawiany na 14:00:00. Planuję dodać synchronizację z zegarem komputera.
    Odczyt zapisanych pomiarów temperatury jest możliwy z poziomu menu, lub poprzez komputer, po uprzednim przesłaniu zawartości obydwóch EEPROMÓW przez RS485. Transfer przy prędkości 4800 b/s zajmuje około 3,5 minuty. Nie jest to długo dla mnie i póki co nie planuję zwiększania szybkości :)
    Program generalnie jest ciągle w fazie rozwoju.


    Budowa i uruchomienie całości zajęło kilka tygodni, z czego parę dni to konstrukcja mechaniczna, trawienie i lutowanie, a reszta to program.

    Kosztorys
    Szczerze mówiąc nie liczyłem, dużo części miałem, ale myślę, ze dało by się zmieścić w 150 złotych. Najdroższymi elementami byłby wyświetlacz, mikrokontroler i pozostałe układy (czujniki, EEPROMY). Reszta to praktycznie sama drobnica (rezystory, kondensatory, tranzystory, diody, przyciski i inne).


    Zdjęcia :)

    Rejestrator temperatury Rejestrator temperatury Rejestrator temperatury Rejestrator temperatury

    Rejestrator temperatury Rejestrator temperatury Rejestrator temperatury Rejestrator temperatury

    Rejestrator temperatury Rejestrator temperatury Rejestrator temperatury

    Przed ostatnie zdjęcie przedstawia czujnik zewnętrzny (jeszcze nie zamontowany).

    Widoczna na jednym ze zdjęć zworka wykonana przewodem to efekt mojego niedopatrzenia przy projektowaniu schematu - wydawało mi się, że podłączyłem wszystkie piny gniazda ISP, a okazało się, że jeden tylko wyglądał na podłączony - stąd przewód :)

    Schemat układu:
    Rejestrator temperatury

    Zapraszam do komentowania :)
    Pozdrawiam serdecznie, aleexander


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • Sklep HeluKabel
  • #2 30 Kwi 2009 19:54
    krzycho123
    Poziom 31  

    Co rejestrujesz za jego pomocą ? Temperaturę otoczenia ? czy jakieś bardziej wyszukane dane urządzeń .

    Jeszcze jedna rzecz która mi przychodzi go głowy to fakt że miedź w połączeniu z poliwęglanem wygląda ładnie ale pomyslałeś o konserwacji miedzi jakiś np. lakierem bo po pewnym czasie miedź się będzie utleniać i zrobi się brzydka ciemna.

  • Sklep HeluKabel
  • #3 30 Kwi 2009 20:29
    obelix2
    Poziom 21  

    aleexander napisał:
    (...) - możliwość komunikacji z komputerem poprzez magistralę RS485, do której są już podłączone dwa inne urządzenia (zamek w drzwiach i sterowalne gniazdo zasilania +24V) (...)


    Konstrukcja wzorowa! Ale mam jedno pytanko: na co ci jest zamek, podłaczony do czujnika :?: Masz może elektroniczny zamek, z czujnikim temperatury :?:

  • #4 30 Kwi 2009 20:39
    nomys
    Poziom 9  

    Moim skromnym zdaniem wszystko fajnie, tylko co do estetyki....hmm no niby ok, ale styl nie uderza, jakby to powiedzieć, w nowoczesność. Pominę fakt, że mało jest na tym forum ciekawych paneli z wyświetlaczem lcd. Odwieczny problem: OBUDOWA
    ehh... pozdrawiam :)

  • #5 30 Kwi 2009 20:57
    aleexander
    Poziom 14  

    Urządzenie jest rejestratorem temperatury powietrza na zewnątrz domu, oraz dwukanałowym termometrem. Mierzona jest temperatura na zewnątrz oraz wewnątrz, zewnętrzna jest zapisywana.

    Co do magistrali RS485 - tworzy ona sieć "inteligentnego pokoju". Łączy parę urządzeń, niekoniecznie ze sobą związanych :) Chodzi o możliwość sterowania każdym urządzeniem z każdego miejsca sieci. Konfiguracja multi-master. Głównym węzłem jest komputer, na którym działa aplikacja sterująca, jednak nie jest on wymagany do pracy pozostałych urządzeń. Całość opiera się o ośmio-znakowe komendy przesyłane siecią. Każde z urządzeń ma możliwość sterowania każdym, dzięki czemu funkcje i możliwości są tak naprawdę dowolne.

    Kwestia ścieżek - macie rację, pomyślę nad jakimś lakierem, szczególnie na przedni panel.

    Pozdrawiam :)

  • #6 30 Kwi 2009 21:28
    tos18
    Poziom 37  

    Witam


    Rozumiem że przeźroczysty element na płytce pomiaru temperatury zewnętrznej to dioda led.Diody takie w czasie pracy wydzielają ciepło (niewiele ale jednak) pisze kolega że pomiaru dokonuje z rozdzielczością 0.1 stopnia. Czy nie sądzi kolega że dioda spowoduje pogorszenie dokładności wskazań w zakresie niskich temperatur (dogrzeje czujnik) ?

  • #7 30 Kwi 2009 21:30
    bobo
    Poziom 29  

    Tylko jedna uwaga, dlaczego kolega stosuje angielskojęzyczny opis na wyswietlaczu?
    Polski język jest jednym z najpiękniejszych i nie ma się go co wstydzić.
    Pozdrówka

  • #8 30 Kwi 2009 21:46
    Jimi Hendrix
    Poziom 19  

    Dlaczego nie wykorzystałeś sprzętowego I2C?

  • #9 30 Kwi 2009 22:24
    aleexander
    Poziom 14  

    Zgadza się - przeźroczysty element na płytce czujnika to dioda LED typu flux. Kolega tos18 ma rację - dioda podgrzewa czujnik. Jednak nie jest ona przeznaczona do ciągłego świecenia. Jest sterowana zegarem, zaświeca się co 10 sekund na czas 100 ms. Dzięki temu efekt podgrzewania jest pomijalny. Płytka czujnika przed montażem na zewnątrz zostanie polakierowana (z wyjątkiem samego czujnika, aby nie pogarszać przewodności cieplnej) w celu zabezpieczenia przed warunkami atmosferycznymi.

    Jeśli chodzi o język wyświetlacza. W żadnym wypadku nie neguję piękna naszego ojczystego języka. Uważam jednak, że stosowanie polskich napisów w urządzeniach technicznych jest ciut bardziej problematyczne - dochodzą polskie znaki diakrytyczne, których wyświetlanie wymaga definiowania w kodzie programu. Dodatkowo, osobiście bardziej podobają mi się takie napisy po angielsku, kwestia gustu :)
    Przykładowo skrót od słowa Sounds - Snd. wygląda moim zdaniem lepiej niż Dźw. - sytuacja jeśli mamy, tak jak ja, ograniczone miejsce na wyświetlaczu.

    Wykorzystałem programowe I2C z powodu.. Właściwie to nie wiem :) Nie odczuwam obecnie wad takiego rozwiązania. Być może dla sprzętowego TWI musiałbym inaczej poukładać ścieżki, bo program nie różniłby się zbyt mocno.



    Pozdrawiam

  • #10 30 Kwi 2009 22:25
    karol12b
    Poziom 16  

    Konstrukcja wykonana bardzo przyzwoicie i starannie mam pytanie dotyczące tego czy można użyć czujnika DS18B20 zamiast tego DS1631

  • #11 30 Kwi 2009 22:53
    sepako
    Poziom 14  

    Sam aktualnie zajmuje się tym tematem i ciekawią mnie rozwiązania tego typu, myślę że wszystko zależy od konkretnych potrzeb. Czasem warto zbudować solidnie wykonane urządzonko o estetycznej obudowie jak powyższe, a czasem powiedzmy potrzeba zbadać pewne zjawisko i wyciągnąć wnioski z wyników, po którym całość można rozebrać i użyć do czegoś innego. Niestety nie nadaje się to do sfotografowania i pokazania na forum (pająk na płytce stykowej) a zrobienie funkcjonalnie tego samego ale ładnie i estetycznie wyglądającego zajmuje duuużo więcej czasu. A przecież zastosowane rozwiązania techniczne jak i programowe w tych marnie wyglądających pracach mogą równie wiele wnieść - ciekawi mnie dlaczego tego typu rozwiązań jest chyba mniej. W tym przypadku interesował mnie pomiar temperatury z 10 czujników temp do tego wilgotność w 2 i nasłonecznienie jak i prędkość wiatru. Pomiar temp co min5 sek (uzależniony od dT/dt) + stemple czasowe i z odległości kilkuset metrów, możliwość gromadzenia danych przez co najmniej rok - i okazuję się że układ po zastosowaniu paru trików programowych maksymalnie prosty a większość czasu poświęcona na modyfikacje oprogramowania - mam więc pytanie czy prezentacja tego typu rozwiązań ma sens?

  • #12 30 Kwi 2009 23:05
    Duch__
    Poziom 31  

    karol12b napisał:
    Konstrukcja wykonana bardzo przyzwoicie i starannie mam pytanie dotyczące tego czy można użyć czujnika DS18B20 zamiast tego DS1631


    Różnica polega w komunikacji. DS18B20 łączy się przez 1-wire, a DS1631 przez I2C (zresztą co widać na schemacie) i nie można z tego względu stosować tych czujników zamiennie.

    Pytanie do autora. Czemu nie zastosowałeś jeden EEPROM 256KB a 2 x 128KB? Była by możliwość udostępnienia kodu?

    Ta dioda przy czujniku sygnalizuje coś na zasadzie "dokonano pomiaru"?

    Pozdrawiam Duch__

  • #13 30 Kwi 2009 23:32
    monty_p
    Poziom 18  

    Super sprawa. Uwielbiam takie projekty, gdzie płytka jest schludnie zrobiona a wszystko zamaskowane jedynie pleksą.

    Gratulacje !!

    Na allegro widziałem pamięć 24c1024 za parę groszy. Ta dopiero dawała by duuuże możliwości :P

  • #14 01 Maj 2009 08:17
    maly_elektronik
    Poziom 23  

    Czy jest potrzebny aż taki duży uC do tego projektu :?: Nie wystarczył by po prostu atmega8/16 :?:

  • #15 01 Maj 2009 11:12
    aleexander
    Poziom 14  

    Kolega Duch__ ma rację, czujniki DS18B20 i DS1631 różnią się w sposobie komunikacji. Nic nie stoi jednak na przeszkodzie, aby zmodyfikować schemat i dodać obsługę 1Wire. W końcu to tylko jeden rezystor podciągający i jeden dodatkowy port µkontrolera :)
    Wykorzystałem układy na I2C z powodu ich mniejszej podatności na zakłócenia transmisji (głównie przerwania). Transmisja I2C może zostać zatrzymana w dowolnym momencie, a następnie kontynuowana (nie ma ramek czasowych jak w 1Wire).

    Zastosowałem dwa układy 24c64 (o łącznej pojemności 16 KB) ponieważ miałem takie. Nie wykluczam w przyszłości jednak zmiany ich na większe, np. podane 24c1024. Wymagać to będzie jedynie zmian w kodzie (niewielkich), ale faktycznie znacząco zwiększy możliwości :)
    Szczerze mówiąc, myślałem początkowo o użyciu pamięci 1Mbit, jednak zaważyły względy ekonomiczne :)

    Program. Nie ma problemów z udostępnieniem, ale jest on jak by to powiedzieć - wysoce niezoptymalizowany. Brakuje sporo komentarzy, i mogą zdarzać się jeszcze jakieś drobne błędy. Może być trochę nieczytelny, za co z góry przepraszam :)
    Program w załączniku.

    Aha, dioda przy czujniku sygnalizuje ogólnie pracę rejestratora. Można ją wyłączyć z poziomu menu. Przy okazji zbiega się w czasie z każdym pomiarem, więc jeśli miga - znaczy wszystko ok. Sterowana jest prądem około 40 mA, widać z daleka :)

    Dlaczego Atmega32? Jak pisałem program powstał w Bascomie. Nie jest to tajemnicą, że jego kompilator nie tworzy najbardziej zoptymalizowanych i oszczędnych kodów :) Program w obecnej postaci zajmuje 62%, a planuję dodać jeszcze kilka opcji w przyszłości. Dlatego wybór padł na Atmegę 32.

    Pozdrawiam :)

  • #16 01 Maj 2009 12:26
    tiggerek1982
    Poziom 14  

    Bardzo ciekawy projekt. zastanawia mnie jak działa u ciebie ta sieć na rs485 .możesz pokazać także resztę modułów działających w niej czy soft na komputerze ?
    co do przedniego panelu ,a może byt tak zamiast przycisków zastosować impulsator...
    Rejestrator temperatury

    bardzo upraszcza zabudowę a poruszanie sie po takim menu efektywnie wygląda, obsługa bardzo prosta. parę linijek w bascomie nawet na elektrodzie można znaleźć.

    pozdrawiam

  • #17 01 Maj 2009 15:51
    aleexander
    Poziom 14  

    Jak wcześniej wspomniałem, moja sieć RS485 opiera się o ośmio-znakowe komendy (64 bity). W strukturze takiego pakietu zawiera się adres, polecenie i ewentualne dane.
    Każde urządzenie pracujące w sieci posiada czujnik temperatury.

    Zamieszczam archiwum ze schematami pozostałych dwóch urządzeń oraz prostego konwertera RS232-RS485 którego używam do przyłączenia komputera do magistrali.

  • #18 01 Maj 2009 16:05
    norbik_27
    Poziom 11  

    Kolego aleexander mógłbyś wymienić szczegółowo jakie ten rejestrator ma zadane funkcje? Podać jego możliwości?
    Wykonanie pierwsza klasa:)
    Powodzenia w dalszych projektach:)

  • #19 01 Maj 2009 18:16
    tiggerek1982
    Poziom 14  

    Ciekawi mnie jak rozwiązałeś problemy z "Konfiguracja multi-master" Chodzi mi o sam dostęp do magistrali, jak sterowniki wykrywają zajętą bądź wolną mag. i ewentualne pierwszeństwo w wysyłaniu ramki (token, nasłuch?....) czy błędy.

    napisałeś: W strukturze takiego pakietu zawiera się adres, polecenie i ewentualne dane. . Możesz podać przykładowe ramki ? .
    co do terminala (PC), napisany w delphi??
    wiem że być może delikatnie odchodzę od tematu ale mam 3 sterowniki w domu które chciałbym razem połączyć a pomoc bardzo by mi się przydała(,mój pomysł na multi-master dość komplikuje całość projektu :cry: .

    pozdrawiam

  • #20 01 Maj 2009 21:04
    aleexander
    Poziom 14  

    Prezentowane urządzenie umożliwia:
    - pomiar temperatury wewnętrznej i zewnętrznej, w odstępach 1 sekundy
    - rozdzielczość pomiaru 12 bitów
    - zapis temperatury zewnętrznej do nieulotnej pamięci EEPROM co 10 minut
    - funkcja termostatu: sygnalizacja diodami LED przekroczenia ustawionych progów temperatury, w przyszłości możliwość sterowania dowolnym urządzeniem za pośrednictwem sieci RS485
    - pełna konfigurowalność z poziomu menu
    - sygnalizacja optyczna zapisu temperatury do pamięci, wyczerpywania się wolnej pamięci oraz pracy urządzenia (dioda przy czujniku zewnętrznym)
    - sygnalizacja dźwiękowa pełnych godzin (a 'la kukułka) oraz zapisu do pamięci
    - możliwość przesłania zapisanych pomiarów do komputera lub dowolnego innego urządzenia w sieci RS485
    - wyświetlanie aktualnego czasu

    Sieć RS485, która już od dłuższego czasu funkcjonuje i nie mam z nią problemów jest zbudowana raczej w prosty i mało wyszukany sposób.
    Protokół transmisji nie jest wyposażony w zaawansowany mechanizm kolejkowania i zarządzania dostępem do sieci. Przyjąłem, że wszystkie urządzenia podpięte do sieci są obsługiwane przez jednego człowieka (mnie), więc w gruncie rzeczy w jednym czasie nie ma za bardzo możliwości wystąpienia dwóch zdarzeń na linii. Część urządzeń (jak na przykład opisany tu rejestrator) może jednak mieć możliwość generowania zdarzeń autonomicznie, w losowych porach, bez udziału człowieka. Przykładowo przekroczenie temperatury zerowej może być sygnalizowane i przesyłane samoczynnie do innego urządzenia. Kwestię kolizji na linii rozwiązałem tak, że każde urządzenie cały czas nasłuchuje linię. Jeśli odebrany zostanie jakiś znak, wszystkie urządzenia poza nadającym blokują swoje ewentualne wysyłanie na krótki czas, kilkuset ms. Dlatego kolizja na linii może wystąpić tylko wtedy, kiedy jakimś cudem obydwa zaczęłyby nadawać jednocześnie :)
    Po prostu przyjąłem, że taka sytuacja nie może mieć miejsca.
    Istnieje jednak mechanizm potwierdzania każdego polecenia. Czyli przykładowo, jeśli wysyłam polecenie zamknięcia zamka, status zamka w aplikacji na pc nie zmienia się, dopóki nie zostanie odebrana informacja, że zamek został faktycznie zamknięty. Jest to takie samo polecenie, jak to przesyłane w czasie zamknięcia zamka przyciskiem. Nadzór nad linią i poprawnością transmisji sprawuje więc operator, widać czy polecenie zostało wykonane poprzez odebranie odpowiedniej informacji zwrotnej.
    W związku z tym, że rejestrator umożliwia przesyłanie większej ilości danych przez sieć, co trwa około 3 minut, planuje wprowadzenie osobnego polecenia, blokującego wysyłanie komend przez urządzenia "do odwołania". Zagwarantuje mi to brak zakłóceń w transmisji.

    Struktura pojedynczej ramki przesyłanej w sieci:
    S02TTEMP gdzie:
    S02 - adres urządzenia i kierunek (kierunek wprowadzony dla aplikacji na pc, S oznacza do urządzenia, M do komputera, urządzenia między sobą używają tylko kierunku S)
    TTEMP - polecenie do wykonania przez urządzenie

    Na takie polecenie wracają z urządzenia dwie ramki zwrotne:
    M02TA+25
    M02TB248

    TA - oznacza zgłaszanie temperatury urządzenia (całych stopni)
    +25 - znak i wartość temperatury (całe stopnie)
    TB - znacznik wartości temperatury po przecinku
    248 - wartość po przecinku (248/256 = 0,97)
    Zatem otrzymana wartość temperatury wynosi 25+0,97 = 25,97 stopnia.

    Zgadza się, program na pc napisany w Delphi.

    Pozdrawiam, aleexander

  • #21 02 Maj 2009 09:46
    norbik_27
    Poziom 11  

    A o jakie funkcje planujesz jeszcze wzbogacić ten wspaniały projekt? :)

  • #22 02 Maj 2009 14:05
    aleexander
    Poziom 14  

    W wolnej chwili planuję dopisać całość komunikacji po RS485, zapamiętywanie minimalnej i maksymalnej temperatury dobowej, ogólnej oraz wyświetlanie tendencji (rosnąca, stała, malejąca). Zamierzam również dodać synchronizację zegara z komputerem.

    Oczywiście cały program jest obecnie w fazie testów i zdarzają się drobne błędy, które staram się na bieżąco usuwać.

    Pozdrawiam, aleexander

  • #23 03 Maj 2009 08:14
    Tarnus
    Poziom 20  

    aleexander napisał:
    Zasilanie
    Urządzenie zasilam napięciem +24V, na płytce znajdują się dwa stabilizatory - napięcia +5V oraz +3,3V.



    Dlaczego 24V? Ze stabilizatora zrobiłeś piekarnik do podgrzewania temperatury wewnętrznej termometru.

    Marek

  • #24 03 Maj 2009 10:17
    Ad_am
    Poziom 11  

    Witam,

    Jakby brakowało prędkości to MAX485 spokojnie ciągnął 19200 w warunkach przemysłowych. Robiłem jakieś próby na 38400, chyba nie było też źle (o ile pamiętam - kawałek czasu temu), ale stanęło na bezpiecznym 19200... około 15 klocków z 485, dystans max. może z 50 m - to akurat bardzo niewiele jak na możliwości 485.

  • #25 03 Maj 2009 10:17
    aleexander
    Poziom 14  

    Układ zasilam napięciem 24V ponieważ takie napięcie rozsyłam kablem sieciowym po pokoju razem z magistralą RS485. Stabilizatory znajdują się po przeciwnej stronie płytki niż czujnik temperatury wewnętrznej.

    Układ pobiera około 30 mA, co przy spadku napięcia 19V na stabilizatorze powoduje, że straty mocy na nim sięgają 0,57W. Stabilizator jest przykręcony do płytki i jest ledwo ciepły.

    Sprawdzałem również dokładność wskazań poprzez porównanie zmierzonej wartości wewnętrznej do wskazań dokładnego fotograficznego termometru rtęciowego. Wskazania praktycznie nie różniły się, dlatego grzanie stabilizatora to nie problem.

    Pozdrawiam, aleexander

  • #26 03 Maj 2009 22:13
    KAROL_13
    Poziom 11  

    Bardzo ciekawe urządzenie,estetyka na 6 :) jak i pomysłowość.Jedyna rzecz jaka mi się nie podba to obudowa,co z nią? Zakładasz jakąś?

  • #27 04 Maj 2009 00:30
    Tygiel
    Poziom 12  

    Witam

    Cos podobnego bylo moim tematem pracy dyplomowej. Zrobilem mala siec oparta na rs485 - kilka uzadzen z grupy sensorow ia ktorow, jednym z nim byl uklad mierzacy temperature i wysylajacy ja okresowo w siec. Urzadzenia - aktory sparowane z tym sensorem reagowaly na przeslana wartosc temperatury - np. cos wlaczaly lub wylaczaly. Konfiguracja sieci - konfigurowanie urzadzeń, ustawianie adresow logicznych itp odbywalo sie za pomoca programu z poziomu PC. Mozna za jego pomoca wyszukac wszystkie urzadzenia pracujace w sieci i zmienic programowo dzialanie dowolnego urzadzenia.

    Rejestrator temperatury

    Rejestrator temperatury

    Pozdrawiam

  • #28 04 Maj 2009 09:22
    zgierzman
    Poziom 19  

    sepako napisał:
    Sam aktualnie zajmuje się tym tematem i ciekawią mnie rozwiązania tego typu, myślę że wszystko zależy od konkretnych potrzeb. Czasem warto zbudować solidnie wykonane urządzonko o estetycznej obudowie jak powyższe, a czasem powiedzmy potrzeba zbadać pewne zjawisko i wyciągnąć wnioski z wyników, po którym całość można rozebrać i użyć do czegoś innego.kość wi Niestety nie nadaje się to do sfotografowania i pokazania na forum (pająk na płytce stykowej) a zrobienie funkcjonalnie tego samego ale ładnie i estetycznie wyglądającego zajmuje duuużo więcej czasu. A przecież zastosowane rozwiązania techniczne jak i programowe w tych marnie wyglądających pracach mogą równie wiele wnieść - ciekawi mnie dlaczego tego typu rozwiązań jest chyba mniej.
    (...)
    mam więc pytanie czy prezentacja tego typu rozwiązań ma sens?

    Moim zdaniem powinno się takie projekty publikować, ale jak pokażesz urządzenie na pająku, to Cię zakrzyczą, że brak obudowy, że luty brzydkie, że kable nie pospinane i tak dalej. Może jedna osoba na 10 odniesie się do wartości merytorycznej projektu.
    Jeśli jesteś w stanie przełknąć falę obelg dotyczących estetyki, a chcesz się podzielić ciekawymi rozwiązaniami to dawaj śmiało - ja chętnie poczytam.

    BTW na zagranicznych forach sporo jest różnej maści prototypów, pająków i innych cudów na płytkach uniwersalnych - wystarczy choćby spojrzeć na DIY Zagranica. Jeśli projekt prezentuje jakieś ciekawe rozwiązania, to dla mnie mógłby być poklejony nawet gumą do żucia. Estetykę obudowy powinno się traktować jako kryterium dodatkowe, a nie podstawowe.

  • #29 04 Maj 2009 14:32
    arkusn
    Poziom 11  

    Witam.
    Przejrzałem te źródła w bascomie ale oprócz Config Portc.3 = Output i
    Transmitter Alias Portc.3 nie mogę nic więcej znaleść o komunikacji po rs485
    (zaznaczam że jestem początkujący w programowaniu AVR). Czy mógłbym otrzymać więcej informacji na temat tej komunikacji.
    Z góry dziękuję.
    Pozdrawiam.

  • #30 04 Maj 2009 16:01
    aleexander
    Poziom 14  

    Karol_13 -> Urządzenie jest skończone mechanicznie. Praktycznie nie ma ono obudowy poza widoczną ścianką przednią i tak najprawdopodobniej zostanie :) Jedynie jakieś nadzwyczajne sytuacje mogą spowodować, że będę coś kombinował z dodatkowymi osłonami.

    Kolego arkusn, program rejestratora nie jest jeszcze skończony :) Nie ma w nim nic dotyczącego komunikacji po RS485, za wyjątkiem wysyłania wszystkich zarejestrowanych wartości (ale tylko na żądanie, z poziomu menu).
    Konkretnie ta część (od linii nr 1337 w kodzie):

    Code:

    I2cstart
    I2cwbyte Mem1w
    I2cwbyte 0
    I2cwbyte 0
    I2cstart
    I2cwbyte Mem1r

    For Repeat2 = 0 To 3600
    I2crbyte Temp_readed(1) , Ack
    I2crbyte Temp_readed(2) , Ack
    Comm = Temp_readed(1) * 10
    Comm = Comm + Temp_readed(2)
    Set Transmitter
    Print Comm
    Reset Transmitter
    Locate 2 , 8
    Select Case Repeat2:
       Case 0 To 9 : Lcd Spc(3) ; Repeat2
       Case 10 To 99 : Lcd Spc(2) ; Repeat2
       Case 100 To 999 : Lcd Spc(1) ; Repeat2
       Case Is > 999 : Lcd Repeat2
    End Select
    Waitms 15
    Next
    I2cstop


    Fragment
    Code:

    Set Transmitter
    Print Comm
    Reset Transmitter

    powoduje wysłanie wartości przez sieć.

    W niedalekiej przyszłości zamierzam dopisać pozostałą część komunikacji :)

    Jeśli jesteś zainteresowany jak to będzie wyglądać, to załączam kod innego urządzenia pracującego już na magistrali. Posiada on pełną obsługę komunikacji o identycznej strukturze jaka będzie w rejestratorze.

    Pozdrawiam, aleexander