Indholdsfortegnelse:

DIY IoT -lampe til hjemmeautomatisering -- ESP8266 Tutorial: 13 trin (med billeder)
DIY IoT -lampe til hjemmeautomatisering -- ESP8266 Tutorial: 13 trin (med billeder)

Video: DIY IoT -lampe til hjemmeautomatisering -- ESP8266 Tutorial: 13 trin (med billeder)

Video: DIY IoT -lampe til hjemmeautomatisering -- ESP8266 Tutorial: 13 trin (med billeder)
Video: Start Using Wemos D1 Mini NodeMCU WiFi ESP8266 module with Arduino 2024, Juni
Anonim
Image
Image
DIY IoT -lampe til hjemmeautomatisering || ESP8266 Tutorial
DIY IoT -lampe til hjemmeautomatisering || ESP8266 Tutorial

I denne vejledning laver vi en internetforbundet smart lampe. Dette vil gå dybt ind i tingenes internet og åbner en verden af hjemmeautomatisering!

Lampen er WiFi -tilsluttet og bygget til at have en åben meddelelsesprotokol. Det betyder, at du kan vælge den ønskede kontroltilstand! Det kan styres via en webbrowser, hjemmeautomatiseringsapps, smarte assistenter som Alexa eller Google Assistant og meget mere!

Som en bonus følger denne lampe sammen med en app til at styre projektet. Her kan du vælge forskellige farvetilstande, falme mellem RGB -farver og indstille timere.

Lampen består af et LED -kort og et kontrolkort. LED -kortet bruger tre forskellige typer LED'er til i alt fem LED -kanaler! Dette er RGB sammen med både varm og kold hvid. Fordi alle disse kanaler kan indstilles individuelt, har du i alt 112,3 peta -kombinationer!

Lad os komme igang!

[Afspil video]

Trin 1: Dele og værktøjer

Dele og værktøjer
Dele og værktøjer

Dele

  • Wemos D1 Mini
  • 15 x varmhvide 5050 lysdioder
  • 15 x koldhvide 5050 lysdioder
  • 18 x RGB 5050 lysdioder
  • 6 x 300 ohm 1206 modstande
  • 42 x 150 ohm 1206 modstande
  • 5 x 1k ohm modstande
  • 5 x NTR4501NT1G

    MOSFET'er

  • Lineær spændingsregulator, 5V
  • PCB

    Download gerber -filerne i kredsløbstrinnet for at lave dine egne printkort

  • PSU 12V 2A

Værktøjer

  • Loddekolbe

    • Loddeform
    • Flydende loddeflux
  • Malertape
  • Dobbeltsidet tape
  • 3D printer
  • Wire strippere

Trin 2: Planen

Planen
Planen

Det komplette projekt består af fire hoveddele:

  1. Kredsløb

    Kredsløbet er lavet på et printkort. Det færdige kredsløb består af mere end 100 individuelle komponenter. Det er en enorm lettelse ikke at koble alle dem i hånden på et perfboard

  2. Arduino kode

    Jeg bruger Wemos D1 Mini, der bruger en ESP8266 som en WiFi -tilsluttet mikrokontroller. Koden starter en server på D1. Når du besøger adressen på denne server, vil D1 tolke dette som forskellige kommandoer. Mikrocontrolleren handler derefter på denne kommando for at indstille lysene i overensstemmelse hermed

  3. Fjernbetjening

    • Jeg lavede en app bare til dette projekt for at gøre det så let som muligt at styre lampen efter din smag
    • Den smarte lampe kan virkelig styres af alt, hvad der er i stand til at sende en http GET -anmodning. Det betyder, at lampen accepterer kommandoer fra næsten et ubegrænset udvalg af enheder
  4. 3D -udskrivning

    Denne smarte lampe fortjener en sej etui. Og som så mange projekter, hvor du har brug for en cool sag, kommer 3D -print til undsætning

Trin 3: Kredsløb

Kredsløb
Kredsløb
Kredsløb
Kredsløb
Kredsløb
Kredsløb

Jeg bestilte mine printkort fra jlcpcb.com. Fuld oplysningstid: de sponsorerede også dette projekt.

PCB består af to dele. Det har LED -kortet og kontrolkortet. Printkortet kan klikkes fra hinanden for senere at forbinde disse to dele med fleksibel ledning. Dette er nødvendigt for både at holde den 3D -printede lampe slank og for at vinkle LED -kortet for at sprede lyset jævnt gennem hulrummet.

Kontrolkortet huser D1 -mikrokontrolleren sammen med fem MOSFET'er til dæmpning af lysdioderne og en spændingsregulator til at give mikrokontrolleren en jævn 5V.

