Spisu treści:

Budzik z oświetleniem DIY: 7 kroków
Budzik z oświetleniem DIY: 7 kroków

Wideo: Budzik z oświetleniem DIY: 7 kroków

Wideo: Budzik z oświetleniem DIY: 7 kroków
Wideo: Arduino 7: BUDZIK 2024, Listopad
Anonim
DIY lekki budzik
DIY lekki budzik
DIY lekki budzik
DIY lekki budzik
DIY lekki budzik
DIY lekki budzik

Czy kiedykolwiek chciałeś wypróbować jeden z tych wymyślnych budzików, który naśladuje wschód słońca, aby Cię obudzić? Czy chcesz dodać kolorowe światła do swojego pokoju? Chcesz sterować tym wszystkim z dowolnego urządzenia z przeglądarką internetową? Następnie sprawdź ten budzik, który zrobiłem, korzystając z tego, czego nauczyłem się, budując mój automatyczny karmnik dla ryb.

Głównym celem alarmu świetlnego jest upewnienie się, że w moim pokoju jest światło, kiedy się budzę, zwłaszcza w okresie zimowym, kiedy zwykle jest jeszcze ciemno. Światło zanika na określony czas, który kończy się pełną jasnością o ustawionej godzinie alarmu. Ale to tylko pierwszy tryb, istnieje 7 innych trybów oświetlenia do zabawy!

Alarm świetlny jest sterowany za pomocą strony HTML znajdującej się na płycie ESP-8266-12e. Można uzyskać do niego dostęp z sieci domowej lub skonfigurować go tak, aby był dostępny z dowolnego miejsca w Internecie z przekierowaniem portów.

Krok 1: Materiały:

  • Płyta ESP-8266-12e (NodeMCU)
  • Najnowsze IDE Arduino
  • Biblioteki potrzebne do zainstalowania kodu
  • Notepad++ (do edycji kodu HTML, jeśli chcesz)
  • Przeglądarka (użyłem chrome, ale każda powinna działać, zwłaszcza jeśli pozwala zobaczyć działający kod html)
  • Drukarka 3D o powierzchni zabudowy co najmniej 150mm x 150mm
  • Biały lub przezroczysty plastikowy filament (w przypadku abażuru mocowanie może mieć dowolny kolor)
  • 4-cyfrowy 7-segmentowy wyświetlacz z chipem TM1637, ja używałem jednego z nich
  • Adresowalna taśma LED RGBW o długości 1 metra, sk6812. Mój pasek ma 60 diod/metr, ale nie jest już sprzedawany. Kod arduino jest skonfigurowany dla RGBW, więc będziesz musiał go przepisać, jeśli chcesz użyć paska RGB. Polecam listwę z co najmniej 60 diodami.
  • JEŚLI pasek nie ma podkładu samoprzylepnego: taśma klejąca i super klej
  • Protoboard do montażu tablicy
  • Przewód 24AWG (polecam wiele kolorów)
  • Co najmniej 6 stóp drutu do zasilania. Polecam używanie wszystkiego, co sprzedaje lokalny sklep ze sprzętem do lamp stołowych.
  • Zasilacz 5V, użyłem tego
  • Nie zapomnij o przejściówkach do zasilacza
  • Lutownica
  • Kabel USB do programowania płyty
  • gorący klej
  • Kołki nagłówka (męskie i żeńskie)
  • Cierpliwość

Krok 2: Programowanie tablicy

Płyta będzie miała na sobie dwa zestawy kodu, zwykły kod arduino, który działa i kod HTML, który wysyła do przeglądarki. Wgrywasz kod arduino tak, jak w przypadku każdej innej płyty. Jednak HTML wymaga wtyczki do załadowania do pamięci SPIFF na płycie.

Aby zapoznać się z samouczkiem na temat korzystania z SPIFF, zobacz

Aby dowiedzieć się, jak wgrać kod HTML, zobacz https://www.esp8266.com/viewtopic.php?f=32&t=10081, w tym celu musisz zainstalować wtyczkę do arduino.

Kod HTML należy zapisać w folderze w folderze projektu arduino o nazwie po prostu „data”.

Wgranie kodu HTML zajmuje kilka minut, mogłem rozegrać wyścig online lub dwa w Mario Kart 8, czekając. Z tego powodu, jeśli wprowadzasz zmiany w HTML, użyj notepad ++ do edycji i upuść plik do przeglądarki, takiej jak chrome, aby go przetestować.

Krok 3: Jak działa kod

Jak działa kod
Jak działa kod
Jak działa kod
Jak działa kod

Kod w tym projekcie jest podzielony na dwa pliki: kod uruchamiany przez tablicę oraz kod HTML przechowywany w pamięci tablicy, który wysyła do przeglądarki, gdy przechodzisz na stronę internetową.

