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

Termometr z funkcją przeciwpożarową

asembler 24 Sty 2008 20:15 4966 17
  • Termometr z funkcją przeciwpożarową

    Kolejny termometr no cóż trudno.
    Do procesora podłaczone 12 czujnikow DS18B20 i jednocześnie wyswietlane na LCD. Dodatkową funkcją jest to ze procesor czuwa i w przypadku gwaltownej zmiany tempertuty uruchamia alarm sygnalizują mozliwos pożaru. Już raz ta syganlizacja zadzialala na szczescie to tylko ugotowałem garnek na czerwono:-)

    Oryginalne zdjęcie. Nieczytelne i zajmujące 500kB.

    Termometr z funkcją przeciwpożarową

    Moderowany przez androot:

    Ja was naprawdę BARDZO PROSZĘ, zapoznajcie się z zasadami zamieszania zdjęć w DIY! Jedno ze zdjęć na SAMYM początku, żeby pojawiło się na stronie głównej. Druga sprawa to ROZDZIELCZOŚĆ i JAKOŚĆ zdjęcia. Jest mnóstwo (nawet darmowych) programów do ROZJAŚNIANIA i ZMNIEJSZANIA zdjęć. To co było poprzednio zajmowało ponad 500kB. Obecne 41kB.


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • #2
    lukas_sa
    Poziom 16  
    Ten lcd jest alfanumeryczny czy graficzny? Jeżeli "literowy" to jak przestawiłeś litery o 90st.? Czy to tylko to taki typ wyświetlacza?

    Według mnie chyba przesadziłeś- 12 DS-ów do domu? po co? I ostatnie: jak się z nimi komunikujesz? kabelki czy bezprzewodowo?
  • #3
    ogr_ogrowicz
    Poziom 11  
    Pomysł z dynamiką zmian temperatury... dla mnie rewelacja.
    I wreszcie coś samodzielnego (po serii projektów linków innych autorów) :)

    Miałeś jakieś problemy związane z odległością czujników od "centralki"?
    Z danych na wyświetlaczu wnioskuję że oplotłeś kablami cały budynek.
  • #4
    asembler
    Poziom 32  
    To wyswietlacz graficzny
    Co do ilosci czujników to tylko ograniczenie wyswietlacza narzuciło tą ilosc. W sumie jest ich wiecej bo jeszcze jest pomiar wody cieplej i zimnej w kolektorach słonecznych na dworze w słoncu i w cieniu.
    Domek jest drewniany i chodzilo mi o zabezpieczenie sie przed pozarem
    4 pokoje łazienka garaz piwnica klatka schodowa strych oj naprawde musialem sie streszczac

    Na razie zastosowalem kabelki docelowo mają byc pośredniczace procesory. na kazdym piętrze bedzie poprostu taki sam wyświetlacz poco mam chodzi daleko. W sumie bedą 4 wyswietlacze .
    No były problemy z odległoscia od centralki w sumie to do centrali dochodzą dwa przewody potem sie rozchodzą. Zeby to chodzilo jest pewien sposób:-) teraz długość kabli to około 30-50 m nie mierzyłem pojemniosc daje w kość


    Wartość tego postu zależy od czytającego i wynosi patrz pierwszy wiersz wyswietlacza

    Mozna zrobic na wyswietlaczach LED nawet mam takiei wysiwetlacze po starej tabeli kursów walut. Ma tylko jeden minus duzo żre prądu a placic za wyswietlanie temp 300zł rocznie to ja nie z tych:-)

    Co do schematu. Schemat żaden rewelacyjny poprostu zwykła atmega8 plus stabilizator. Chodzi na oscylatorze wewnętrznym.
  • #5
    vcd_a
    Poziom 18  
    Witam, czy autor mógłby się podzielić kodem źródłowym do mikrokontrolera?, chodzi głównie o obsługę graficznego LCD :), pozdrawiam ;]
  • #6
    asembler
    Poziom 32  
    Z tym jest problem gdyż jak ostatnio podzieliłem sie kodem zródłowym to dostałem burę, ponieważ to jest asembler. Asembler moze to nic takiego ale niestety mój jest nieczytelny gdzyż mam swój kompilator ,linker i edytor a mnemoniki są takie zebym mógł sie łatwo nauczyć przechodząc z jednego asemblera na drugi dla przykladu wszelkie komendy mov i pokrewne są okreslane jednym mnemonikiem LD czyli mam jeden rozkaz na kilkanascie rozkazów AVR to samo z innymi rozkazami. W sumie to sam siebie nie rozumiem:-) to taki żart
    Programator też mam specjalny bo oparty na COM-ie z długim kablem 4 żyłowym tak zebym mógł przeprogramowywac komputerek w samochodzie

    https://www.elektroda.pl/rtvforum/viewtopic.php?t=920836&highlight=

    A tu są płytki z pomocą których mozna zrobić sobie taki i inny projekt
    https://www.elektroda.pl/rtvforum/viewtopic.php?t=926114&highlight=
  • #7
    Ibuprom
    Poziom 25  
    Ja mam inne pytanie, jak oznaczałeś DS-y? Tzn czy masz jakąś procedurkę do odczytu numeru seryjnego DS-a i przyporządkowywania go jako konkretny czujnik czy poprostu wpisałeś seriale w kod programu i w razie awarii któregoś z czujników wymagane jest przeprogramowanie procesora z zewnątrz?
  • #8
    alnus
    Poziom 28  
    Podłączam się pod pytaniem Ibuproma o to w jaki sposób zrealizowałeś identyfikację nowo podłączonych DS'ów. Napisałeś, że układ chodzi na wewnętrznym zegarze MEGI. Z moich doświadczeń z DS'ami wynika, że o wiele lepiej pracują, gdy taktuje się procka z kwarcu. Na wewnętrznym zegarze niby wszystko chodziło, ale często wywalało po 85 stopni, mimo zachowanego timingu. Po zmianie na kwarc - problemy się skończyły.
  • #9
    asembler
    Poziom 32  
    Nie wiem w jak masz zrealzowaną funkcje pomiaru z noty aplikacyjnej wynika ze mogą byc duze róznice. U mnie chodzi od 12 Mhz do 14.5 Mhz
    bezproblemowo. A dodatkowo na wyskaiwanie temperatury 85 stopni jest sposób rzadko sie to zdarza ale sie zdarza. Ja poprostu nie wyswietlam temperatury 85 stopni jezeli w czesniejsze pomiary był dalekie od tej temperatury. Dodatkowo licze CRC po kazdym pomiarze
    z tym oznaczaniem to jest zawsze trudność. Narazie załozylem ze czujniki są na właśniwych miejscach. Natomias mam procerure SERVICE która wyswietla mi wszystkie podłaczone czujniki do systemu z własniwą jego nazwą. Teraz w przypadku gdy odepne jeden czujnik na przyklad na wyswietlaczu pokaze sie --.-C stad wiem ze czujnik walnął albo go ukradli. (najczesciej biore sam do innych urzadzen.
    Nastepnie właczam funkcję SERVICE i odczytuje nowy zestaw identyfikatorów do ramu stary jest w eepromie. Procedura porównuje, które czujniki są now a które stare i na miejsce strarego wpisuje nowy identyfikator. Troszkę to skoplikowałem niepotrzebnie. Procedura jest dalej w pisaniu. Niestety w przypadku wypiecia 2 czujników naraz przyporzadkuje program losowo wtedy trzeba jeżeli los nam nie sprzyjał albo fizycznie je zamienic albo robic to pojedynczo. Docelowo mam zamiar zrobic prosty edytor do wpisywania nazw poszczegolnych czujników co powinno załatwic sprawe definitywnie.
  • #10
    asembler
    Poziom 32  
    W sprawie identyfikacji wymyśliłem prosty sposób.
    Poniewaz kazdy czujnik wywołuje alarm słyszany w całym domu, to zamiast alarmu wysyłam na głośnik numer czujnika w systemie piątkowym.
    Sprawdzanie polega na tym, że przełaczam na procedure identyfikacji czujników biorę w dłoń zapalniczke i podchodze do kazdego czujnika.
    Jezeli pogrzeje czujnik wywołam alarm - usłysze numer czujnika - jezeli numer czujnika zgadza sie z jego nazwą idę dalej jezeli nie to pogrzewam drugi raz - teraz usłysze nowy numer i tak dalej.
    Jezeli wszystkie czujniki są na swoich miejscach procedura sprawdzania trwa tyle co przejscie od jedngo do n+1- czujnika po kolei.
    N+1 jeden poniewaz akceptacja czujnika nastepuje po wywołaniu alarmu w nastepnym lub po uplywie 1 minuty. 1 minuta dlatego ze po tym czasie nastepuje automatyczne wyjscie z trybu serwisowego w przypadku braku reakcji na klawiszach lub czujnikach.
  • #11
    żarnik
    Poziom 11  
    Ale daj schemacik jak to zrobić.
  • #12
    asembler
    Poziom 32  
    Ze schematami jest krucho, gdyż nie mam programu rysującego schematy pod windows98
    Moze ktoś podeśle?
  • #13
    Freddie Chopin
    Specjalista - Mikrokontrolery
    ile linii kodu cie to kosztowalo? jaki duzy wyszedl kod? uzywasz jakichs trybow uspienia procka? jesli tak, to tak +/- ile czasu procek dziala, a ile nie?

    co do posta o niestabilnej pracy czujek na wewnetrznych oscylatorach - powiedz nam prosze - w jakim jezyku napisales swoj kod obslugi tych czujek, ze wyszlo ci niestabilnie...? <:

    0x41 0x56 0x45!!
  • #14
    asembler
    Poziom 32  
    Nie wiem czy dobrze cie zrozumialem sma obsługa wyświetlacza to 300 linii obsługa czujników też około 300 linii osługa beepera 200 linii do tego program głowny wyswietlajacy temperatury.
    Jezeli pytasz o długość kodu po skommpilowaniu to doscelowo bede pisał aż osiągnie 8 kB
    z tego obsługa LCD to 2KB wraz z tablicą znaków
    Dokładnei to mi trudno odpowiedziec na to pytanie bo z godziny na godzine ilosc jest zmienna:-) Byłem przy 3800 bajtach tak mniej wiecejj
    progrmataor tak szybko programuje ze cieżko zauważyc:)
    Nie mam żadnych uśpień
    Co do obsługi DS-ów u mnie wszysto jest w przerwaniach i odczyt nastepuje bit po bicie na kazde przerwanie.
    W jakim języku pisze? .............
    Pozdrawiam ASEMBLER:-)

    CHCIALEM ZAPYTAC CO OZNACZA SŁOWO "AVE" U CIEBIE NA DOLE?
  • #15
    Freddie Chopin
    Specjalista - Mikrokontrolery
    asembler napisał:

    W jakim języku pisze? .............
    Pozdrawiam ASEMBLER:-)

    jakbys tak czasem glebiej przeczytal posta, to bys zauwazyl, ze nie pytalem o akurat to ciebie, tylko alnus'a

    Cytat:

    CHCIALEM ZAPYTAC CO OZNACZA SŁOWO "AVE" U CIEBIE NA DOLE?

    http://en.wikipedia.org/wiki/Ave

    0x41 0x56 0x45!!
  • #16
    asembler
    Poziom 32  
    No fakt że nie mnie :-)
    Ale zdrugiej strony jest rewers :)
    AVE I TO TAK POPROSTU BEZ ZADNYCH PODTEKSTÓW?
  • #17
    alnus
    Poziom 28  
    Skoro padlo pytanie - odpowiadam. Żaden ze mnie programista i jak coś muszę pisać to robię to w Bascomie, ale żeby nie zwalać wszystkiego tylko na brak moich umiejętności, to próbowałem też gotowce, które były zrobione w C i zachowywało się to podobnie. Próby były robione na mega 8535 i tiny 2313. Termometry pracowały na ok. 5 metrowym przewodzie. Żeby nie być źle zrozumianym - na wewnętrznym zegarze też to pracowało, ale raz na kilka, kilkadziesiąt minut, a czasem rzadziej zdarzały się błedy , skutkujące wyświetleniem 85 stopni, a po przełączeniu na kwarc nie zaobserwowałem takiego zjawiska, nie zmieniając programu. Stąd właśnie wzięła się moja uwaga.
  • #18
    Freddie Chopin
    Specjalista - Mikrokontrolery
    asembler napisał:
    AVE I TO TAK POPROSTU BEZ ZADNYCH PODTEKSTÓW?

    to juz od ciebie zalezy [;

    0x41 0x56 0x45!!