Spisu treści:
- Krok 1: Części i narzędzia
- Krok 2: Plan
- Krok 3: Obwód
- Krok 4: lutowanie diod LED
- Krok 5: Płytka kontrolna lutowania
- Krok 6: Konfiguracja Wi-Fi
- Krok 7: Kod mikrokontrolera
- Krok 8: Otwórz protokół wiadomości
- Krok 9: Pilot zdalnego sterowania
- Krok 10: Drukowanie 3D
- Krok 11: Połącz wszystko razem
- Krok 12: Zawieszanie lampy
- Krok 13: Zakończono
Wideo: Lampa DIY IoT do automatyki domowej -- Samouczek ESP8266: 13 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
W tym samouczku stworzymy inteligentną lampę podłączoną do Internetu. To zagłębi się w Internet rzeczy i otworzy świat automatyki domowej!
Lampa jest połączona z Wi-Fi i zbudowana tak, aby mieć otwarty protokół wiadomości. Oznacza to, że możesz wybrać dowolny tryb sterowania! Można nim sterować za pomocą przeglądarki internetowej, aplikacji automatyki domowej, inteligentnych asystentów, takich jak Alexa lub Google Assistant, i wiele więcej!
Jako bonus ta lampa jest połączona z aplikacją do sterowania projektem. Tutaj możesz wybrać różne tryby kolorów, przejść między kolorami RGB i ustawić timery.
Lampa składa się z płytki LED oraz płytki sterującej. Tablica LED wykorzystuje trzy różne typy diod LED, co daje łącznie pięć kanałów LED! To jest RGB wraz z ciepłą i zimną bielą. Ponieważ wszystkie te kanały można ustawić indywidualnie, masz łącznie 112,3 kombinacji peta!
Zacznijmy!
[Odtwórz wideo]
Krok 1: Części i narzędzia
Części
- Wemos D1 Mini
- 15 x ciepłobiałe diody LED 5050
- 15 x zimne białe diody 5050
- 18 diod LED RGB 5050
- 6 x 300 omów 1206 rezystorów
- Rezystory 42 x 150 omów 1206
- Rezystory 5 x 1 kΩ
-
5 x NTR4501NT1G
MOSFET-y
- Liniowy regulator napięcia, 5V
-
PCB
Pobierz pliki gerber w kroku obwodu, aby stworzyć własne PCB
- Zasilacz 12V 2A
Narzędzia
- Lutownica
- Cyna lutownicza
- Płynny topnik do lutowania
- Taśma maskująca
- Taśma dwustronna
- drukarka 3d
- Narzędzia do ściągania izolacji
Krok 2: Plan
Kompletny projekt składa się z czterech głównych części:
-
Okrążenie
Obwód jest wykonany na płytce drukowanej. Ukończony obwód będzie składał się z ponad 100 pojedynczych elementów. To wielka ulga nie drutować tych wszystkich ręcznie na płycie perforowanej
-
Kod Arduino
Używam Wemos D1 Mini, który używa ESP8266 jako mikrokontrolera podłączonego do Wi-Fi. Kod uruchomi serwer na D1. Kiedy odwiedzisz adres tego serwera, D1 zinterpretuje to jako różne polecenia. Mikrokontroler następnie działa na to polecenie, aby odpowiednio ustawić światła
-
Zdalne sterowanie
- Zrobiłem aplikację specjalnie dla tego projektu, aby jak najłatwiej było sterować lampą według własnych upodobań
- Inteligentną lampą może naprawdę sterować wszystko, co potrafi wysłać żądanie http GET. Oznacza to, że lampa akceptuje polecenia z niemal nieograniczonej liczby urządzeń
-
drukowanie 3d
Ta inteligentna lampa zasługuje na fajnie wyglądającą obudowę. I jak w przypadku wielu projektów potrzebna była fajna obudowa, na ratunek przychodzi druk 3D
Krok 3: Obwód
Moje płytki drukowane zamówiłem na stronie jlcpcb.com. Czas pełnego ujawnienia: sponsorowali również ten projekt.
PCB składa się z dwóch części. Posiada tablicę LED i tablicę kontrolną. Płytkę drukowaną można rozdzielić, aby później połączyć te dwie części elastycznym przewodem. Jest to konieczne zarówno do utrzymania smukłej lampy wydrukowanej w 3D, jak i do ustawienia płyty LED pod kątem, aby równomiernie rozprowadzić światło przez pomieszczenie z otworami.
Płytka sterująca zawiera mikrokontroler D1 wraz z pięcioma tranzystorami MOSFET do ściemniania diod LED oraz regulatorem napięcia, który zapewnia mikrokontrolerowi płynne napięcie 5V.
Tablica LED posiada pięć kanałów LED w trzech różnych typach LED. Ponieważ używamy źródła zasilania 12V, diody są skonfigurowane jako trzy diody połączone szeregowo z rezystorem, a następnie powtarzane 16 razy równolegle.
Zwykła biała dioda LED zwykle pobiera 3,3 V. W segmencie płytki trzy z tych diod są połączone szeregowo, co oznacza, że spadek napięcia jest agregowany w obwodzie. Trzy diody LED pobierające 3,3 V każda oznaczają, że jeden segment diod LED pobiera 9,9 V. Układ zasilany jest napięciem 12 V, więc zostaje 2,1 V.
Gdyby segment składał się tylko z trzech diod LED, otrzymaliby więcej napięcia niż rozpraszają. Nie jest to dobre dla diod LED i może je szybko uszkodzić. Dlatego każdy segment ma również rezystor połączony szeregowo ze wszystkimi trzema diodami LED. Ten rezystor jest po to, aby zrzucić pozostałe 2,1 V na złączu szeregowym.
Jeśli więc każdy segment odpowiada 12 V, oznacza to, że każdy z segmentów jest połączony ze sobą równolegle. Gdy obwody są połączone równolegle, wszystkie otrzymują to samo napięcie, a prąd jest agregowany. Prąd w połączeniu szeregowym jest zawsze taki sam.
Zwykła dioda LED pobiera prąd o natężeniu 20 mA. Oznacza to, że segment składający się z trzech diod LED i rezystora połączonych szeregowo nadal będzie pobierał 20 mA. Kiedy łączymy kilka segmentów równolegle, dodajemy prąd. Jeśli wytniesz sześć diod LED z paska, masz dwa z tych segmentów równolegle. Co oznacza, że cały obwód nadal pobiera 12 V, ale pobiera prąd 40 mA.
Krok 4: lutowanie diod LED
Po wypróbowaniu kilku rzeczy odkryłem, że prosta taśma maskująca jest po prostu najbardziej skuteczna i elastyczna w zapobieganiu przesuwaniu się płytki drukowanej.
W przypadku części z wieloma pinami, takich jak 6-pinowe diody LED 5050, zaczynam od umieszczenia lutu na jednym z padów PCB. Wtedy to tylko kwestia utrzymania tego stopionego lutowia za pomocą lutownicy, podczas wsuwania elementu na swoje miejsce za pomocą pęsety.
Teraz pozostałe pady można łatwo przykleić odrobiną lutu. Jednak, aby przyspieszyć tę pracę, sugeruję pobranie płynnego topnika lutowniczego. Naprawdę nie mogę wystarczająco polecić tych rzeczy.
Nałóż trochę topnika na pola lutownicze, a następnie stop trochę lutu na czubku lutownicy. Teraz wystarczy nałożyć stopiony lut na pady i wszystko ułoży się na swoim miejscu. Ładne i proste.
Jeśli chodzi o rezystory i inne elementy z dwoma padami, nie jest potrzebny tak naprawdę topnik lutowniczy. Nałóż lut na jeden z padów i umieść rezystor na swoim miejscu. Teraz po prostu wtop trochę lutu na pad numer dwa. Bułka z masłem.
Spójrz na piąte zdjęcie w tym kroku. Zwróć uwagę na orientację diod LED. Ciepłe i zimne białe diody LED mają wycięcie zorientowane w prawym górnym rogu. Diody LED RGB mają swoje wycięcie w lewym dolnym rogu. Jest to błąd projektowy z mojej strony, ponieważ nie mogłem znaleźć karty katalogowej dla diod LED RGB użytych w tym projekcie. No cóż, żyj i ucz się i tak dalej!
Krok 5: Płytka kontrolna lutowania
Po zakończeniu maratonu tablicy LED, tablica sterownicza jest łatwa do lutowania. Umieściłem pięć tranzystorów MOSFET i pasujące rezystory bramka-źródło, zanim przeniosłem się na regulator napięcia.
Regulator napięcia posiada opcjonalne miejsca na kondensatory wygładzające. Podczas gdy lutowałem je na tym zdjęciu, skończyłem je usuwając, ponieważ nie były one naprawdę potrzebne.
Sztuczka, aby uzyskać smukłą płytkę kontrolną, polega na tym, aby umieścić główki szpilek wystające z góry na dół. Po umieszczeniu szpilek niewykorzystaną długość można wyciąć z tyłu wraz z czarnym plastikiem. Dzięki temu spód jest całkowicie gładki.
Gdy wszystkie elementy są już na swoim miejscu, nadszedł czas, aby połączyć dwie deski. Właśnie odciąłem i zdjąłem sześć małych drutów o średnicy 7 cm i połączyłem dwie płytki drukowane.
Krok 6: Konfiguracja Wi-Fi
W kodzie jest sześć prostych linii, które musisz zmienić.
-
ssid, linia 3
Twoja nazwa routera. Upewnij się, że podczas pisania tego tekstu pisownia jest poprawna
-
wifiPass, linia 4
Twoje hasło routera. Ponownie zwróć uwagę na wielkość liter
-
ip, linia 8
Statyczny adres IP Twojej inteligentnej lampy. Wybrałem losowy adres IP w mojej sieci i próbowałem pingować go w oknie poleceń. Jeśli nie ma odpowiedzi z adresu, możesz założyć, że jest dostępna
-
brama, linia 9
To będzie brama na twoim routerze. Otwórz okno poleceń i wpisz „ipconfig”. Brama i podsieć są na zdjęciu zakreślone na czerwono
-
podsieć, linia 10
Podobnie jak w przypadku bramy, ta informacja jest zakreślona na obrazku dla tego kroku
-
strefa czasowa, linia 15
Strefa czasowa, w której się znajdujesz. Zmień to, jeśli chcesz korzystać z wbudowanych funkcji timera do włączania i wyłączania świateł o określonych godzinach. Zmienna jest prostym plusem lub minusem GMT
Krok 7: Kod mikrokontrolera
Po zmianie wszystkich odpowiednich ustawień w poprzednim kroku nadszedł wreszcie czas, aby przesłać kod do Wemos D1 Mini!
Kod arduino wymaga kilku bibliotek i zależności. Najpierw postępuj zgodnie z tym przewodnikiem od sparkfun, jeśli nigdy nie przesyłałeś kodu z arduino IDE do ESP8266.
Teraz pobierz bibliotekę Czas i bibliotekę TimeAlarms. Rozpakuj je i skopiuj do folderu biblioteki arduino na swoim komputerze. Podobnie jak instalowanie innych bibliotek arduino.
Zwróć uwagę na ustawienia przesyłania na obrazku w tym kroku. Wybierz tę samą konfigurację, z wyjątkiem portu COM. Będzie to dowolny port COM, do którego podłączony jest mikrokontroler na komputerze.
Po przesłaniu kodu otwórz terminal szeregowy, aby otrzymać wiadomość o pomyślnym połączeniu! Możesz teraz otworzyć przeglądarkę i odwiedzić statyczny adres IP zapisany w mikrokontrolerze. Gratulacje, właśnie zbudowałeś własny serwer i hostujesz na nim stronę internetową!
Krok 8: Otwórz protokół wiadomości
Gdy sterujesz inteligentną lampą za pomocą aplikacji, wszystkie wiadomości będą obsługiwane automatycznie. Oto lista komunikatów, które lampa akceptuje, jeśli chcesz zbudować własny pilot. Użyłem przykładowego adresu IP, aby zilustrować, jak używać poleceń.
-
192.168.0.200/&&R=1023G=0512B=0034C=0500W=0500
- Ustawia czerwone światła na maksymalną wartość, zielone światła na połowę wartości, a niebieskie światła na 34. Zimna i ciepła biel są ledwo włączone
- Wprowadzając wartości, możesz wybrać od 0 do 1023. Zawsze wpisuj jasne wartości jako cztery cyfry w adresie URL
-
192.168.0.200/&&B=0800
Ustawia niebieskie światła na wartość 800, jednocześnie wyłączając wszystkie inne światła
-
192.168.0.200/LED=WYŁ
Całkowicie wyłącza wszystkie światła
-
192.168.0.200/LED=WYGASZ
Rozpoczyna powolne zanikanie pomiędzy wszystkimi możliwymi kolorami RGB. Idealny do nastroju
-
192.168.0.200/NOTIFYR=1023-G=0512-B=0000
Miga podanym kolorem dwa razy, aby wskazać przychodzące powiadomienie. Idealne, jeśli chcesz, powiedzmy, stworzyć na komputerze program, który będzie migał lampką na czerwono za każdym razem, gdy otrzymasz nową wiadomość e-mail
-
192.168.0.200/DST=1
- Dostosowuje zegar do czasu letniego. Dodaje godzinę do zegara
- / DST=0 użyj tego, aby wrócić z czasu letniego, usuwa godzinę z zegara, jeśli czas letni jest aktywny
-
192.168.0.200/TIMER1H=06M=30R=1023G=0512B=0034C=0000W=0000
Zapisuje stan dla timera 1. Timer włączy podane wartości RGB o 06:30 rano
-
192.168.0.200/TIMER1H=99
Ustaw godzinę timera na 99, aby wyłączyć timer. Wartości RGB są nadal przechowywane, ale timer nie włączy świateł, gdy godzina jest ustawiona na 99
- Lampa posiada cztery indywidualne timery. Zmień „TIMER1” na „TIMER2”, „TIMER3” lub „TIMER4”, aby dostosować jeden z pozostałych wbudowanych timerów.
Są to obecnie wbudowane polecenia. Zostaw komentarz, jeśli masz jakieś fajne pomysły na nowe polecenia do zbudowania w kodzie arduino lub aplikacji zdalnej!
Krok 9: Pilot zdalnego sterowania
Kliknij tutaj, aby pobrać aplikację. Konfiguracja jest bardzo łatwa, wystarczy wpisać adres IP swojej inteligentnej lampy i wybrać, czy chcesz sterować tylko diodami LED RGB, czy RGB + ciepłymi i zimnymi białymi diodami LED.
Jak wyjaśniono w poprzednim kroku, teraz wiesz, jakiego protokołu wiadomości używa aplikacja. Wysyła żądanie http GET z adresami URL. Oznacza to, że możesz również stworzyć własny obwód mikrokontrolera i nadal używać tej aplikacji do kontrolowania samodzielnie opracowanych funkcji.
Ponieważ naprawdę zagłębiliśmy się w protokół wiadomości, możesz również sterować inteligentną lampą za pomocą wszystkiego, co jest w stanie wysłać żądanie http GET. Oznacza to dowolną przeglądarkę w telefonie lub komputerze lub inteligentne urządzenia domowe lub asystentów, takich jak Alexa lub Asystent Google.
Tasker to aplikacja, która w zasadzie pozwala tworzyć warunki do kontrolowania blisko wszystkiego. Użyłem tego do flashowania inteligentnej lampy kolorem powiadomienia, gdy otrzymam je na telefon. Ustawiłem też taskera, aby włączał światła na pełną biel, gdy telefon łączy się z moim domowym WiFi po godzinie 16:00 w dzień powszedni. Oznacza to, że światła włączają się automatycznie, gdy wracam do domu ze szkoły. Fajnie jest wrócić do domu z automatycznie włączonymi światłami!
Krok 10: Drukowanie 3D
Sama obudowa lampy może być drukowana prawie całkowicie bez podpór. Jedyne części, które naprawdę potrzebują wsparcia, to kołki przeznaczone do łączenia z płytką drukowaną. Dlatego udostępniłem stl zarówno z małą konstrukcją nośną, jak i bez niej, tylko dla tych kołków. Zaletą korzystania z tego niestandardowego wsparcia jest to, że drukowanie jest znacznie szybsze! Wsparcie w zakresie drukowania otrzymujemy tylko na częściach, które naprawdę tego potrzebują.
Tutaj możesz pobrać pliki.stl
Krok 11: Połącz wszystko razem
Po wydrukowaniu 3D zacznij od usunięcia podpórki do drukowania. Kable zasilające trafiają do oddzielnych kanałów i są ze sobą powiązane. Węzeł ten utworzy odciążenie, zapobiegając wyrwaniu kabli z płytki drukowanej. Przylutuj kable zasilające z tyłu płytki drukowanej i upewnij się, że masz właściwą polaryzację!
Płytka sterująca jest następnie mocowana za pomocą kawałka taśmy, aby utrzymać ją w jednej płaszczyźnie z obudową. Płytkę LED można po prostu umieścić na swoim miejscu, gdzie sama leży płasko na obudowie.
Krok 12: Zawieszanie lampy
Istnieje wiele opcji zawieszenia tej lampy na ścianie. Ponieważ mogę ciągle aktualizować kod, aby ulepszać lampę, chciałem od czasu do czasu ją wyłączyć. Możesz użyć kleju na gorąco, ale polecam taśmę dwustronną. Najlepiej użyć grubej i spienionej taśmy dwustronnej, ponieważ najlepiej trzyma lampę na teksturowanej ścianie.
Krok 13: Zakończono
Z lampą na ścianie i gotową do przyjmowania poleceń oznacza to, że gotowe!
Panel LED jest ustawiony pod kątem w sposób, który równomiernie rozprasza światło w pomieszczeniu. Stanowi miły dodatek do każdej przestrzeni roboczej, a możliwość integracji z automatyką domową to duży plus. Bardzo podoba mi się możliwość ustawienia kolorów RGB, a także dostosowania balansu bieli między zimnym i ciepłym światłem. Wygląda stylowo i jest świetną pomocą przy ustawianiu oświetlenia otoczenia lub pracy, aby dopasować się do wszelkich potrzeb oświetleniowych, jakie mam w danej chwili.
Gratulacje, wykonałeś duży skok w świat IoT i automatyki domowej!