INHOUDSOPGAWE:
- Stap 1: Onderdele en gereedskap
- Stap 2: Die plan
- Stap 3: Skakel
- Stap 4: Soldeer LED's
- Stap 5: Soldeerbeheerraad
- Stap 6: WiFi -opstelling
- Stap 7: Kode vir mikrokontroleerder
- Stap 8: Open Message Protocol
- Stap 9: Afstandsbediening
- Stap 10: 3D -drukwerk
- Stap 11: Bring dit alles saam
- Stap 12: Hang die lamp
- Stap 13: klaar
Video: DIY IoT -lamp vir tuisautomatisering -- ESP8266 -tutoriaal: 13 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
In hierdie handleiding gaan ons 'n slim lamp met internet verbind. Dit gaan diep in die internet van dinge en maak 'n wêreld van tuisautomatisering oop!
Die lamp is WiFi -verbind en gebou met 'n oop boodskapprotokol. Dit beteken dat u die beheermodus kan kies wat u wil hê! Dit kan beheer word deur 'n webblaaier, tuisautomatiseringsprogramme, slim assistente soos Alexa of Google Assistant, en soveel meer!
As 'n bonus is hierdie lamp saam met 'n app om die projek te beheer. Hier kan u verskillende kleurmodusse kies, tussen RGB -kleure vervaag en timers instel.
Die lamp bestaan uit 'n LED -bord en 'n beheerbord. Die LED -bord gebruik drie verskillende soorte LED's vir 'n totaal van vyf LED -kanale! Dit is RGB, beide warm en koud wit. Omdat al hierdie kanale individueel ingestel kan word, het u altesaam 112,3 peta -kombinasies!
Laat ons begin!
[Speel video]
Stap 1: Onderdele en gereedskap
Dele
- Wemos D1 Mini
- 15 x warmwit 5050 LED's
- 15 x Koue wit 5050 LED's
- 18 x RGB 5050 LED's
- 6 x 300 ohm 1206 weerstande
- 426 x 150 ohm 1206 weerstande
- 5 x 1k ohm weerstande
-
5 x NTR4501NT1G
MOSFETs
- Lineêre spanningsreguleerder, 5V
-
PCB
Laai die gerber -lêers in die kringloop af om u eie PCB's te maak
- PSU 12V 2A
Gereedskap
-
Soldeerbout
- Soldeerblik
- Vloeibare soldeervloei
- Maskeerband
- Dubbelzijdige band
- 3D -drukker
- Draadstroppers
Stap 2: Die plan
Die volledige projek bestaan uit vier hoofdele:
-
Kring
Die kring is gemaak op 'n PCB. Die voltooide kring bestaan uit meer as 100 individuele komponente. Dit is 'n groot verligting om dit nie met die hand op 'n bord te dra nie
-
Arduino -kode
Ek gebruik die Wemos D1 Mini wat 'n ESP8266 gebruik as 'n WiFi -gekoppelde mikrobeheerder. Die kode sal 'n bediener op die D1 begin. As u die adres van hierdie bediener besoek, sal die D1 dit as verskillende opdragte interpreteer. Die mikrobeheerder voer dan hierdie opdrag uit om die ligte dienooreenkomstig te stel
-
Afstandbeheer
- Ek het 'n app gemaak net vir hierdie projek om dit so maklik as moontlik te maak om die lamp na u smaak te beheer
- Die slim lamp kan regtig beheer word deur enigiets wat 'n http GET -versoek kan stuur. Dit beteken dat die lamp opdragte van byna 'n onbeperkte verskeidenheid toestelle aanvaar
-
3D druk
Hierdie slim lamp verdien 'n koel omhulsel. En soos soveel projekte as u 'n koelkas nodig het, kom 3D -drukwerk tot die redding
Stap 3: Skakel
Ek het my PCB's bestel by jlcpcb.com. Volle bekendmakingstyd: hulle het ook hierdie projek geborg.
Die PCB bestaan uit twee dele. Dit het die LED -bord en die beheerbord. Die PCB kan uitmekaar geknip word om hierdie twee dele later met 'n buigsame draad te verbind. Dit is nodig om die 3D -gedrukte lamp skraal te hou en om die LED -bord te skuins om die lig eweredig deur die gatkamer te versprei.
Die beheerbord huisves die D1 -mikrobeheerder saam met vyf MOSFET's om die LED's te verduister, en 'n spanningsreguleerder om die mikrobeheerder 'n gladde 5V te gee.
Die LED -bord het vyf LED -kanale in drie verskillende soorte LED's. Omdat ons 'n 12V -kragbron gebruik, word die LED's as drie LED's in serie met 'n weerstand opgestel en dan 16 keer parallel herhaal.
'N Gewone wit LED trek gewoonlik 3,3 V. Op 'n segment van die bord is drie van hierdie LED's in serie, wat beteken dat die spanningsval in die stroombaan saamgevoeg word. Drie LED's wat elk 3,3 V trek, beteken dat een segment van LED's 9,9 V.
As die segment slegs uit die drie LED's bestaan, kry hulle meer spanning as wat hulle verdwyn. Dit is nie goed vir die LED's nie en kan dit vinnig beskadig. Daarom het elke segment ook 'n weerstand in serie met al drie LED's. Hierdie weerstand is daar om die oorblywende 2.1 V in die reeksaansluiting te laat val.
As elke segment dus 12 V verteenwoordig, beteken dit dat elkeen van die segmente parallel aan mekaar gekoppel is. As stroombane parallel verbind word, kry hulle almal dieselfde spanning en die stroom word saamgevoeg. Die stroom in 'n reeksverbinding is altyd dieselfde.
'N Gereelde LED trek 'n stroom van 20 mA. Dit beteken dat 'n segment met drie LED's en 'n weerstand in serie steeds 20 mA sal trek. As ons verskeie segmente parallel verbind, voeg ons die stroom by. As u ses LED's van die strook sny, het u twee van hierdie segmente parallel. Dit beteken dat u totale stroombaan steeds 12 V trek, maar hulle trek 40 mA in stroom.
Stap 4: Soldeer LED's
Deur 'n paar dinge te probeer, het ek gevind dat 'n eenvoudige maskeerband die doeltreffendste en buigsaamste is om te voorkom dat die PCB rondbeweeg.
Vir dele met veelvoudige penne, soos die 6-penne op 'n 5050 LED, begin ek met soldeer op een van die PCB-pads. Dan is dit net om hierdie soldeersel met die soldeerbout gesmelt te hou terwyl u die komponent met 'n pincet op sy plek skuif.
Nou kan die ander pads maklik met soldeer vasgemaak word. Om hierdie werk te bespoedig, stel ek voor dat u vloeibare soldeervloeistof opneem. Ek kan hierdie goed regtig nie genoeg aanbeveel nie.
Dien 'n deel van die vloeistof op die soldeerkussings toe en smelt 'n bietjie soldeer op die punt van u soldeerbout. Nou is dit net om die gesmelte soldeer op die pads te bring en alles vloei op sy plek. Lekker en eenvoudig.
As dit kom by die weerstande en ander twee-pad komponente, is geen soldeervloei regtig nodig nie. Dien soldeer op een van die pads toe en bring die weerstand op sy plek. Smelt nou net 'n bietjie soldeer op pad nommer twee. Baie maklik.
Kyk na die vyfde prentjie in hierdie stap. Gee aandag aan die oriëntasie van die LED's. Die warm en koue wit LED's het 'n kerf in die regter boonste hoek. Die RGB -LED's het hul kerf in die linker onderste hoek. Dit is 'n ontwerpfout van my kant, want ek kon nie die datablad vind vir die RGB -LED's wat in hierdie projek gebruik is nie. Ag, leef en leer en dit alles!
Stap 5: Soldeerbeheerraad
Na afloop van die marathon van die LED -bord, is die beheerbord maklik om te soldeer. Ek het die vyf MOSFET's en bypassende hekbronweerstande neergesit voordat ek na die spanningsreguleerder oorgegaan het.
Die spanningsreguleerder het opsionele ruimtes om kondensators glad te maak. Terwyl ek hulle op hierdie foto gesoldeer het, het ek dit uiteindelik verwyder omdat dit nie regtig nodig was nie.
Die truuk om 'n skraal beheerbord te kry, is om die penkopstukke deur die bokant deur die onderkant te steek. Nadat die penne vasgemaak is, kan die ongebruikte lengte saam met die swart plastiek aan die agterkant gesny word. Dit maak die onderkant heeltemal glad.
Met al die komponente in plek, is dit tyd om die twee borde bymekaar te bring. Ek het net ses klein drade van 7 cm (7 duim) geknip en gestroop en die twee printplate verbind.
Stap 6: WiFi -opstelling
Daar is ses eenvoudige reëls in die kode wat u moet verander.
-
ssid, reël 3
Jou router naam. Maak seker dat u die lettertipe korrek kry as u dit skryf
-
wifiPass, reël 4
Jou router se wagwoord. Let weer op die omhulsel
-
ip, reël 8
Die statiese ip -adres van u slim lamp. Ek het 'n ewekansige ip -adres op my netwerk gekies en probeer om dit in die opdragvenster te ping. As daar geen antwoord van die adres is nie, kan u aanvaar dat dit beskikbaar is
-
poort, lyn 9
Dit sal die poort op u router wees. Maak 'n opdragvenster oop en tik "ipconfig". Die poort en subnet is in die prentjie rooi omring
-
subnet, reël 10
Soos met die gateway, word hierdie inligting omring in die prentjie vir hierdie stap
-
tydsone, reël 15
Die tydsone waarin u is. Verander dit as u die ingeboude timerfunksies wil gebruik om ligte op spesifieke tye aan en uit te skakel. Die veranderlike is 'n eenvoudige pluspunt of minus GMT
Stap 7: Kode vir mikrokontroleerder
Nadat u alle relevante instellings in die vorige stap verander het, is dit uiteindelik tyd om die kode na die Wemos D1 Mini op te laai!
Die arduino -kode benodig 'n paar biblioteke en afhanklikes. Volg eers hierdie gids van sparkfun as u nog nooit kode van arduino IDE na 'n ESP8266 opgelaai het nie.
Laai nou die Time -biblioteek en die TimeAlarms -biblioteek af. Pak dit uit en kopieer dit na die arduino -biblioteekmap op u rekenaar. Net soos die installering van enige ander arduino -biblioteek.
Gee aandag aan die oplaai -instellings in die prentjie op hierdie stap. Kies dieselfde konfigurasie, behalwe die com -poort. Dit is die kombinasie waarop u u mikrobeheerder op u rekenaar gekoppel het.
As die kode opgelaai word, maak die seriële terminaal oop vir 'n boodskap van 'n hopelik suksesvolle verbinding! U kan nou u blaaier oopmaak en die statiese ip -adres besoek wat u op die mikrobeheerder gestoor het. Baie geluk, jy het pas jou eie bediener gebou en bied 'n webblad daarop!
Stap 8: Open Message Protocol
As u die slim lamp met die app beheer, word al die boodskappe outomaties vir u hanteer. Hier is 'n lys van die boodskappe wat die lamp aanvaar, as u u eie afstandsbediening wil bou. Ek het 'n voorbeeld -ip -adres gebruik om te illustreer hoe om die opdragte te gebruik.
-
192.168.0.200/&&R=1023G=0512B=0034C=0500W=0500
- Stel rooi ligte op maksimum waarde, groen ligte op halfwaarde en blou ligte op 34. Koue en warm wit is skaars aan
- As u waardes invoer, kan u kies tussen 0 en 1023. Skryf die ligwaardes altyd as vier syfers in die URL in
-
192.168.0.200/&&B=0800
Stel blou ligte op die waarde 800 terwyl al die ander ligte gelyktydig afgeskakel word
-
192.168.0.200/LED=OFF
Skakel alle ligte heeltemal af
-
192.168.0.200/LED=FADE
Dit begin stadig vervaag tussen alle moontlike RGB -kleure. Ideaal vir die atmosfeer
-
192.168.0.200/NOTIFYR=1023-G=0512-B=0000
Flits die gegewe kleur twee keer om die inkomende kennisgewing aan te dui. Ideaal as u 'n program op u rekenaar wil maak om die lamp rooi te laat flikker wanneer u 'n nuwe e -pos ontvang
-
192.168.0.200/DST=1
- Pas die horlosie aan tot die somertyd. Voeg 'n uur by die klok
- /DST = 0 gebruik hierdie om terug te gaan van DST, verwyder een uur van die klok as DST aktief is
-
192.168.0.200/TIMER1H=06M=30R=1023G=0512B=0034C=0000W=0000
Stoor die toestand vir timer 1. Hierdie timer sal die gegewe RGB -waardes om 06:30 die oggend aanskakel
-
192.168.0.200/TIMER1H=99
Stel die timer uur op 99 om die timer uit te skakel. Die RGB -waardes word steeds gestoor, maar die timer sal nie die ligte aanskakel as die uur op 99 gestel is nie
- Die lamp het vier individuele timers. Verander "TIMER1" vir "TIMER2", "TIMER3" of "TIMER4" om een van die ander ingeboude tydtellers aan te pas.
Dit is die opdragte wat tans ingebou is. Gee 'n opmerking as u goeie idees het vir nuwe opdragte om in die arduino -kode of die afstands -app te bou!
Stap 9: Afstandsbediening
Klik hier om die app af te laai. Die opstelling is baie eenvoudig, voer net die ip -adres van u slim lamp in en kies of u slegs RGB -LED's of RGB + warm en koue wit LED's wil beheer.
Soos in die vorige stap verduidelik, weet u nou watter boodskapprotokol die app gebruik. Dit stuur 'n http GET -versoek met die URL's. Dit beteken dat u ook u eie mikrobeheerkringbaan kan skep en hierdie app steeds kan gebruik om die funksies wat u self ontwikkel, te beheer.
Omdat ons die boodskapprotokol diep ingegaan het, kan u ook die slim lamp beheer deur alles wat 'n http GET -versoek kan stuur. Dit beteken enige blaaier op 'n telefoon of rekenaar, of slimhuistoestelle of assistente soos Alexa of die Google Assistant.
Tasker is 'n app waarmee u basies toestande kan skep om byna alles te beheer. Ek het dit gebruik om die slim lamp met die kleur van 'n kennisgewing te flits toe ek dit op my foon ontvang. Ek het ook 'n tasker opgestel om die ligte vol wit aan te skakel as die telefoon op 'n weeksdag na 16:00 met my huis se WiFi aansluit. Dit beteken dat die ligte outomaties aangaan as ek by die huis kom. Dit is regtig cool om outomaties aan te kom met ligte aan die huis!
Stap 10: 3D -drukwerk
Die lampkas self kan byna heeltemal gedruk word sonder steun. Die enigste dele wat werklik ondersteuning nodig het, is die penne wat bedoel is vir paring met die PCB. Daarom het ek die stl beskikbaar gestel met en sonder 'n klein steunstruktuur vir net hierdie penne. Die voordeel van die gebruik van hierdie persoonlike ondersteuning is dat die druk baie vinniger is! En ons kry slegs drukondersteuning op die dele wat dit regtig nodig het.
U kan die.stl -lêers hier aflaai
Stap 11: Bring dit alles saam
Begin na die 3D -druk deur die druksteun te verwyder. Die kragkabels gaan in afsonderlike kanale en word aan mekaar vasgemaak. Hierdie knoop sal spanningverligting veroorsaak wat voorkom dat die kabels van die PCB afgeskeur word. Soldeer die kragkabels aan die agterkant van die printplaat en maak seker dat u die polariteit regkry!
Die bedienings -PCB word dan met 'n stuk band vasgemaak om dit in die kas te laat spoel. Die LED PCB kan eenvoudig op sy plek geplaas word waar dit op sy eie plat teen die behuizing lê.
Stap 12: Hang die lamp
Daar is baie opsies om hierdie lamp aan die muur te hang. Omdat ek die kode voortdurend kan opdateer om die lamp te verbeter, wou ek 'n manier hê om die lamp af en toe af te haal. U kan warm gom gebruik, maar ek beveel dubbelband aan. Dit is die beste om die dik en skuimerige dubbelzijdige band te gebruik, aangesien dit die lamp die beste teen 'n gestruktureerde muur hou.
Stap 13: klaar
Met die lamp teen die muur en gereed om opdragte te aanvaar, beteken dit dat u klaar is!
Die LED -paneel is skuins op 'n manier wat die lig eweredig in die kamer versprei. Dit is 'n goeie toevoeging tot enige werkruimte en die integrasie met tuisautomatisering is 'n groot pluspunt. Ek hou baie van die vermoë om RGB -kleure in te stel, sowel as om die witbalans tussen koue en warm lig aan te pas. Dit lyk stylvol en is 'n uitstekende hulp vir die instelling van die omgewing of werkligte, om aan te pas by die behoefte aan beligting wat ek tans het.
Baie geluk, jy het nou 'n groot sprong gemaak in die wêreld van IoT en tuisautomatisering!