Po podłączeniu płyty do zasilania uruchamia się kod płyty, jak w każdym arduino. Łączy się z domową siecią Wi-Fi, a następnie kontaktuje się z serwerem NIST, aby uzyskać aktualny czas, aby ustawić wewnętrzny zegar. Po ustawieniu zegara uruchamia się serwer WWW i można się połączyć przez ulubioną przeglądarkę.

Musisz połączyć się za pomocą adresu IP płyty, więc upewnij się, że zarezerwowałeś statyczne IP na routerze. Zmieniłem też port na mojej lampie, aby się połączyć, nawiguję pod adres 192.168.0.170:301/. Jeśli chcesz połączyć się z lampą z dowolnego miejsca na świecie, będziesz musiał skonfigurować przekierowanie portów na routerze. Następnie będziesz musiał połączyć się z adresem IP, który widzisz, gdy łączysz się z https://www.whatsmyip.org/ i portem, na którym ustawiłeś lokalny adres IP lampy.

Po połączeniu tablica wysyła plik HTML do Twojej przeglądarki, która go dekoduje i wyświetla stronę. Wprowadzone zmiany nie mają wpływu na planszę, dopóki nie naciśniesz jednego z przycisków. na stronie internetowej. Kiedy naciśniesz przycisk, Twoja przeglądarka wyśle na tablicę formularz html z aktualnymi ustawieniami, a tablica przyjmie te ustawienia i ustawi wyświetlacze.

Ustawienia są dość proste. Strona skaluje się do szerokości przeglądarki i wygląda nieco lepiej na urządzeniach mobilnych. Aby zmienić wygląd strony ustawień, będziesz musiał edytować kod HTML, a na ten temat jest wiele innych samouczków online. Ponieważ po raz pierwszy używałem HTML, uczyłem się głównie za pomocą

Po załadowaniu strony zobaczysz cztery przyciski, suwak i rozwijane menu. Górny przycisk to główny przycisk „enter” lub „zaangażuj”. Kolejne dwa przyciski przełączają wyświetlanie czasu cyfrowego i wyświetlanie czasu w formacie 12-godzinnym lub 24-godzinnym. Suwak kontroluje jasność zegara cyfrowego i jest aktualizowany za każdym razem, gdy przełączasz tryb wyświetlania lub włączasz zegar. Ostatni przycisk ma zgasić wszystkie światła, ale z jakiegoś powodu nie działa z tą wersją kodu. Zamiast tego naciśnięcie przycisku „Włącz” bez wybranych ustawień spowoduje wyłączenie świateł.

Rozwijane menu zawiera 7 trybów systemu, wybranie jednego spowoduje wyświetlenie niezbędnych ustawień poniżej.

  • Tryb 1: Alarm. Wprowadź czas, w którym światło ma osiągnąć pełną jasność i jak długo ma trwać zanikanie w minutach całkowitych. Domyślnie jest to 6:00:00 i 15 minut. Światło pozostanie w pełnej jasności przez taki sam czas, przez jaki zniknie, zanim automatycznie się wyłączy. Wartość domyślną można zmienić w kodzie HTML.
  • Tryb 2: Zegar analogowy. Wybierz trzy kolory do reprezentowania godzin, minut i sekund wskazówek zegara analogowego. Suwak nad trzema selektorami kolorów automatycznie wstawi wstępnie ustawione chłodne lub ciepłe kolory, jeśli zostaną ustawione odpowiednio w lewo lub w prawo. Jeśli suwak zostanie przesunięty w lewo lub w prawo, a następnie zwrócony do środka, wszystkie selektory kolorów zostaną ustawione na czarny (0, 0, 0, 0) [R, G, B, W]. Kiedy na planszę zostanie wysłany całkowicie zerowy kolor, jest on losowany. *Może to spowodować nadmierne miganie lampek.* Jeśli chcesz, aby światło było wyłączone, ustawienie dowolnej wartości na 1 spowoduje „czarny” (wszystkie wartości domyślne to 1 (01, 01, 01, 01), gdy selektory kolorów są zainicjowane). Selektor kolorów i suwaki RGB są połączone, podczas gdy suwak W jest niezależny.
  • Tryb 3: Kolor. Wybierz jeden kolor, aby ustawić światła. Pozostanie to dopóki nie zostanie zmienione przez użytkownika.
  • Tryb 4: Cykl kolorów. Wybierz trzy kolory do przejścia i wprowadź czas, w którym każdy kolor ma pozostać. Do wybierania kolorów stosuje się te same metody, co w trybie 2. Kolory losowe działają najlepiej w tym trybie.
  • Tryb 5: Cylinder koloru. Wybierz trzy kolory (takie same jak poprzednio) i obroty cylindra. Światła będą wyświetlane jako wzór pasków, które obracają się wokół osi. przy wybranych przez Ciebie obrotach. Domyślne obroty to 60 lub 1 obr/s. Przypadkowe kolory mogą powodować miganie świateł!
  • Tryb 6: Wir kolorów. Ustaw trzy kolory i RPM. Ten tryb nie jest idealny, ale chodzi o to, aby światła wirowały przez całą dobę. Jest wbudowana losowość, więc najlepiej jest po prostu użyć suwaka temperatury, aby wybrać, czy wir zaczyna się na ciepło, czy na zimno.
  • Tryb 7: Tęcza. Ustaw prędkość cyklu, RPM jest tutaj dość bezużyteczny. Był to gotowy przykład z Biblioteki Neopixel z pewnymi edycjami, aby umożliwić płytce nadal reagowanie na dane wprowadzane przez użytkownika.