LED -kortet har fem LED -kanaler i tre forskellige typer LED'er. Fordi vi bruger en 12V strømkilde, er LED'erne konfigureret som tre LED'er i serie med en modstand og derefter gentaget 16 gange parallelt.

En almindelig hvid LED trækker normalt 3,3 V. På et segment af tavlen er tre af disse lysdioder i serie, hvilket betyder, at spændingsfaldet aggregeres i kredsløbet. Tre lysdioder, der hver især trækker 3,3 V, betyder, at et segment af LED'er trækker 9,9 V. Kredsløbet drives af 12 V, så der efterlades 2,1 V.

Hvis segmentet kun bestod af de tre lysdioder, ville de få mere spænding, end de forsvinder. Dette er ikke godt for lysdioderne og kan hurtigt skade dem. Derfor har hvert segment også en modstand i serie med alle tre lysdioder. Denne modstand er der for at tabe de resterende 2,1 V i seriekrydsningen.

Så hvis hvert segment tegner sig for 12 V, betyder det, at hvert af segmenterne er forbundet parallelt med hinanden. Når kredsløb er forbundet parallelt, får de alle den samme spænding, og strømmen aggregeres. Strømmen i en serieforbindelse er altid den samme.

En almindelig LED trækker 20 mA i strøm. Dette betyder et segment, der er tre lysdioder og en modstand i serie stadig vil trække 20 mA. Når vi forbinder flere segmenter parallelt, tilføjer vi strømmen. Hvis du skærer seks lysdioder fra strimlen, har du to af disse segmenter parallelt. Hvilket betyder, at dit samlede kredsløb stadig trækker 12 V, men de trækker 40 mA i strøm.

Trin 4: Lodning LED'er

Lodde -LED'er
Lodde -LED'er
Lodde -LED'er
Lodde -LED'er
Lodde -LED'er
Lodde -LED'er

Fra at have prøvet et par ting, har jeg fundet, at enkelt malertape er det mest effektive og fleksible til at forhindre printkortet i at bevæge sig rundt.

For dele med flere ben, som 6-benene på en 5050 LED, starter jeg med at lægge loddetin på en af printkortene. Så er det bare at holde dette loddemetal smeltet med loddejernet, mens komponenten glider på plads med en pincet.

Nu kan de andre puder let klæbes på med noget loddemateriale. For at fremskynde dette arbejde foreslår jeg imidlertid at opsamle noget flydende loddemiddel. Jeg kan virkelig ikke anbefale disse ting nok.

Påfør noget af fluxen til loddepuderne, og smelt derefter noget loddemiddel på spidsen af dit loddejern. Nu er det bare at bringe det smeltede loddemateriale på puderne, og alt flyder på plads. Dejligt og enkelt.

Når det kommer til modstande og andre to-pad-komponenter, er der ikke virkelig brug for loddemetal. Påfør loddetin på en af puderne, og bring modstanden på plads. Smelt nu bare noget loddetæt på pude nummer to. Let peasy.

Tag et kig på det femte billede i dette trin. Vær opmærksom på LED'ernes orientering. De varme og kolde hvide lysdioder har deres hak orienteret i øverste højre hjørne. RGB -lysdioderne har deres hak i nederste venstre hjørne. Dette er en designfejl fra min side, fordi jeg ikke kunne finde databladet for de RGB -lysdioder, der blev brugt i dette projekt. Nåvel, lev og lær og alt det!

Trin 5: Loddekontrolkort

Loddekontrolkort
Loddekontrolkort
Loddekontrolkort
Loddekontrolkort
Loddekontrolkort
Loddekontrolkort
Loddekontrolkort
Loddekontrolkort

Efter at have afsluttet marathon på LED -brættet, er kontrolkortet let at lodde. Jeg placerede de fem MOSFET'er og matchende gate-source modstande, inden jeg gik over på spændingsregulatoren.

Spændingsregulatoren har valgfri plads til udjævning af kondensatorer. Mens jeg lodde dem i dette billede, endte jeg med at fjerne dem, fordi de ikke virkelig var nødvendige.

Tricket til at få et slankt styrekort er at sætte pinhovederne ud af toppen gennem bunden. Når stifterne er på plads, kan den ubrugte længde klippes fra bagsiden sammen med den sorte plastik. Dette gør undersiden helt glat.

Med alle komponenterne på plads er det tid til at bringe de to brædder sammen. Jeg har lige klippet og fjernet seks små ledninger på 2,5 tommer (7 cm) og tilsluttet de to printkort.

Trin 6: WiFi -opsætning

WiFi -opsætning
WiFi -opsætning
WiFi -opsætning
WiFi -opsætning

