Innehållsförteckning:
- Steg 1: Delar och verktyg
- Steg 2: Planen
- Steg 3: Krets
- Steg 4: Lödning av lysdioder
- Steg 5: Lödkontrollkort
- Steg 6: WiFi -installation
- Steg 7: Mikrocontroller -kod
- Steg 8: Öppna Message Protocol
- Steg 9: Fjärrkontroll
- Steg 10: 3D -utskrift
- Steg 11: Samla allt
- Steg 12: Häng lampan
- Steg 13: Avslutad
Video: DIY IoT -lampa för hemautomation -- ESP8266 Handledning: 13 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
I denna handledning ska vi göra en internetansluten smart lampa. Detta kommer att gå djupt in i sakernas internet och öppnar en värld av hemautomation!
Lampan är WiFi -ansluten och byggd för att ha ett öppet meddelandeprotokoll. Detta innebär att du kan välja vilket styrläge du vill! Det kan styras via en webbläsare, appar för hemautomation, smarta assistenter som Alexa eller Google Assistant och mycket mer!
Som en bonus följer denna lampa med en app för att styra projektet. Här kan du välja olika färglägen, blekna mellan RGB -färger och ställa in timers.
Lampan består av ett LED -kort och ett styrkort. LED -kortet använder tre olika typer av lysdioder för totalt fem LED -kanaler! Detta är RGB tillsammans med både varmt och kallt vitt. Eftersom alla dessa kanaler kan ställas in individuellt har du totalt 112,3 petakombinationer!
Låt oss börja!
[Spela filmen]
Steg 1: Delar och verktyg
Delar
- Wemos D1 Mini
- 15 x varmvita 5050 lysdioder
- 15 x kallvita 5050 lysdioder
- 18 x RGB 5050 lysdioder
- 6 x 300 ohm 1206 motstånd
- 42 x 150 ohm 1206 motstånd
- 5 x 1k ohm motstånd
-
5 x NTR4501NT1G
MOSFET
- Linjär spänningsregulator, 5V
-
PCB
Ladda ner gerber -filerna i kretssteget för att göra dina egna kretskort
- Nätaggregat 12V 2A
Verktyg
-
Lödkolv
- Lödtenn
- Flytande lödningsmedel
- Maskeringstejp
- Dubbelsidig tejp
- 3d skrivare
- Wire strippers
Steg 2: Planen
Hela projektet består av fyra huvuddelar:
-
Krets
Kretsen är gjord på ett kretskort. Den färdiga kretsen består av mer än 100 enskilda komponenter. Det är en enorm lättnad att inte köra alla dessa för hand på en bräda
-
Arduino -kod
Jag använder Wemos D1 Mini som använder en ESP8266 som en WiFi -ansluten mikrokontroller. Koden startar en server på D1. När du besöker adressen till den här servern tolkar D1 detta som olika kommandon. Mikrokontrollern verkar sedan på detta kommando för att ställa in lamporna i enlighet därmed
-
Fjärrkontroll
- Jag skapade en app just för det här projektet för att göra det så enkelt som möjligt att styra lampan efter eget tycke
- Den smarta lampan kan verkligen styras av allt som kan skicka en http GET -begäran. Det betyder att lampan accepterar kommandon från nästan ett obegränsat antal enheter
-
3d-utskrivning
Denna smarta lampa förtjänar ett snyggt fodral. Och som så många projekt där du behöver ett coolt fodral, kommer 3D -utskrift till undsättning
Steg 3: Krets
Jag beställde mina kretskort från jlcpcb.com. Full informationstid: de sponsrade också detta projekt.
Kretskortet består av två delar. Den har LED -kortet och kontrollkortet. Kretskortet kan knäppas isär för att senare ansluta dessa två delar med flexibel tråd. Detta är nödvändigt för att både hålla den 3D -tryckta lampan smal och för att vinkla LED -kortet för att sprida ljuset jämnt genom hålrummet.
Kontrollkortet rymmer D1 -mikrokontrollen tillsammans med fem MOSFET: er för dimning av lysdioderna och en spänningsregulator för att ge mikrokontrollern en jämn 5V.
LED -kortet har fem LED -kanaler i tre olika typer av lysdioder. Eftersom vi använder en 12V strömkälla konfigureras lysdioderna som tre lysdioder i serie med ett motstånd och upprepas sedan 16 gånger parallellt.
En vanlig vit lysdiod drar vanligtvis 3,3 V. På ett segment av kortet är tre av dessa lysdioder i serie vilket innebär att spänningsfallet aggregeras i kretsen. Tre lysdioder som drar 3,3 V vardera betyder att ett segment av lysdioder drar 9,9 V. Kretsen drivs av 12 V så att den lämnar 2,1 V.
Om segmentet bara bestod av de tre lysdioderna skulle de få mer spänning än de försvinner. Detta är inte bra för lysdioderna och kan snabbt skada dem. Det är därför varje segment också har ett motstånd i serie med alla tre lysdioder. Detta motstånd är där för att tappa de återstående 2,1 V i seriekopplingen.
Så om varje segment står för 12 V betyder det att var och en av segmenten är parallellt anslutna till varandra. När kretsar är anslutna parallellt får de alla samma spänning och strömmen aggregeras. Strömmen i en seriekoppling är alltid densamma.
En vanlig LED drar 20 mA i ström. Detta innebär att ett segment, som är tre lysdioder och ett motstånd i serie fortfarande drar 20 mA. När vi ansluter flera segment parallellt lägger vi till strömmen. Om du skär sex lysdioder från remsan har du två av dessa segment parallellt. Vilket betyder att din totala krets fortfarande drar 12 V, men de drar 40 mA i ström.
Steg 4: Lödning av lysdioder
Från att ha testat några saker har jag funnit att enkelt maskeringstejp är det mest effektiva och flexibla för att hindra kretskortet från att röra sig.
För delar med flera stift, som 6-stiftet på en 5050 LED, börjar jag med att lägga ned lödet på en av kretskortsdynorna. Sedan är det bara att hålla detta löd smält med lödkolven medan du skjuter in komponenten på plats med en pincett.
Nu kan de andra kuddarna enkelt klibas på med lite lödning. För att påskynda detta arbete föreslår jag dock att man tar upp lite flytande lödningsflöde. Jag kan verkligen inte rekommendera det här nog.
Applicera lite av flödet på lödkuddarna och smält sedan lite löd på spetsen av ditt lödkolv. Nu är det bara att ta med det smälta lödet på dynorna och allt flyter på plats. Snyggt och enkelt.
När det gäller motstånden och andra komponenter med två dynor behövs inget lödflöde. Applicera lödning på en av dynorna och sätt motståndet på plats. Nu är det bara att smälta lite lödmedel på platta nummer två. Lätt som en plätt.
Ta en titt på den femte bilden i detta steg. Var uppmärksam på orienteringen av lysdioderna. De varma och kalla vita lysdioderna har sitt snäpp i det övre högra hörnet. RGB -lysdioderna har sitt hack i nedre vänstra hörnet. Detta är ett designfel från min sida, eftersom jag inte kunde hitta databladet för RGB -lysdioderna som används i detta projekt. Nåja, lev och lär och allt det där!
Steg 5: Lödkontrollkort
Efter att ha avslutat LED -brädets maraton är styrkortet lätt att löda. Jag placerade ner de fem MOSFET: erna och matchande gate-source-motstånd innan jag gick över till spänningsregulatorn.
Spänningsregulatorn har valfria utrymmen för utjämning av kondensatorer. Medan jag lödde dem i den här bilden slutade jag med att ta bort dem eftersom de inte var nödvändiga.
Tricket för att få en smal kontrollpanel är att sätta stifthuvudena som sticker ut från toppen genom botten. När stiften är på plats kan den oanvända längden klippas från baksidan tillsammans med den svarta plasten. Detta gör undersidan helt slät.
Med alla komponenter på plats är det dags att föra ihop de två brädorna. Jag klippte och tog av sex små 2,5 tum (7 cm) ledningar och kopplade ihop de två kretskorten.
Steg 6: WiFi -installation
Det finns sex enkla rader i koden du behöver ändra.
-
ssid, rad 3
Ditt routernamn. Se till att du får bokstaven korrekt när du skriver detta
-
wifiPass, rad 4
Routerlösenordet. Återigen, var uppmärksam på höljet
-
ip, rad 8
Den statiska ip -adressen för din smarta lampa. Jag valde en slumpmässig ip -adress i mitt nätverk och försökte pinga den i kommandofönstret. Om det inte finns något svar från adressen kan du anta att den är tillgänglig
-
gateway, linje 9
Detta blir gatewayen på din router. Öppna ett kommandofönster och skriv "ipconfig". Gatewayen och delnätet är inringade i rött på bilden
-
delnät, rad 10
Precis som med gatewayen, är denna information inringad i bilden för detta steg
-
tidszon, rad 15
Tidszonen du befinner dig i. Ändra detta om du vill använda de inbyggda timerfunktionerna för att slå på och stänga av lampor vid specifika tider. Variabeln är en enkel pluss eller minus GMT
Steg 7: Mikrocontroller -kod
Efter att ha ändrat alla relevanta inställningar i föregående steg är det äntligen dags att ladda upp koden till Wemos D1 Mini!
Arduino -koden kräver några bibliotek och beroenden. Följ först den här guiden från sparkfun om du aldrig har laddat upp kod från arduino IDE till en ESP8266.
Ladda nu ner Time -biblioteket och TimeAlarms -biblioteket. Packa upp dessa och kopiera till arduino -biblioteksmappen på din dator. Precis som att installera alla andra arduino -bibliotek.
Var uppmärksam på uppladdningsinställningarna i bilden på detta steg. Välj samma konfiguration, förutom komporten. Det här är vilken port som du har din mikrokontroller ansluten till på din dator.
När koden laddas upp öppnar du den seriella terminalen till ett meddelande om en förhoppningsvis lyckad anslutning! Du kan nu öppna din webbläsare och besöka den statiska ip -adress du sparade på mikrokontrollern. Grattis, du har precis byggt din egen server och är värd för en webbsida på den!
Steg 8: Öppna Message Protocol
När du styr den smarta lampan med appen hanteras alla meddelanden automatiskt åt dig. Här är en lista över de meddelanden lampan accepterar, om du vill bygga din egen fjärrkontroll. Jag har använt ett exempel ip -adress för att illustrera hur man använder kommandona.
-
192.168.0.200/&&R=1023G=0512B=0034C=0500W=0500
- Ställer in röda lampor till maxvärde, gröna lampor till halvvärde och blått ljus till 34. Kallt och varmt vitt är knappt tänt
- När du anger värden kan du välja mellan 0 och 1023. Skriv alltid ljusvärdena som fyra siffror i URL: en
-
192.168.0.200/&&B=0800
Ställer in blå lampor till värdet 800 samtidigt som alla andra lampor släcks
-
192.168.0.200/LED=OFF
Släcker alla lampor helt
-
192.168.0.200/LED=FADE
Börjar långsamt blekna mellan alla möjliga RGB -färger. Perfekt för atmosfären
-
192.168.0.200/NOTIFYR=1023-G=0512-B=0000
Blinkar den givna färgen två gånger för att indikera inkommande avisering. Perfekt om du vill, säg, skapa ett program på din dator för att blinka rött varje gång du får ett nytt e -postmeddelande
-
192.168.0.200/DST=1
- Justerar klockan till sommartid. Lägger till en timme på klockan
- /DST = 0 använda detta för att gå tillbaka från DST, tar bort en timme från klockan om DST är aktiv
-
192.168.0.200/TIMER1H=06M=30R=1023G=0512B=0034C=0000W=0000
Sparar tillståndet för timer 1. Denna timer aktiverar de angivna RGB -värdena 06:30 på morgonen
-
192.168.0.200/TIMER1H=99
Ställ timern till 99 för att inaktivera timern. RGB -värdena är fortfarande lagrade, men timern tänder inte lamporna när timmen är inställd på 99
- Lampan har fyra individuella timers. Ändra "TIMER1" för "TIMER2", "TIMER3" eller "TIMER4" för att justera en av de andra inbyggda timern.
Dessa är de för närvarande inbyggda kommandona. Lämna en kommentar om du har några coola idéer för nya kommandon att bygga antingen i arduino -koden eller fjärrappen!
Steg 9: Fjärrkontroll
Klicka här för att ladda ner appen. Installationen är mycket enkel, ange bara din smarta lampas ip -adress och välj om du bara vill styra RGB -lysdioder eller RGB + varma och kalla vita lysdioder.
Som förklarades i föregående steg vet du nu vilket meddelandeprotokoll appen använder. Det skickar en http GET -begäran med webbadresserna. Det betyder att du också kan skapa din egen mikrokontrollerkrets och ändå använda den här appen för att styra de funktioner du utvecklar på egen hand.
Eftersom vi verkligen har tittat djupt in i meddelandeprotokollet kan du också styra den smarta lampan med allt som kan skicka en http GET -begäran. Detta betyder alla webbläsare på en telefon eller dator eller smarta hemapparater eller assistenter som Alexa eller Google Assistant.
Tasker är en app som i princip låter dig skapa förutsättningar att styra nära vad som helst. Jag använde det för att blinka den smarta lampan med färgen på ett meddelande när jag fick den på min telefon. Jag ställde också in tasker för att tända lamporna i full vit när telefonen ansluter till mitt hem WiFi efter 16:00 på en vardag. Det betyder att lamporna tänds automatiskt när jag kommer hem från skolan. Det är riktigt häftigt att komma hem med lampor automatiskt tända!
Steg 10: 3D -utskrift
Själva lamphuset kan skrivas ut nästan helt utan stöd. De enda delarna som verkligen behöver stöd är pinnarna som är avsedda för parning med kretskortet. Därför gjorde jag stl tillgänglig både med och utan en liten stödstruktur för just dessa pinnar. Fördelen med att använda detta anpassade stöd är att utskriften är mycket snabbare! Och vi får bara utskriftsstöd på de delar som verkligen behöver det.
Du kan ladda ner.stl -filerna här
Steg 11: Samla allt
Börja med att ta bort utskriftsstödet efter 3D -utskrift. Strömkablarna går in i separata kanaler och är bundna. Denna knut kommer att skapa dragavlastning som förhindrar att kablarna slits av kretskortet. Löd strömkablarna på baksidan av kretskortet och se till att du får rätt polaritet!
Kontrollkortet fästs sedan med en tejpbit för att hålla det spolat inuti höljet. LED -kretskortet kan enkelt sättas på sin plats där det ligger platt mot höljet på egen hand.
Steg 12: Häng lampan
Det finns många alternativ för att hänga denna lampa på väggen. Eftersom jag kontinuerligt kan uppdatera koden för att förbättra lampan ville jag ha ett sätt att ta ner lampan då och då. Du kan använda varmt lim, men jag rekommenderar lite dubbelsidig tejp. Det är bäst att använda den tjocka och skummande dubbelsidiga tejpen eftersom den håller lampan bäst mot en texturerad vägg.
Steg 13: Avslutad
Med lampan uppe på väggen och redo att ta emot kommandon betyder det att du är klar!
LED -panelen är vinklad på ett sätt som sprider ljuset jämnt i rummet. Det är ett trevligt tillägg till alla arbetsytor och möjligheten för integration med hemautomation är ett stort plus. Jag gillar verkligen möjligheten att ställa in RGB -färger samt justera vitbalanser mellan kallt och varmt ljus. Det ser snyggt ut och är en stor hjälp för att ställa in omgivnings- eller arbetsbelysning, för att passa alla ljusbehov jag har för tillfället.
Grattis, du har nu tagit ett stort steg in i världen av IoT och hemautomation!