Po wybraniu ustawień, naciśnięcie dowolnego przycisku spowoduje wysłanie formularza HTML do tablicy, który wykorzystuje wartości z formularza do zmiany ustawień wyświetlania. Przycisk „Zaangażuj” wysyła wszystkie ustawienia, podczas gdy dwa przyciski zegara wysyłają tylko jasność zegara. Przycisk "off" ma po prostu wyłączyć pasek LED, jednak jest błąd, który uniemożliwia to działanie. Wydaje się, że zamiast tego działa naciśnięcie przycisku „Zaangażuj” bez zmiany jakichkolwiek ustawień. Gdy forum przeanalizuje ustawienia, przekierowuje przeglądarkę na początkową stronę HTML.

Uwaga: Ustawienie czasu alarmu powoduje zmianę trybu systemu na 1, co spowoduje zatrzymanie każdego działającego wcześniej trybu i zresetowanie wszystkich ustawień. Jednak uruchomienie innego trybu po ustawieniu godziny alarmu nie zmienia ustawionej godziny, więc można ustawić alarm, a następnie uruchomić nowy tryb. Jeśli nowy tryb nie zostanie wyłączony, zanim alarm zacznie zanikać w białym świetle, może to spowodować miganie. Aby temu zapobiec, płyta jest zaprogramowana na wyłączenie wszystkich świateł i ustawienie trybu systemu na 1 (alarm) o 2 w nocy bez zmiany ustawionego czasu alarmu. Ten twardy czas odcięcia można zmienić w kodzie arduino.

Krok 4: Konfiguracja sieci i łączenie

Konfiguracja sieci i łączenie
Konfiguracja sieci i łączenie

Ten krok jest nieco niejasny, ponieważ każdy router jest inny. Wygoogluj swój konkretny model routera, aby znaleźć ustawienia, które musisz zmienić.

Musisz zalogować się do routera i prawdopodobnie włączyć tryb zaawansowany. Na moim routerze muszę przejść do serwera DHCP, aby zarezerwować adres IP. Znajdź adres MAC swojego ESP8266; będzie to ten na liście klientów DHCP (lub odpowiednik twojego routera), który znika po odłączeniu ESP.

Użyj adresu MAC, aby zarezerwować adres IP lampy. Upewnij się, że wpis jest włączony, jeśli router ma to ustawienie.

Jeśli chcesz połączyć się spoza swojej sieci osobistej, musisz wyszukać w swoim routerze Google, aby dowiedzieć się, jak skonfigurować przekierowanie portów.

Krok 5: Części drukowane w 3D

Części drukowane powinny pasować do większości drukarek. Są dwie części: uchwyt i klosz.

Mocowanie jest tym, wokół czego owija się taśma LED w spiralny wzór, a jego średnica jest taka, że 60-diodowa, 1-metrowa taśma powinna owinąć się 3 razy, a wszystkie diody LED powinny wyrównać się osiowo. Jeśli używasz paska, w którym diody LED są rozmieszczone inaczej i nie są wyrównane na uchwycie tak, jak powinny, zmień średnicę za pomocą dostarczonych modeli. Średnica to C/pi, gdzie C jest obwodem i stanowi 1/3 długości paska. Półokrągłe otwory na ścianie uchwytu umożliwiają przejście kabla zasilającego i powietrza. Krzyżulce zapewniają sztywność i powierzchnię, do której można przymocować paski poleceń podczas montażu.