Der er seks enkle linjer i koden, du skal ændre.

  1. ssid, linje 3

    Dit routers navn. Sørg for at få bogstaverne korrekte, når du skriver dette

  2. wifiPass, linje 4

    Din routers adgangskode. Igen, vær opmærksom på kabinettet

  3. ip, linje 8

    Den statiske ip -adresse på din smarte lampe. Jeg valgte en tilfældig ip -adresse på mit netværk og forsøgte at pinge den i kommandovinduet. Hvis der ikke er noget svar fra adressen, kan du antage, at den er tilgængelig

  4. gateway, linje 9

    Dette vil være gatewayen på din router. Åbn et kommandovindue, og skriv "ipconfig". Gatewayen og subnet er cirkuleret med rødt på billedet

  5. undernet, linje 10

    Som med gateway'en er disse oplysninger cirkuleret i billedet for dette trin

  6. tidszone, linje 15

    Tidszonen du er i. Skift dette, hvis du vil bruge de indbyggede timerfunktioner til at tænde og slukke lys på bestemte tidspunkter. Variablen er et simpelt plus eller minus GMT

Trin 7: Mikrocontrollerkode

Mikrokontroller kode
Mikrokontroller kode
Mikrokontroller kode
Mikrokontroller kode
Mikrokontroller kode
Mikrokontroller kode
Mikrokontroller kode
Mikrokontroller kode

Efter at have ændret alle relevante indstillinger i det foregående trin er det endelig tid til at uploade koden til Wemos D1 Mini!

Arduino -koden kræver et par biblioteker og afhængigheder. Følg først denne guide fra sparkfun, hvis du aldrig har uploadet kode fra arduino IDE til en ESP8266.

Download nu Time -biblioteket og TimeAlarms -biblioteket. Pak disse ud, og kopier dem til arduino biblioteksmappen på din computer. Ligesom at installere andre arduino -biblioteker.

Vær opmærksom på uploadindstillingerne på billedet på dette trin. Vælg den samme konfiguration, undtagen com -porten. Dette vil være uanset hvilken port du har din mikrokontroller tilsluttet til din computer.

Når koden er uploadet, åbner du den serielle terminal til en besked om en forhåbentlig vellykket forbindelse! Du kan nu åbne din browser og besøge den statiske ip -adresse, du har gemt på mikrokontrolleren. Tillykke, du har lige bygget din egen server og er vært for en webside på den!

Trin 8: Åbn meddelelsesprotokol

Åbn meddelelsesprotokol
Åbn meddelelsesprotokol
Åbn meddelelsesprotokol
Åbn meddelelsesprotokol
Åbn meddelelsesprotokol
Åbn meddelelsesprotokol
Åbn meddelelsesprotokol
Åbn meddelelsesprotokol

Når du styrer smartlampen med appen, håndteres alle meddelelser automatisk for dig. Her er en liste over de meddelelser, lampen accepterer, hvis du vil bygge din egen fjernbetjening. Jeg har brugt et eksempel ip -adresse til at illustrere, hvordan man bruger kommandoerne.

  • 192.168.0.200/&&R=1023G=0512B=0034C=0500W=0500

    • Indstiller rødt lys til maks. Værdi, grønt lys til halv værdi og blåt lys til 34. Koldt og varmt hvidt er næsten ikke tændt
    • Når du indtaster værdier, kan du vælge mellem 0 og 1023. Skriv altid lysværdierne som fire cifre i URL'en
  • 192.168.0.200/&&B=0800

    Indstiller blå lys til værdien 800, samtidig med at alle andre lys slukkes

  • 192.168.0.200/LED=OFF

    Slukker alle lys helt

  • 192.168.0.200/LED=FADE

    Begynder langsomt at falme mellem alle mulige RGB -farver. Perfekt til stemningen

  • 192.168.0.200/NOTIFYR=1023-G=0512-B=0000

    Blinker den givne farve to gange for at angive indgående meddelelse. Perfekt, hvis du f.eks. Vil oprette et program på din computer, der blinker rødt, når du modtager en ny e -mail

  • 192.168.0.200/DST=1

    • Justerer uret til sommertid. Tilføjer en time til uret
    • /DST = 0 brug denne til at gå tilbage fra DST, fjerner en time fra uret, hvis DST er aktiv
  • 192.168.0.200/TIMER1H=06M=30R=1023G=0512B=0034C=0000W=0000

    Gemmer tilstanden for timer 1. Denne timer tænder de givne RGB -værdier kl. 06:30 om morgenen

  • 192.168.0.200/TIMER1H=99

    Indstil timeren til 99 for at deaktivere timeren. RGB -værdierne gemmes stadig, men timeren tænder ikke lyset, når timen er indstillet til 99

  • Lampen har fire individuelle timere. Skift "TIMER1" for "TIMER2", "TIMER3" eller "TIMER4" for at justere en af de andre indbyggede timere.

