Witam serdecznie.
Chciałbym przedstawić mój pierwszy projekt oparty o platformę Arduino.
Część elektroniczną wykonywałem sam, a program napisany został w oparciu o szablon Ethernet. Podziękowania dla użytkownika z elektrody ditomek za pomoc w zrozumieniu kodu – szablonu Ethernet.
Przeglądałem wcześniej inne projekty inteligentnych domów, ale nie wzorowałem się na nich. Projekt jest cały czas rozwijany i będzie rozwijany, stad też na chwilę obecną nie publikuję kodu źródłowego :) (dla wyjaśnienia) Musi on przejść jeszcze poprawki oraz nie jest na 100% gotowy.
1. Platforma:
Projekt oparty jest o klon Arduino Mega oraz Ethernet shield. Za łączność Shield -> WiFi odpowiada Router Asusa.
2. Cel projektu
Projekt jest podzielony na dwie części – inteligenty dom oraz centrum multimedialne.
Inteligenty dom ma umożliwiać sterowaniem światłem lub kontaktami za pomocą Arduino poprzez przeglądarkę internetową, dzięki czemu każde urządzenie podłączone do sieci WiFi lub routera przez kabel Ethernet ma możliwość sterowania przekaźnikami – komputer PC, laptop, smartphone, tablet czy SmartTV. Cześć multimedialna – jest to strona www postawiona na lokalnym serwerze w domu. Można za jej pomocą oglądać filmy, zdjęcia, czy pobierać jakieś pliki. Strona jest obecnie w budowie i będzie jeszcze aktualizowana. Oparta jest o szablon, znaleziony na dysku. Oparty jest o tabelki dzięki czemu strona jest w pełni responsywna.
3. Inteligenty dom, forma przedstawienia
Projekt został przedstawiony za pomocą makiety na której umieszczone są dwie oprawki na żarówki oraz dwa kontakty. Dodatkowo umieszczone są dwa przełączniki schodowe, dzięki czemu sterowanie światłem bez problemu może odbywać się bez podłączonego Arduino. Jeśli więc z jakiś powodów Arduino odmówi posłuszeństwa nie jesteśmy pozbawieni sterowania światłem. Przekaźniki oraz przełączniki są podłączone na zasadzie dwóch przełączników schodowych – bardzo dobrze jest to wytłumaczone na serwisie YouTube.
Wszystkie przekaźniki są połączone do kabli UTP cat. 5 – do każdego przekaźnika używane są 3 żyły – 5V, GND, Sygnał. Nie jest to przerost nad treścią ponieważ mamy jeszcze 3 wolne żyły, które w przyszłości zamierzam użyć do rozwoju projektu.
Kable zakończone końcówkami RJ 45 T568A – niektóre miałem, niektóre zaciskałem sam.
Przekaźniki to gotowe moduły, zawierają optoizolator. Można to zrobić samemu jak najbardziej, jednak cena jaka oferowana przez sąsiadów z Chin jest jest zbyt atrakcyjna.
Wiem jak dużo osób narzeka na porządek w kablach, mam nadzieję, że spełniłem Wasze oczekiwania wobec tego aspektu :)
Wszystkie kable UTP są podłączone do “płyty komunikacyjnej” która jest “pośrednikiem” pomiędzy makietą a Arduino.
Ona również nie jest skończona, bo jak wspominałem wyżej mamy do dyspozycji jeszcze 3 żyły :)
4. Centrum multimedialne.
Tutaj screeny z komputera oraz telefonu. Na obecną chwilę 21.04.2017 działa odtwarzanie filmów. Wybór z lewego menu i wyświetlanie zawartości na środku strony realizowane jest za pomocą javyscript. Ikonka muzyki będzie zastąpiona ikoną żarówki. Nie widzę sensu odtwarzania muzyki na takiej stronie.
Jeśli chodzi o połączenie – strona wystawiona za pomocą programu XAMP na porcie 8080 z tego względu że strona na Arduino będzie działać na porcie 80. Połączenie między stroną centrum multimedialnego a a Arduino to po prostu odnośnik.
W planach jest zrobienie logowania do strony oraz zabezpieczanie strony sterującej specjalnym hasłem.
Na dole w stopce wyświetlana jest także aktualna data oraz godzina – zrealizowana również za pomocą javyscript. Wszystkie skrypty są mojego autorstwa.
Przewijanie filmów oraz oglądanie jest bardzo płynne. Nic się nie zacina, nie trzeba czekać na buforowanie.
5. Podsumowanie na dzień 21.04
W najbliższym czasie postaram się dodać zdjęcia z podłączenia oraz działania.
Program do Arduino jest prawie gotowy – na ukończeniu jest strona sterująca.
Strona do centrum multimedialnego robi się :)
Pokuszę się może o jakiś materiał multimedialny w postaci filmu jak to działa :)
Dzisiaj na wieczór będę dalej robił stronę.
Postaram się też omówić kod oraz go udostępnić razem ze skryptami.
Liczę na dobre oceny.
Mój pierwszy post proszę więc o wyrozumiałość. Projekt będzie nadal rozwijany, szczególnie zaraz po maturach :)
Dziękuję za uwagę :)
P.S
Przy okazji pozdrawiam maturzystów :)
6. Aktualizacja 22.04 – strona WWW dla Arduino :)
Dzisiaj skończyłem pisać kod strony WWW dla Arduino.
Jutro postaram się go udostępnić – muszę go poukładać i dodać komentarze.
Dzięki za komentarze, nie rozumiem tylko tego pośpiechu z Waszej strony i słabe oceny za nie udostępniony kod.
Tak wygląda końcowa strona WWW:
Tutaj jeszcze filmik, przepraszam za jakość, ale dzisiaj jest już późno, a nagrywanie monitora zawsze tak się kończy :)
https://drive.google.com/open?id=0B_F5lnky8FjdbXU4cGFXc0V3aEk
Zamiast prawdziwych świateł mamy diody, mam nadzieje że to co najważniejsze widać.
Pozdrawiam :)
7. Aktualizacja 03.06.2017
Cześć wstawiam opisany kod.
Powinien działać bez problemu.
Tutaj załączam link z bibliotekami
https://drive.google.com/open?id=0B_F5lnky8FjdOWxvd2d3YlFfNGc
które wklejamy do :
Dokumenty > Arduino.
Biblioteka IR gryzie się z biblioteką IR robots i trzeba ją usunąć.
Znajduje się ona w folderze Arduino.
U mnie jest to : C:\Program Files (x86)\Arduino\libraries
Teraz wystarczy wgrać kod do Arduino. Jak widać w programie piny 22, 24, 26 oraz 28 to piny wejściowe do przekaźników.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
/* Web Server A simple web server that shows the value of the analog input pins. using an Arduino Wiznet Ethernet shield. Circuit: * Ethernet shield attached to pins 10, 11, 12, 13 * Analog inputs attached to pins A0 through A5 (optional) created 18 Dec 2009 by David A. Mellis modified 9 Apr 2012 by Tom Igoe modified 02 Sept 2015 by Arturo Guadalupi modified 22 April 2017 by Mateusz Stazecki, mati_323 majsterkowo.pl */ // biblioteki ------------- #include <SPI.h> #include <Ethernet.h> #include <Bridge.h> #include <HttpClient.h> // ------------------------ // piny do przekaźników ---- #define swiatlo1 22 #define swiatlo2 24 #define kontakt1 26 #define kontakt2 28 // ------------------------- int swiatlo1Status = LOW; int swiatlo2Status = LOW; int kontakt1Status = LOW; int kontakt2Status = LOW; // Adres mac oraz IP naszego WebServera byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192, 168, 1, 177); String odczyt=""; // ustawianie zmiennej odczyt jako pustej // służy ona do odbierania danych z przeglądarki // inicjalizacja webservera na porcie 80 EthernetServer server(80); void setup() { // otwieranie pinów do sterowania ----- pinMode(swiatlo1, OUTPUT); pinMode(swiatlo2, OUTPUT); pinMode(kontakt1, OUTPUT); pinMode(kontakt2, OUTPUT); // ------------------------------------ Serial.begin(9600); // serial port while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } // start the Ethernet connection and the server: // uruchomienie WebServera Ethernet.begin(mac, ip); server.begin(); Serial.print("server is at "); Serial.println(Ethernet.localIP()); } void loop() { odczyt=""; // listen for incoming clients EthernetClient client = server.available(); if (client) { Serial.println("new client"); int statuspin =5; boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); odczyt+=c; // Zmiena odczyt przechwytująca cały client read // if you've gotten to the end of the line (received a newline // character) and the line is blank, the http request has ended, // so you can send a reply if (c == '\n' && currentLineIsBlank) { // send a standard http response header /* Strona internetowa. Wszystkie odnośniki do obrazków oraz stylow CSS mam u siebie na serwerze Xampa na porcie 8080 Trzeba je zmienić pod siebie. */ client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); // the connection will be closed after completion of the response client.println(); client.println("<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>"); client.println("<html><head><title>SmartHome Arduino </title><meta http-equiv='content-type' content='text/html; charset=iso-8859-2'>"); client.println("<link rel='stylesheet' type='text/css' href='http://192.168.1.5:8080/arduino/styl.css'> "); client.println("<script type='text/javascript' src='http://192.168.1.5:8080/arduino/skrypt.js' charset='utf-8'></script></head>"); client.println("<body bgcolor='#777777'><table width='1000' border='0' cellpadding='0' cellspacing='0' align='center'>"); client.println("<tr><td width='1' bgcolor='white'></td><td width='1000'><table width='1000' border='0' cellpadding='0' cellspacing='0' align='center'>"); client.println("<tr><td colspan=3><img src='http://192.168.1.5:8080/arduino/images/logo.jpg' width=1000 height=300></td></tr><tr>"); client.println("<td colspan=3 background='http://192.168.1.5:8080/arduino/images/index_04.gif' width=1000 height=30 align=right class='text'></td>"); client.println("</tr><tr><td colspan=3><img src='http://192.168.1.5:8080/arduino/images/index_05.gif' width=1000 height=12 alt=''></td><tr><tr>"); client.println("<td background='http://192.168.1.5:8080/arduino/images/index_06.gif' width=187 valign=top align=right>"); client.println("<p><center><font size='6px'><br>Kliknij na <br>obrazek obok, aby sterowac urzadzeniem<br> </font>"); client.println("<img src='http://192.168.1.5:8080/arduino/images/men.png' alt='Tekst alternatywny' width='110px' height='50px'/></center>"); client.println("</td><td background='http://192.168.1.5:8080/arduino/images/index_07.gif' width=15></td>"); client.println("<td background='http://192.168.1.5:8080/arduino/images/index_06.gif' width=541 valign=top>"); client.println("<table width='95%' border=0 align=center ><tr><td><p align='justify'>"); client.println("<table border='0' class='menu' width='100%' height='100%' background='http://192.168.1.5:8080/arduino/images/index_06.gif'><tr>"); client.println("<td> <a href='&swiatlo1?'><img src='http://192.168.1.5:8080/arduino/images/swiatlo1.png ' alt='tekst alternatywny' width='250px' height='250px' /></a></td> <td> "); client.println("<a href='&swiatlo2?'><img src='http://192.168.1.5:8080/arduino/images/swiatlo2.png' alt='tekst alternatywny' width='250px' height='250px'/></a></td>"); client.println("</tr><tr><td><a href='&kontakt1?'><img src='http://192.168.1.5:8080/arduino/images/gniazdko1.png ' alt='tekst alternatywny' width='250px' height='250px'/></a></td> "); client.println("<td><a href='&kontakt2?'><img src='http://192.168.1.5:8080/arduino/images/gniazdko2.png ' alt='tekst alternatywny' width='250px' height='250px'/></a></td>"); client.println("</tr></table></td></tr></table><br></td></tr><tr><td colspan=3><img src='http://192.168.1.5:8080/images/index_09.gif' width=1000 height=14 alt=''>"); client.println("</td></tr><tr><td colspan='3' background='http://192.168.1.5:8080/arduino/images/index_10.gif' width=750 height=34 align=center class='stopka'><div id='time'> "); client.println("</div></td></tr></table><td width='1' bgcolor='white'></td></tr></table></body></html>"); break; } // Odnośniki do sterowania światełem są między znakami '&' oraz '?' niżej wyjaśnione dlaczego if (c == '\n') { // you're starting a new line currentLineIsBlank = true; } else if (c != '\r') { // you've gotten a character on the current line currentLineIsBlank = false; } } } // give the web browser time to receive the data delay(1); // close the connection: Serial.println("poczatek"+odczyt+"koniec"); // wypisanie zmiennej odczyt do seriala, słowa poczatek oraz koniec pokazuja nam jak dlugi jest odczyt String data=odczyt.substring(0,20); // ciąg znaków z pierwszych 20 znaków - reszta niepotrzebna int pocz = data.indexOf('&'); // szukam znaku '&' i zwracam inkes int kon = data.indexOf('?'); // szukam znaku '?' i zwracam indeks String ster = data.substring(pocz+1,kon); //zmienna przechowująca ciąg znaków który zawiera się pomiędzy '&' a '?' Serial.println(ster); // wypisuje zmienną sterującą do seriala int liczba_sterujaca=0; for(int i=0;i<10; i++) { liczba_sterujaca+=ster[i]; // zamieniam ciąg znakow ze zmiennej ster na liczbę aby użyć instrukcji switch case - // dla mnie jest to wygadniejsze. } switch (liczba_sterujaca) { case 820: swiatlo1Status = ~swiatlo1Status; // znak '~' oznacza zamianę na przeciwny status break; case 821: swiatlo2Status = ~swiatlo2Status; break; case 813: kontakt1Status = ~kontakt1Status; break; case 814: kontakt2Status = ~kontakt2Status; } digitalWrite(swiatlo1, swiatlo1Status); // ustawienie stanów na pinach przekaźników digitalWrite(swiatlo2, swiatlo2Status); digitalWrite(kontakt1, kontakt1Status); digitalWrite(kontakt2, kontakt2Status); client.stop(); Serial.println("client disconnected"); } } |
Tutaj wstawiam prosty programik do zamiany wyrazu na liczbę
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
void setup() { String tekst = "kontakt2"; // tutaj wpisz wyraz który chcesz zamienić na liczbę, w serialu otrzymasz wynik int liczba=0; Serial.begin(9600); for(int i=0;i<10; i++) { liczba+=tekst[i]; } Serial.print(liczba); } void loop() { } |
W komentarzach wszystko jest wpisane. Jednak tutaj chciałbym jeszcze raz powiedzieć, że używając Xampa jako serwer do obrazków oraz stylów CSS należy go skonfigurować na porcie 8080. Jutro będzie aktualizacja w której pokażę jak to zrobić. Ja jednak mam w planach wykorzystać kartę SD do przechowywania obrazków, stylów CSS, może i całej strony. W najbliższym tygodniu może nagram jakiś materiał :)
UWAGI :
1. Arduino jak na razie nie ma możliwości weryfikacji tego czy światło jest zapalone czy też nie
2. W kodzie mogą być byczki oraz duplikaty, wstawiam kod działający, nie chciałem go zmieniać, ponieważ obecnie nie mam jak go przetestować
Pozdrawiam
P.S
Kod wstawiony liczę wiec na zmianę ocen :)
Fajny projekt! Pytanie z innej beczki, jaki jest to model routera i jak oceniasz go, oraz jego zasięg?
Router Asus RT-N12vD – zasięg – szczerze ? Średni, nie wiele większy od Sagecom od orange który ma antenę wbudowaną. Może coś popsułem w ustawieniach, sprawdzę to na dniach i dam znać. Brak USB to też słabo. Ale ładnie wygląda :P Za tą cenę nie ma co narzekać.
1 za “Projekt jest cały czas rozwijany i będzie rozwijany, stad też na chwilę obecną nie publikuję kodu źródłowego :)” :)
Hej.
Trochę smuto :)
W kodzie jest lekki bałagan oraz chcę go okomentować dobrze. I nie jest do końca skończony.
Takie realia, należało udostępnić kod. Zawsze można później poprawić, jeżeli bardzo Ci zależy na jego niepublikowaniu, należało zaczekać z artykułem.
Bardzo dużo cyny poszło na tą płytkę prototypową :)
Zależy jak kto lutuje, ja mam swój sposób które nie marnuje aż taki cyny.
Końcówkę cyny dokładasz do kropki na płytce i dotykach lutownicą.
Przez całą płytkę tam gdzie ma być ścieżka cynujesz same kropki.
Później robisz to samo co wyżej tylko końcówkę cyny dotykach między dwie kropki.
Nie wiem dlaczego niektórzy mają problem z tym że nie publikuję teraz kodu.
Wykonałem połączenia, kody są testowe , gdzie 3/4 to rzeczy niepotrzebne, więc ciężko by było komukolwiek się w nich połapać.
Pozdrawiam :)
Nie mogę się zgodzić, że nie marnujesz cyny. Ja bym w tych miejscach użył kabla. W dodatku trochę to brzydko wygląda i w niektórych miejscach można mieć wątpliwości co do jakości połączenia.
Co do kodu: artykuł po prostu nie jest kompletny bez kodu. Na majsterkowo.pl raczej są oczekiwane artykuły, które pozwalają zreplikować przedstawianą pracę. W tym przypadku kod jest zwyczajnie ciekawszy niż jak zrealizowałeś połączenia. Wiedzieliśmy już wiele wariantów inteligentnego domu na Arduino, ale w tym konkretnie Twój kod to jest coś nowego. Niestety, nie zamieściłeś go. Nawet kiepski kod jest lepszy niż brak kodu. No i jak mówiłem, mogłeś opublikować artykuł później.
Ja ciągle ubolewam, że co 3 dni wychodzi nowy projekt nowego systemu automatyki domowej, każdy ma być rozwijany, każdy ma wielkie plany, po czym po 3 miesiącach projekt kończy jako artykuł na blogu opisujący jak z telefonu włączyć lampkę na biurku. Sam zresztą popełniłem również ten błąd i zabrałem się za tworzenie własnego systemu parę lat temu, po czym jednak zdecydowałem się zainwestować w system typu opensource, z którego już trochę ludzi korzysta, który ma już podstawowe klocki i są one przetestowane i sprawdzone w różnych warunkach. Mając takie zaplecze można taki system śmiało rozbudowywać o własne moduły i na prawdę nie ma w tym odrobiny wstydu, że sam tego nie zrobiłem od początku – bo tutaj na prawdę jest co robić projektując taki system od podstaw. W obecnych czasach jest to po prostu strata cennego czasu na wymyślanie koła od nowa, tym bardziej, że prócz autora nikt inny nie będzie w stanie tego systemu rozgryźć a i sam autor po roku będzie miał problem z poprawieniem czegokolwiek.
Ze swojej strony zainteresowanym polecam system Hapcan. Społeczność jakaś wokół niego jest, ale przydała by się większa :).
Z tym się nie zgodzę akurat. System ten jest bardzo prosty i nawet typowy kowalski poradzi sobie z tym.
Największą trudnością jest tutaj wykonanie połączenia tego wszystkiego. Te kable wyglądają strasznie, ale wcale takie nie są.
Można też się dużo nauczyć
Tzn z czym się nie zgodzisz? Mogę się założyć, że system nie rozwinie się na tyle, aby którykolwiek z kowalskich chciał z niego korzystać. Takich projektów są tysiące, w tym jeden mój, który skończył w szufladzie. Po prostu samemu trudno takie coś ciągnąć bo to są naprawdę lata pracy aby taki system był używalny, łatwy w utrzymaniu, programowaniu itp. Już sama kwestia obudów, montażu tego w bezpieczny sposób zgodnie z normami to nie jest prosta sprawa. Co innego zrobić prostą tablicę z dwiema żarówkami a co innego zaplanować instalację w domu, położyć ją, podłączyć, utrzymywać i aby ktokolwiek inny w razie awarii mógł ją naprawić. Szacunek, że podejmujesz wyzwanie, ale moim zdaniem nie warto rozwiązywać w kółko tych samych problemów od podstaw – warto zainwestować swój czas w coś co już istnieje, skorzystać z tego, że ktoś inny odwalił już kawał ciężkiej roboty i się nią podzielił ze światem. To jest tak jak z programowaniem. Można wymyślić swój własny framework na którym można tworzyć swoje własne programy, ale zdecydowanie lepiej zapoznać się z istniejącymi i skorzystać z ich możliwości. Praca idzie przyjemniej bo skupiasz się na efektach a nie ma tym jak to działa pod spodem i nie rozwiązujesz od nowa tych samych problemów przez które przechodził twórca frameworka.
Szczerze to będę chciał zainstalować swój system w pokoju do sterowania świateł :)
Zobaczymy jak to wyjdzie.
Bartek, ten system wcale nie musi się rozwinąć do wersji powszechnej, to złe założenie. To będzie rozwiązanie lokalne i szyte na miarę możliwości autora. Z tego co widzę to automatyka w tym projekcie jest trochę “gorszym bratem” tego co będzie się działo w kwestii oprogramowania end-user’owego. Zobacz jak dopieszczona jest strona. Poczekajmy na efekt.
Jeśli chodzi o stronę automatyki to ciężko nazwać ją póki co automatyką a na pewno smart-home.
Jeśli chodzi o Twoją opinię co do budowy własnego lub korzystania już z istniejących platform. Powiem szczerze, że sam się długo nad tym zastanawiałem. Kusi mnie by wybrać coś i zacząć oglądać efekty. Zacząłem kiedyś czytać o Supli, zainstalowałem Domoticza i niestety stanąłem w miejscu w obu przypadkach. Nie umiem korzystać z takich framework’ów :( Nie umiem podjąć filozofii autora. Dlatego siedzę na poziomie DB, UDP i robię od podstaw. Właśnie ta nadmiarowość by narzędzie było uniwersalne mi nie pasuje.
Dlatego czytam każdy artykuł o Arduino, kolejne “gniazdko włączacze” i kontynuuje swój rozwój i rozwój projektu.
Przy czym zgodzę się Bartku z Tobą – nie publikuje się niedokończonych projektów na portalu DYI, chyba że są to ukończone moduły większego projektu. I jest jeszcze jedna rzecz wynikająca z Twoich słów co kuleje u 90% projektantów i developerów – DOKUMENTACJA !!! (w kodzie i wersjonowana w papierze – może być też GIT). Dokumentacja wszystkiego – kodu, przebiegu fizycznego kabli, logiki i połączeń, zachowania standardów i opisania które zastosowaliśmy. Wtedy nawet jak odłożysz na chwilę projekt to wracając szybko się wdrożysz a nie porzucisz projekt.
Ja obecnie stanąłem na zagadnieniu, czy czujniki powinienem oprzeć o NRF i przesyłać dane do stacji NRFEthernet, która odłoży to insertem do DB, czy od razu podpinać je do ESP i poprzez WiFi odkładać w DB. Pierwsze rozwiązanie to problem SPI (ENC i NRF) a drugie pobór mocy i bezpieczeństwo. Póki co testuję drugie rozwiązanie.
Kolejny projekt typu „chwalimy się – nie pokazujemy szczegółów”.
Pomysł fajny, projekt fajny ale sorry, dla majsterkowicza, który chciałby skorzystać albo czegoś się nauczyć jest prawie bezwartościowy :(
Cierpliwości :) We wtorek będzie można już zobaczyć kod arduino, stronę oraz skrypty.
Projekt będzie można zobaczyć we wtorek/środę w Piasecznie koło Warszawy, więcej info – priv :)
“Dodatkowo umieszczone są dwa przełączniki schodowe, dzięki czemu sterowanie światłem bez problemu może odbywać się bez podłączonego Arduino. Jeśli więc z jakiś powodów Arduino odmówi posłuszeństwa nie jesteśmy pozbawieni sterowania światłem”
A w tym miejscu jaki masz patent na sprawdzenie aktualnego stanu światła?
Bo widzisz… jeśli zapalisz światło z arduino, a wyłączysz ręcznie to… arduino skąd ma wiedzieć czy światło świeci czy jest zgaszone?
Jeśli arduino nie będzie znać stanu światła to sterowanie (a tym bardziej na odległość) przez arduino staje się bezużyteczne – także chętnie poznam jaki pomysł Ty zastosowałeś (lub właśnie uświadomiłem Ciebie o sporym braku w projekcie) :)
Hej,
A w tym miejscu jaki masz patent na sprawdzenie aktualnego stanu światła?
Patent jest bardzo prosty – Wpinasz się pod gniazdo żarówki lub wyjście przełącznika. Z 230V zasilasz transoptort – w tej chwili będę robił to na zasilaczu impulsowym, 230 ~ > 5V, następnie przetwornica step down i zasilenie transoptora.
Tak wiem można zamiast przetwornicy dać rezystor, ale w moim przypadku nawet przy dużych rezystorach transoptory uległy przepaleniu.
Będę jeszcze testować zasilanie prosto z 230V > kontestatory MKT, rezystor i dioda prostownicza, muszę zamówić więcej transoptorów.
Następne aktualizacje projektu będą po maturach,
Pozdrawiam :)
Przeglądam Twoje projekty i jestem pod wrażeniem! Mam pytanie naury zasobów, gdzie się zaopartujesz? Ja natknąłem się w necie na stronę https://dlaelektrykow.pl/ i wydają się mieć dosyć uczciwe ceny i szybką dostawę. Korzystałeś może? A możesz polecić coś jeszcze? Teraz zdecydowanie będę zaglądał tu regularnie :)
Co to za przekaźniki, jakieś namiary możesz dać?
Aliexpress