Klosz jest dopasowany na wcisk z mocowaniem, a wycięcie umożliwia wyrównanie klosza z mocowaniem. Po zamontowaniu na ścianie wycięcie powinno znajdować się na godzinie 12 lub 6, a 7-segmentowy wyświetlacz zegara powinien być wyrównany z wycięciem. Klosz działa jak rozpraszacz światła i dzięki temu jest bardzo cienki. Wydrukowałem go z dyszą.5mm, a większość komercyjnych drukarek ma dysze.4mm, więc powinno być niewiele problemów, ale pamiętaj, aby sprawdzić swoją krajalnicę, aby upewnić się, że odcień będzie drukował prawidłowo. Pamiętaj również o użyciu białego lub w inny sposób przezroczystego plastiku do abażuru. Inne kolory zniekształcą kolory świateł lub zablokują zbyt dużo światła.

Upewnij się, że wyświetlacz zegara cyfrowego, którego używasz, mieści się w cieniu. Został zaprojektowany tak, aby pasował na miejsce z wystarczającym prześwitem dla przewodów zegara. Użyj modeli, aby zmienić uchwyt zegara. Zmieniając model klosza, upewnij się, że grubość frontu nie przekracza 1 mm, aby zegar był przez nią widoczny z niewielkim rozproszeniem.

Krok 6: Okablowanie i montaż płytki

Okablowanie i montaż płytki
Okablowanie i montaż płytki
Okablowanie i montaż płytki
Okablowanie i montaż płytki
Okablowanie i montaż płytki
Okablowanie i montaż płytki

Płyta i okablowanie są znacznie mniej skomplikowane niż mój karmnik do ryb. Po prostu przylutuj kilka rzędów żeńskich pinów głowicy do płyty prototypowej, aby ESP-8266-12e mógł w niej osadzić, a także dwa rzędy męskich pinów głowicy, aby podłączyć zasilanie. Przylutowałem dwa przewody danych zegara i przewód danych taśmy LED do odpowiednich styków na płycie prototypowej, a wszystkie przewody zasilające i uziemiające zostały przylutowane do odpowiednich szyn zasilających, które wykonałem z tyłu płyty.

Druga strona tych przewodów powinna być gniazdem żeńskim dla zegara i złączem paska LED dla paska LED. Być może trzeba będzie przylutować męskie piny do zegara i polecam do tego kątowe piny. Przewody taśmy LED i przewody zasilające powinny być poprowadzone od strony ściany płytki (strona z ESP), a przewody zegara powinny być poprowadzone do przedniej strony (tam, gdzie znajdują się wszystkie złącza lutowane).

Do linii energetycznej użyłem 6 stóp 16-26 skręconego drutu miedzianego. Był trochę gruby, więc podzieliłem każdy przewód między trzy żeńskie piny, aby podłączyć do szyn zasilających i uziemiających. Drugą stroną powinno być dowolne złącze, które masz do zasilania.

Przyklej na gorąco wszystkie odsłonięte złącza lutownicze (szczególnie na kablu zasilającym, a SZCZEGÓLNIE jeśli jest odsłonięta miedź, taka jak moja), aby odizolować wszystko od przypadkowych zwarć. Można też przykleić zegar na gorąco do płyty (tył zegara do strony przylutowanej), ale okazało się, że to słabe połączenie i nie było już tak potrzebne po zamontowaniu wszystkiego.

Nawiń taśmę LED na zewnątrz uchwytu. UPEWNIJ SIĘ, że testujesz pasek w trybie 2, aby sprawdzić, czy zegar analogowy idzie we właściwym kierunku. Pamiętaj, aby pozostawić odstęp ~5 mm od przedniej krawędzi na klosz. Pierwsza dioda LED paska (dioda LED drugiego koloru pojawia się na górze każdej minuty, na jednym końcu paska) przechodzi na pozycję godziny 12. gdy lampa jest zamontowana na ścianie. Gdy masz pasek LED na miejscu, użyj jego samoprzylepnego podkładu (jeśli ma) lub kleju, aby przykleić go do mocowania. Super klej będzie działał najlepiej, jeśli pasek nie ma podkładu samoprzylepnego. Użyj taśmy klejącej, aby przytrzymać pasek na miejscu podczas testowania i podczas wysychania kleju.

Przeciągnij przewody LED przez półokrągłe otwory do uchwytu, aby połączyć się z płytą. Kabel zasilający jest również przewleczony tutaj, pamiętaj, aby wybrać otwór, na który kabel nie będzie ciągnął się z powodu grawitacji lub przypadkowych pociągnięć.

Krok 7: Montaż

Aby zamontować na ścianie, po prostu użyj 3-4 listew sterujących 3M lub tylu, ile chcesz. Użyj wycięcia w uchwycie, aby sprawdzić, czy jest wypoziomowane. Po zamontowaniu uchwytu podłącz kabel zasilający i przewody LED do płytki i włóż zegar do cienia. Następnie po prostu umieść klosz na uchwycie i podłącz kabel zasilający do zasilacza!

Zalecana: