Popularny post slon Napisano Marzec 9, 2019 Popularny post Udostępnij Napisano Marzec 9, 2019 Przedstawiam projekt domowej centralki. Założenia przy budowie tego urządzenia były zbliżone do klasycznych alarmów aczkolwiek ja miałem swoją wizję i chciałem do tego wykorzystać Arduino nano. W związku z tym , że projekt po ukończeniu chciałem zamontować w domu to sporo czasu zajęło znalezienie właściwej obudowy. Ostatecznie wybrałem obudowę kradex z37 w kolorze czarnym , która jest całkiem spora jak na arduino nano ale w środku miały też znaleźć się inne moduły połączone przewodami. Do obudowy chciałem zamontować wyświetlacz LCD i tu zaczęły się schody bo nie chciałem ciąć obudowy. Po przeszukaniu kilku sklepów internetowych i przestudiowaniu rysunków technicznych okazało się , że pasuje jedna obudowa. Na szczęście obydwie obudowy pasowały do siebie wymiarami a pod spodem znalazło się miejsce na klawiaturę numeryczną. W ten sposób powstało to co widać na zdjęciach. Zanim przejdziemy do tego co w środku popatrzmy na cały schemat projektu. Schemat bardzo prosty aczkolwiek opiszę nieco poszczególne elementy. Zasilacz podłączony do cewki przekaźnika i dodatkowo jego dodatni biegun do styku NO. Bateria podłączona do styku NC przekaźnika (bieguny ujemne połączone razem). Po włączeniu zasilacza do sieci prąd płynie przez kondensatory i zasila arduino. Od arduino zasilanie +5V dociera do pozostałych modułów. W sytuacji chwilowego zaniku napięcia lub dłuższej awarii Styki NC przekaźnika zwierają się i układ pracuje na baterii. Kondensatory mają za zadanie potrzymać napięcie na czas przełączania między NO a NC. Rozwiązanie bardzo skuteczne i nie zawiodło ani razu od ponad roku. Tutaj wiele nie trzeba mówić moduł pir zamknięty w puszce instalacyjnej. Dodam jedynie , że kabel (w zasadzie kable bo mam dwa czujniki) sygnałowy podłączony jest do złącza analogowego arduino. Tutaj LCD z konwerterem na magistralę I2C. No i "pajączek" w całej okazałości. Zacznijmy od lewego polnego rogu widać widać tam buzzer , (w zasadzie to widać tylko konektory bo zam buzzer jest wyprowadzony na zewnątrz) który odgrywa melodyjkę przy uzbrojonym alarmie i wykrytym ruchu. Po prawej stronie tak w połowie wysokości obudowy widać przekaźnik. Pod przekaźnikiem moduł DS3231 czyli zegar czasu rzeczywistego podłączony do arduino przez magistralę I2C(mając więcej niż jeden moduł podpięty do tej magistrali warto użyć programu I2C scanner do sprawdzenia ich adresów). W prawym dolnym rogu moduł BT podłączony bez konwertera napięć ale pin RX modułu BT podłączony z pinem TX arduino przez dzielnik napięcia co daje bezpieczne 3,3V . Jak na dobry alarm przystało chciałem mieć możliwość otrzymywania powiadomień przez SMS. Ze względu na to , że moduły GSM do arduino są w różnych cenach a ja nie chciałem dużo wydawać zdecydowałem się na zakup najtańszego jaki tylko znalazłem. Mowa oczywiście o module Neoway 590E za 15zł 🙂. Zlutowałem oddzielny projekt z tym modułem żeby zobaczyć jak będzie działał. Powiem szczerze , że działał całkiem nieźle ale po tygodniu testów raz nie wysłał sms'a i ostatecznie stwierdziłem , że jednak wykorzystam stary smartfon z androidem. Program do obsługi alarmu (konkretnie chodziło o wysyłanie wiadomości SMS) pod androida stworzyłem przez appinventor jest tam naprawdę mnóstwo możliwości na zrobienie czegoś przydatnego ze "starego smartfona". Od strony programowania arduino głównie korzystałem arduino IDE ale momentami było to trochę uciążliwe. Zwłaszcza gdy chce się napisać kilka linijek kodu. Poszukałem więc alternatywy pod coś z androidem i tak trafiłem na... Bluino loader, który naprawdę świetnie sobie radzi (ze standardowymi bibliotekami) czas kompilowania i wgrywania skeczy trwa dosłownie błyskawicznie. Aczkolwiek aby wgrywać skecze przez usb wymagane jest pełne wsparcie dla hosta USB (ja w swoim am 🙂 ). Mam nadzieję że kod będzie czytelny bo widać tam funkcję która jak sama nazwa może wskazywać wyświetla datę i godzinę w odpowiednim układzie (samą bibliotekę do obsługi ds3231 pobrałem z internetu) tutaj terminal USB pod androida dostępny w sklepie play i wyświetlane kolejne zdarzenia z alarmu (niestety niema opcji sms) Terminal ma sporo opcji i najczęściej z niego korzystam. Na koniec zamieszczam jedną opcję dodatkową czyli wyświetlanie temperatury wewnętrznej (odczyt z modułu ds3231 z małą kalibracją programową bo w środku obudowy jest nieco wyższa temperatura) Następnie mamy przedstawione odliczanie do uzbrojenia i detekcja z dwóch czujników. Cyfry przy miejscach detekcji określają liczbę naruszeń czujnika. Sam kod alarmu ma ponad 800 linijek kodu więc niema sensu tego tu wklejać... void zmienPin() { Serial.println(); serialCzas(); Serial.print(" podaj obecny pin "); for (int i=0; i<4; i++) { while (Serial.available() == 0) {} while (Serial.available() > 0) { nowyPin[i] = Serial.read();// wpisanie starego Serial.print(nowyPin[i]); delay(150); } } int check=0; for(int i=0; i<4; i++) { if (PIN[i]==nowyPin[i]) { check++; } else if (PIN[i]!=nowyPin[i]) { check--; } }// zamyka for check++ if (check==4) { Serial.println(); serialCzas(); Serial.print(" wpisz nowy pin "); //----- for (int i=0; i<4; i++) { while (Serial.available() == 0) {} while (Serial.available() > 0) { nowyPin[i] = Serial.read();// wpisanie nowego Serial.print(nowyPin[i]); PIN[i]=nowyPin[i]; delay(150); } } Serial.println(); serialCzas(); Serial.print(" pin zmieniony "); } else if (check!=4) { Serial.println(); serialCzas(); Serial.print(" zmiana nie powiodla sie"); } Serial.println(); } Wklejam funkcję zmiany pinu a tak właściwie to podmiany wartości w tablicy. Oczywiście , żeby to zadziałało to trzeba zadeklarować zmienne (u mnie są to zmienne globalne ) char PIN[4]={'2','3','5','6'}; char nowyPin[4]; PIN[4] to pin domyślny wraca zawsze po resecie arduino. Jeśli ktoś chciał by aby nowyPin zostawał po resecie to trzeba by było zapisywać wartości do pamięci EEPROM a następnie je odczytać przy starcie arduino. Mam nadzieję , że kogoś zaciekawi ten projekt albo spowoduje , że zrobicie coś nowego , lepszego , coś co wam się przyda. 3 Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Marzec 9, 2019 Udostępnij Marzec 9, 2019 @slon, właśnie zaakceptowałem Twój opis, możesz go teraz zgłosić do akcji rabatowej umieszczając link w temacie zbiorczym. Dziękuję za przedstawienie ciekawego projektu, zachęcam do prezentowania kolejnych DIY oraz aktywności na naszym forum 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
adi19887 Marzec 13, 2019 Udostępnij Marzec 13, 2019 Projekt bardzo dobry - zwłaszcza pod względem estetycznym dobranych obudów. Czy mógłbyś zdradzić jaki typ budowy wykorzystałeś do LCD ? Napisałeś kradexa ale tej drugiej już nie. Ogólnie ciekawy pomysł. Cytuj Link do komentarza Share on other sites More sharing options...
slon Marzec 13, 2019 Autor tematu Udostępnij Marzec 13, 2019 Pewnie. Obudowa DT-065 pod wyświetlacz. Występuje w dwóch wersjach kolorystycznych i jest tylko w jednym sklepie internetowym z logiem lisa :). Szkoda , że niema jej w botlandzie no ale to już inna kwestia. Jak by to dobrze wszystko zaprojektować to można by do tej obudowy zmieścić cały mój projekt. Miałem tak zrobić i zastąpić klawiaturę membranową na analogową pozbył bym się wtedy wszystkich tych kabli i zwolnił bym 8 pinów cyfrowych kosztem jednego analogowego. Z tym, że trzeba by wtedy nawiercać otwory w tej obudowie z lcd i od strony programowej trzeba by było zmienić trochę kodu. Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
hashpl Marzec 13, 2019 Udostępnij Marzec 13, 2019 Witam. Super projekt. Miałbym wielka prośbę. Mógłbyś podesłać schemat zasilania? Chodzi mi o to przełączanie (+kondensatory) między zasilaniem z sieci a bateria np 18650 li ion. Szukam od dłuższego czasu dobrego rozwiązania. Cytuj Link do komentarza Share on other sites More sharing options...
slon Marzec 13, 2019 Autor tematu Udostępnij Marzec 13, 2019 Jeśli chciał byś zasilić ten projekt z ogniwa 18650 to wystarczy ładowarka do smartfona połączona przez ten przewód i wpięta w ten układ. Na końcu tego modułu są cztery pady. Do wewnętrznych podłączasz + i - od ogniwa zgodnie z oznaczeniami na płytce. Do zewnętrznych wyjście zasilania opisane OUT i zgodnie z biegunami podłączasz na wejście przetwornicy (IN) podnoszącej napięcie na 5V (lub regulowana jak wolisz). Wyjście z przetwornicy podłączasz do pinu 5v arduino oraz GND i to tyle. Generalnie to w sekcji zasilanie jest sporo informacji na ten temat. Warto tam zerknąć i poczytać. Cytuj Link do komentarza Share on other sites More sharing options...
hashpl Marzec 14, 2019 Udostępnij Marzec 14, 2019 (edytowany) Rozumiem. Ja chciałbym ogólnie zobaczyć schemat twojego podłączenia i przełączanie za pomocą przekaźnika i kondensatorów. Dasz radę narysować ten schemat? Bardzo by mi pomógł. Moduł tp4056 znam i używam. Chciałbym taki układ jak ty że przełącza się przy zaniku napięcia sieciowego. Edytowano Marzec 14, 2019 przez hashpl Cytuj Link do komentarza Share on other sites More sharing options...
slon Marzec 14, 2019 Autor tematu Udostępnij Marzec 14, 2019 tak dokładnie u mnie to wygląda. Natomiast do poprawnego działania potrzebny jest zasilacz o "odpowiedniej budowie". Mam tu na myśli taki , który po odłączeniu z sieci i odczekaniu kilku sekund nie spowoduje chwilowego przełączenia pomiędzy stykami NO NC. Możesz to łatwo sprawdzić podłączając zasilacz do cewki przekaźnika(sam zasilacz nic więcej). Jeśli po wyjęciu zasilacza z gniazdka usłyszysz tylko jedno "cyknięcie" to jet ok jeśli natomiast po paru sekundach usłyszysz dodatkowo "cyk cyk" to takiego zasilacza nie należy stosować do tego schematu. 1 Cytuj Link do komentarza Share on other sites More sharing options...
hashpl Marzec 14, 2019 Udostępnij Marzec 14, 2019 Wielkie dzięki. Powiedz mi jeszcze ile tych kondensatorów? Im większa pojemność tym lepiej tak? Cytuj Link do komentarza Share on other sites More sharing options...
slon Marzec 14, 2019 Autor tematu Udostępnij Marzec 14, 2019 Kondensatory widać na zdjęciu. Trzy przed Vin arduino i pięć na +5V OUT arduino. Co do pojemności to tak je dobrałem aby w momencie przełączania przekaźnika na zasilanie z baterii napięcie +5V na arduino było stabilne (dokładnie to zmienia się o 0.01-0.02V) Dzięki temu wszystko stabilnie pracuje i pir nie "szaleje". Cytuj Link do komentarza Share on other sites More sharing options...
hashpl Marzec 20, 2019 Udostępnij Marzec 20, 2019 Kondensatory 12 V wystarcza? Czy jak je najlepiej dobrać? Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Marzec 21, 2019 Udostępnij Marzec 21, 2019 @hashpl popularniejszym standardem jest 16V. Zresztą jak dasz takie, które są na trochę wyższe napięcie to nic złego się nie stanie - to tylko parametr maksymalny. Cytuj Link do komentarza Share on other sites More sharing options...
slon Marzec 21, 2019 Autor tematu Udostępnij Marzec 21, 2019 Treker już udzielił ci odpowiedzi ale jeśli by cię interesowało jakie dopuszczalne napięcie jest na kondensatorach z mojego projektu to jest to : ~25V (takie miałem ) na Vin i bodajże 16V na Vout. Zwróć uwagę na to, że im większe maksymalne napięcie tym większe rozmiary kondensatora przy tej samej pojemności a co za tym idzie inny rozstaw wyprowadzeń kondensatora. 1 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!