Disse er de aktuelt indbyggede kommandoer. Efterlad en kommentar, hvis du har nogle fede ideer til nye kommandoer til at bygge enten i arduino -koden eller fjernappen!

Trin 9: Fjernbetjening

Fjernbetjening
Fjernbetjening
Fjernbetjening
Fjernbetjening
Fjernbetjening
Fjernbetjening
Fjernbetjening
Fjernbetjening

Klik her for at downloade appen. Opsætningen er gjort super let, bare indtast ip -adressen på din smarte lampe og vælg, om du kun vil styre RGB -lysdioder eller RGB + varme og kolde hvide lysdioder.

Som forklaret i det foregående trin ved du nu, hvilken meddelelsesprotokol appen bruger. Det sender en http GET -anmodning med webadresserne. Det betyder, at du også kan oprette dit eget mikrokontroller kredsløb og stadig bruge denne app til at styre de funktioner, du udvikler på egen hånd.

Fordi vi virkelig har kigget dybt ind i meddelelsesprotokollen, kan du også styre den smarte lampe med alt, hvad der kan sende en http GET -anmodning. Dette betyder enhver browser på en telefon eller computer eller smart home -enheder eller assistenter som Alexa eller Google Assistant.

Tasker er en app, der grundlæggende lader dig skabe betingelser for at styre tæt på alt. Jeg brugte det til at blinke den smarte lampe med farven på en meddelelse, når jeg modtager den på min telefon. Jeg konfigurerede også tasker til at tænde lysene i fuld hvid, når telefonen opretter forbindelse til mit WiFi i hjemmet efter 16:00 på en hverdag. Det betyder, at lysene tænder automatisk, når jeg kommer hjem fra skolen. Det er virkelig fedt at komme hjem med lys automatisk tændt!

Trin 10: 3D -udskrivning

3D -udskrivning
3D -udskrivning

Selve lampekassen kan udskrives næsten helt uden understøtninger. De eneste dele, der virkelig har brug for støtte, er pindene beregnet til parring med printkortet. Derfor stillede jeg stl til rådighed både med og uden en lille støttestruktur til netop disse pinde. Fordelen ved at bruge denne brugerdefinerede support er, at udskrivningen er meget hurtigere! Og vi får kun trykstøtte på de dele, der virkelig har brug for det.

Du kan downloade.stl -filerne her

Trin 11: Bring det hele sammen

Bring det hele sammen
Bring det hele sammen
Bring det hele sammen
Bring det hele sammen
Bring det hele sammen
Bring det hele sammen

Efter 3D -udskrivning start med at fjerne udskrivningsunderstøttelsen. Strømkablerne går ind i separate kanaler og er bundet sammen. Denne knude vil skabe trækaflastning, der forhindrer kablerne i at blive revet af printkortet. Lod strømkablerne på bagsiden af printkortet, og sørg for, at du får den rigtige polaritet!

Kontrol -printkortet fastgøres derefter med et stykke tape for at holde det flush inde i kabinettet. LED -printkortet kan ganske enkelt sættes på sin plads, hvor det ligger fladt mod sagen alene.

Trin 12: Hængning af lampen

Hængning af lampen
Hængning af lampen
Hængning af lampen
Hængning af lampen
Hængning af lampen
Hængning af lampen

Der er mange muligheder for at hænge denne lampe på væggen. Fordi jeg løbende kunne opdatere koden for at forbedre lampen, ville jeg have en måde at tage lampen fra tid til anden. Du kan bruge varm lim, men jeg anbefaler noget dobbeltsidet tape. Det er bedst at bruge det tykke og skummende dobbeltsidede tape, da det holder lampen bedst mod en struktureret væg.

Trin 13: Færdig

Færdig
Færdig
Færdig
Færdig
Færdig
Færdig

Med lampen oppe på væggen og klar til at acceptere kommandoer, betyder det, at du er færdig!

LED -panelet er vinklet på en måde, der spreder lyset jævnt i rummet. Det er en god tilføjelse til ethvert arbejdsområde, og muligheden for integration med hjemmeautomatisering er et stort plus. Jeg kan virkelig godt lide muligheden for at indstille RGB -farver samt justere hvidbalancerne mellem koldt og varmt lys. Det ser stilfuldt ud og er en stor hjælp til indstilling af omgivelses- eller arbejdslys, der passer til det lysbehov, jeg har i øjeblikket.

Tillykke, du har nu taget et stort spring ind i verden af IoT og hjemmeautomatisering!