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

Termometr z funkcją przeciwpożarową

asembler 24 Sty 2008 20:15 5302 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
    O autorze
    asembler
    Poziom 32  
    Offline 
    asembler napisał 2099 postów o ocenie 11, pomógł 123 razy. Jest z nami od 2007 roku.
  • #2 4732184
    lukas_sa
    Poziom 16  
    Posty: 264
    Pomógł: 15
    Ocena: 28
    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 4732214
    ogr_ogrowicz
    Poziom 11  
    Posty: 30
    Ocena: 3
    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 4732392
    asembler
    Poziom 32  
    Posty: 2099
    Pomógł: 123
    Ocena: 11
    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 4732433
    vcd_a
    Poziom 18  
    Posty: 388
    Pomógł: 9
    Ocena: 6
    Witam, czy autor mógłby się podzielić kodem źródłowym do mikrokontrolera?, chodzi głównie o obsługę graficznego LCD :), pozdrawiam ;]
  • #6 4732454
    asembler
    Poziom 32  
    Posty: 2099
    Pomógł: 123
    Ocena: 11
    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/topic920836.html

    A tu są płytki z pomocą których mozna zrobić sobie taki i inny projekt
    https://www.elektroda.pl/rtvforum/topic926114.html
  • #7 4732980
    Ibuprom
    Poziom 26  
    Posty: 1377
    Pomógł: 52
    Ocena: 180
    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 4733018
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    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 4733525
    asembler
    Poziom 32  
    Posty: 2099
    Pomógł: 123
    Ocena: 11
    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 4736480
    asembler
    Poziom 32  
    Posty: 2099
    Pomógł: 123
    Ocena: 11
    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 4736930
    żarnik
    Poziom 11  
    Posty: 19
    Ale daj schemacik jak to zrobić.
  • #12 4736983
    asembler
    Poziom 32  
    Posty: 2099
    Pomógł: 123
    Ocena: 11
    Ze schematami jest krucho, gdyż nie mam programu rysującego schematy pod windows98
    Moze ktoś podeśle?
  • #13 4738741
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    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 4738827
    asembler
    Poziom 32  
    Posty: 2099
    Pomógł: 123
    Ocena: 11
    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 4738851
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    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 4739192
    asembler
    Poziom 32  
    Posty: 2099
    Pomógł: 123
    Ocena: 11
    No fakt że nie mnie :-)
    Ale zdrugiej strony jest rewers :)
    AVE I TO TAK POPROSTU BEZ ZADNYCH PODTEKSTÓW?
  • #17 4739568
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    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.

Podsumowanie tematu

✨ Projekt termometru z funkcją przeciwpożarową wykorzystuje 12 czujników temperatury DS18B20 podłączonych do mikrokontrolera, z wyświetlaniem wyników na graficznym LCD. System monitoruje gwałtowne zmiany temperatury i uruchamia alarm sygnalizujący potencjalne zagrożenie pożarowe. Czujniki rozmieszczone są w różnych pomieszczeniach drewnianego domu, a komunikacja odbywa się przewodowo, z planami zastosowania lokalnych wyświetlaczy na każdym piętrze. Problemy techniczne obejmują ograniczenia długości kabli (30-50 m) i pojemności magistrali 1-Wire, a także stabilność pomiarów zależną od taktowania mikrokontrolera (wewnętrzny oscylator vs. kwarc). Identyfikacja czujników realizowana jest przez odczyt ich unikalnych numerów seryjnych oraz procedurę serwisową, która wykrywa podłączone czujniki i umożliwia ich przyporządkowanie do konkretnych lokalizacji. Dodatkowo zastosowano metodę weryfikacji poprawności działania czujników poprzez wywołanie alarmu i odsłuchanie numeru czujnika nadawanego w systemie piątkowym. Oprogramowanie napisane jest w asemblerze, obsługa LCD i czujników zajmuje około 800 linii kodu, a całość mieści się w pamięci około 8 kB. Dyskusja porusza także kwestie stabilności działania czujników DS18B20 na różnych mikrokontrolerach (np. ATmega8535, ATtiny2313) i wpływu taktowania na poprawność odczytów temperatury.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA