Sisällysluettelo:
- Vaihe 1: Osat ja työkalut
- Vaihe 2: Suunnitelma
- Vaihe 3: Piiri
- Vaihe 4: LEDien juottaminen
- Vaihe 5: Juotoskortti
- Vaihe 6: WiFi -asetukset
- Vaihe 7: Mikrokontrollerikoodi
- Vaihe 8: Avaa Message Protocol
- Vaihe 9: Kaukosäädin
- Vaihe 10: 3D -tulostus
- Vaihe 11: Yhdistä kaikki
- Vaihe 12: Lampun ripustaminen
- Vaihe 13: Valmis
Video: DIY IoT -lamppu kodin automaatioon -- ESP8266 -opetusohjelma: 13 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Tässä opetusohjelmassa aiomme tehdä Internetiin yhdistetyn älylampun. Tämä menee syvälle esineiden internetiin ja avaa kodin automaation maailman!
Lamppu on WiFi -yhteydessä ja varustettu avoimen viestin protokollalla. Tämä tarkoittaa, että voit valita haluamasi ohjaustilan! Sitä voidaan ohjata verkkoselaimen, kodin automaatiosovellusten, älykkäiden avustajien, kuten Alexan tai Google Assistantin, avulla ja paljon muuta!
Bonuksena tämä lamppu tulee yhdessä sovelluksen kanssa projektin ohjaamiseksi. Täällä voit valita eri väritiloja, häivyttää RGB -värejä ja asettaa ajastimia.
Lamppu koostuu LED -kortista ja ohjauskortista. LED -kortti käyttää kolmea erityyppistä LEDiä yhteensä viidelle LED -kanavalle! Tämä on RGB sekä lämpimän että kylmän valkoisen kanssa. Koska kaikki nämä kanavat voidaan asettaa yksitellen, sinulla on yhteensä 112,3 petayhdistelmää!
Aloitetaan!
[Toista video]
Vaihe 1: Osat ja työkalut
Osat
- Wemos D1 Mini
- 15 x lämmin valkoinen 5050 LEDiä
- 15 x kylmää valkoista 5050 LEDiä
- 18 x RGB 5050 LEDiä
- 6 x 300 ohmin 1206 vastukset
- 42 x 150 ohmin 1206 vastukset
- 5 x 1 k ohmin vastukset
-
5 x NTR4501NT1G
MOSFETit
- Lineaarinen jännitesäädin, 5V
-
PCB
Lataa gerber -tiedostot piirivaiheessa ja tee omat piirilevyt
- Virtalähde 12V 2A
Työkalut
-
Juotin
- Juotin
- Nestemäinen juotosvirta
- Maalarinteippi
- Kaksipuolinen teippi
- 3D tulostin
- Langanpoistimet
Vaihe 2: Suunnitelma
Koko projekti koostuu neljästä pääosasta:
-
Piiri
Piiri on tehty piirilevylle. Valmis piiri koostuu yli 100 yksittäisestä osasta. On suuri helpotus olla langattomasti langattaessa niitä kaikkia käsin laudalle
-
Arduino -koodi
Käytän Wemos D1 Miniä, joka käyttää ESP8266: ta WiFi -liitettynä mikro -ohjaimena. Koodi käynnistää palvelimen D1: llä. Kun käyt tämän palvelimen osoitteessa, D1 tulkitsee tämän eri komentoina. Mikro -ohjain toimii sitten tämän komennon mukaisesti asettaakseen valot vastaavasti
-
Kaukosäädin
- Tein sovelluksen juuri tätä projektia varten, jotta lampun hallinta olisi mahdollisimman helppoa haluamallasi tavalla
- Älylamppua voidaan todella ohjata millä tahansa, joka pystyy lähettämään http GET -pyynnön. Tämä tarkoittaa, että lamppu hyväksyy komennot lähes rajattomalta laitteelta
-
3D -tulostus
Tämä älykäs lamppu ansaitsee siistin näköisen kotelon. Ja kuten niin monet projektit, joissa tarvitset viileän kotelon, 3D -tulostus tulee pelastamaan
Vaihe 3: Piiri
Tilasin piirilevyt osoitteesta jlcpcb.com. Koko julkistusaika: he myös sponsoroivat tätä hanketta.
Piirilevy koostuu kahdesta osasta. Siinä on LED -kortti ja ohjauskortti. Piirilevy voidaan irrottaa toisistaan, jotta nämä kaksi osaa voidaan myöhemmin yhdistää joustavalla langalla. Tämä on välttämätöntä 3D -tulostetun lampun pitämiseksi ohuena ja LED -levyn kallistamiseksi, jotta valo leviää tasaisesti reikätilan läpi.
Ohjaustaulussa on D1 -mikrokontrolleri sekä viisi MOSFET -valoa LED -valojen himmentämiseksi ja jännitesäädin, joka antaa mikro -ohjaimelle tasaisen 5 V: n jännitteen.
LED -kortissa on viisi LED -kanavaa kolmessa eri tyyppisessä LED -valossa. Koska käytämme 12 V: n virtalähdettä, LEDit on konfiguroitu kolmeksi LEDiksi sarjassa vastuksen kanssa ja toistetaan sitten 16 kertaa rinnakkain.
Säännöllinen valkoinen LED vetää yleensä 3,3 V. Kortin segmentissä kolme näistä LEDeistä on sarjassa, mikä tarkoittaa, että jännitehäviö kootaan piiriin. Kolme 3,3 V: n LED -valoa tarkoittaa, että yksi LED -segmentti kuluttaa 9,9 V.
Jos segmentti koostuisi vain kolmesta LEDistä, ne saisivat enemmän jännitettä kuin häviävät. Tämä ei ole hyvä LEDille ja voi vahingoittaa niitä nopeasti. Siksi jokaisessa segmentissä on myös sarjavastus, jossa on kaikki kolme LEDiä. Tämä vastus on tarkoitettu pudottamaan jäljellä oleva 2,1 V sarjaliitännässä.
Joten jos kunkin segmentin jännite on 12 V, se tarkoittaa, että jokainen segmentti on kytketty toisiinsa rinnakkain. Kun piirit on kytketty rinnakkain, kaikki saavat saman jännitteen ja virta yhdistetään. Sarjayhteyden virta on aina sama.
Tavallinen LED ottaa 20 mA virtaa. Tämä tarkoittaa, että segmentti, joka on kolme LEDiä ja sarjavastus, kuluttaa edelleen 20 mA. Kun yhdistämme useita segmenttejä rinnakkain, lisäämme virran. Jos leikkaat kuusi LEDiä nauhasta, sinulla on kaksi näistä segmenteistä rinnakkain. Tämä tarkoittaa, että koko piirisi kuluttaa edelleen 12 V, mutta ne kuluttavat 40 mA virtaa.
Vaihe 4: LEDien juottaminen
Kokeilemalla muutamia asioita olen huomannut, että yksinkertainen maalarinteippi on tehokkain ja joustavin PCB: n liikkumisen estämiseksi.
Osissa, joissa on useita tappeja, kuten 5050 LEDin 6-nastainen, aloitan asettamalla juotteen jollekin PCB-tyynylle. Sitten on vain kyse tämän juotteen pitämisestä sulassa juotosraudalla samalla, kun liu'utat komponentin paikalleen pinseteillä.
Nyt muut tyynyt voidaan helposti kiinnittää juotoksella. Tämän työn nopeuttamiseksi ehdotan kuitenkin nestemäisen juotosvirran ottamista. En todellakaan voi suositella tätä tavaraa tarpeeksi.
Levitä osa juoksevasta aineesta juotoslevyille ja sulata sitten juote juotosraudan kärjessä. Nyt on vain kyse sulan juotteen tuomisesta tyynyille ja kaikki virtaa paikoilleen. Mukava ja yksinkertainen.
Mitä tulee vastuksiin ja muihin kahden tyynyn osiin, juotosvirtaa ei todellakaan tarvita. Levitä juotetta yhteen tyynyistä ja tuo vastus paikoilleen. Sulata nyt vain juote tyynylle kaksi. Helppo nakki.
Katso viides kuva tässä vaiheessa. Kiinnitä huomiota LED -valojen asentoon. Lämpimän ja kylmän valkoisen LEDin lovi on suunnattu oikeaan yläkulmaan. RGB -LEDien lovi on vasemmassa alakulmassa. Tämä on suunnitteluvirhe omalta osaltani, koska en löytänyt tässä projektissa käytettyjen RGB -LEDien tietolomaketta. Voi, elä ja opi, ja kaikki tämä!
Vaihe 5: Juotoskortti
LED -kortin maratonin päätyttyä ohjauskortti on juotavaa. Laitoin alas viisi MOSFET-laitetta ja vastaavat porttilähdevastukset ennen siirtymistä jännitesäätimelle.
Jännitesäätimessä on valinnaisia tiloja kondensaattoreiden tasoittamiseen. Kun juotin ne tähän kuvaan, päädyin poistamaan ne, koska ne eivät olleet todella tarpeellisia.
Ohut ohjauskortin saaminen on temppu asettamalla tapit ylhäältä alaspäin. Kun nastat ovat paikoillaan, käyttämätön pituus voidaan leikata takapuolelta mustan muovin kanssa. Tämä tekee pohjasta täysin sileän.
Kun kaikki komponentit ovat paikoillaan, on aika yhdistää kaksi levyä yhteen. Katkaisin ja irrotin kuusi pientä 7 cm: n 2,5 tuuman johtoa ja liitin kaksi piirilevyä.
Vaihe 6: WiFi -asetukset
Koodissa on kuusi yksinkertaista riviä, jotka sinun on muutettava.
-
ssid, rivi 3
Reitittimesi nimi. Varmista, että saat kirjainkoko oikein, kun kirjoitat tätä
-
wifiPass, rivi 4
Reitittimen salasana. Kiinnitä jälleen huomiota koteloon
-
ip, rivi 8
Älylampun staattinen IP -osoite. Valitsin satunnaisen IP -osoitteen verkostossani ja yritin pingata sen komentoikkunassa. Jos osoitteesta ei saada vastausta, voit olettaa sen olevan saatavilla
-
yhdyskäytävä, rivi 9
Tämä on reitittimesi yhdyskäytävä. Avaa komentoikkuna ja kirjoita "ipconfig". Yhdyskäytävä ja aliverkko on ympyröity kuvassa punaisella
-
aliverkko, rivi 10
Kuten yhdyskäytävä, nämä tiedot on ympyröity kuvassa tätä vaihetta varten
-
aikavyöhyke, rivi 15
Aikavyöhyke, jossa olet. Muuta tätä, jos haluat käyttää sisäisiä ajastintoimintoja valojen sytyttämiseen ja sammuttamiseen tiettyinä aikoina. Muuttuja on yksinkertainen plus tai miinus GMT
Vaihe 7: Mikrokontrollerikoodi
Kun olet muuttanut kaikki asiaankuuluvat asetukset edellisessä vaiheessa, on vihdoin aika ladata koodi Wemos D1 Miniin!
Arduino -koodi vaatii muutaman kirjaston ja riippuvuuden. Noudata ensin tätä sparkfun -opasta, jos et ole koskaan ladannut koodia arduino IDE -laitteesta ESP8266 -laitteeseen.
Lataa nyt Time -kirjasto ja TimeAlarms -kirjasto. Pura nämä ja kopioi tietokoneesi arduino -kirjastokansioon. Aivan kuten muiden arduino -kirjastojen asentaminen.
Kiinnitä huomiota kuvan latausasetuksiin tässä vaiheessa. Valitse sama kokoonpano, paitsi com -portti. Tämä on mikä tahansa portti, johon mikrokontrollerisi on liitetty tietokoneellasi.
Kun koodi on ladattu, avaa sarjapääte viestille toivottavasti onnistuneesta yhteydestä! Voit nyt avata selaimesi ja käydä staattisessa ip -osoitteessa, jonka olet tallentanut mikrokontrolleriin. Onnittelut, olet juuri rakentanut oman palvelimesi ja isännöit verkkosivua sillä!
Vaihe 8: Avaa Message Protocol
Kun ohjaat älylamppua sovelluksella, kaikki viestit käsitellään puolestasi automaattisesti. Tässä on luettelo lampun hyväksymistä viesteistä, jos haluat rakentaa oman kaukosäätimen. Olen käyttänyt esimerkin ip -osoitetta havainnollistamaan komentojen käyttöä.
-
192.168.0.200/&&R=1023G=0512B=0034C=0500W=0500
- Asettaa punaiset valot enimmäisarvoon, vihreät puoleen arvoon ja siniset valot arvoon 34. Kylmä ja lämmin valkoinen ovat tuskin päällä
- Kun syötät arvoja, voit valita 0 ja 1023. Kirjoita aina valoarvot nelinumeroisina URL -osoitteeseen
-
192.168.0.200/&&B=0800
Asettaa siniset valot arvoon 800 ja sammuttaa samalla kaikki muut valot
-
192.168.0.200/LED=OFF
Sammuttaa kaikki valot kokonaan
-
192.168.0.200/LED=FADE
Alkaa hitaasti haalistua kaikkien mahdollisten RGB -värien välillä. Täydellinen tunnelmaan
-
192.168.0.200/NOTIFYR=1023-G=0512-B=0000
Vilkkuu annettua väriä kaksi kertaa ilmoittaakseen saapuvasta ilmoituksesta. Täydellinen, jos haluat esimerkiksi luoda tietokoneellesi ohjelman, joka välttää lampun punaisena aina, kun saat uuden sähköpostiviestin
-
192.168.0.200/DST=1
- Säätää kellon kesäajan mukaan. Lisää tunnin kelloon
- /DST = 0 Käytä tätä palataksesi DST: stä, poistaa tunnin kellosta, jos DST on aktiivinen
-
192.168.0.200/TIMER1H=06M=30R=1023G=0512B=0034C=0000W=0000
Tallentaa tilan ajastimelle 1. Tämä ajastin kytkee annetut RGB -arvot päälle kello 6.30 aamulla
-
192.168.0.200/TIMER1H=99
Poista ajastin käytöstä asettamalla ajastintunniksi 99. RGB -arvot tallennetaan edelleen, mutta ajastin ei sytytä valoja, kun tunti on 99
- Valaisimessa on neljä erillistä ajastinta. Vaihda "TIMER1" arvoon "TIMER2", "TIMER3" tai "TIMER4", jos haluat säätää toista sisäänrakennettua ajastinta.
Nämä ovat tällä hetkellä sisäänrakennettuja komentoja. Jätä kommentti, jos sinulla on hienoja ideoita uusille komennoille, jotka voidaan rakentaa joko arduino -koodiin tai etäsovellukseen!
Vaihe 9: Kaukosäädin
Lataa sovellus napsauttamalla tätä. Asennus on tehty erittäin helpoksi, syötä vain älylampun ip -osoite ja valitse, haluatko ohjata vain RGB -LED -valoja vai RGB + -lämpöä ja kylmää valkoista LEDiä.
Kuten edellisessä vaiheessa selitettiin, tiedät nyt, mitä viestiprotokollaa sovellus käyttää. Se lähettää http GET -pyynnön URL -osoitteiden kanssa. Tämä tarkoittaa, että voit myös luoda oman mikro -ohjainpiirin ja silti käyttää tätä sovellusta hallitaksesi itse kehittämiäsi toimintoja.
Koska olemme todella tutustuneet viestiprotokollaan, voit myös ohjata älylamppua millä tahansa, joka voi lähettää http GET -pyynnön. Tämä tarkoittaa mitä tahansa puhelimen tai tietokoneen selainta tai älykkäitä kodin laitteita tai avustajia, kuten Alexa tai Google Assistant.
Tasker on sovellus, jonka avulla voit periaatteessa luoda olosuhteita hallitaksesi kaikkea. Käytin sitä älykkään lampun vilkkumiseen ilmoituksen värillä, kun saan sen puhelimeeni. Asetin myös taskerin sytyttämään valot täysin valkoisiksi, kun puhelin muodostaa yhteyden kotini WiFi -verkkoon arkisin klo 16.00 jälkeen. Tämä tarkoittaa, että valot syttyvät automaattisesti, kun tulen koulusta kotiin. On todella siistiä tulla kotiin valot automaattisesti päälle!
Vaihe 10: 3D -tulostus
Lamppukotelo voidaan tulostaa lähes kokonaan ilman tukia. Ainoat osat, jotka todella tarvitsevat tukea, ovat tapit, jotka on tarkoitettu PCB: n kanssa yhdistämiseen. Siksi tein stl: n saataville sekä pienellä tukirakenteella että ilman näitä vain tappeja. Tämän mukautetun tuen käytön etuna on, että tulostus on paljon nopeampaa! Ja saamme tulostustukea vain niille osille, jotka sitä todella tarvitsevat.
Voit ladata.stl -tiedostot täältä
Vaihe 11: Yhdistä kaikki
Aloita 3D -tulostuksen jälkeen poistamalla tulostustuki. Virtajohdot menevät erillisiin kanaviin ja sidotaan yhteen. Tämä solmu luo vedonpoistoa, joka estää kaapeleiden repeytymisen piirilevystä. Juotos virtakaapelit piirilevyn takaosaan ja varmista, että napaisuus on oikea!
Ohjauspiirilevy kiinnitetään sitten teipillä, joka pitää sen kotelon sisällä. LED -piirilevy voidaan yksinkertaisesti asettaa paikalleen, jossa se on tasaisesti koteloa vasten.
Vaihe 12: Lampun ripustaminen
Tämän lampun ripustamiseksi seinälle on monia vaihtoehtoja. Koska voisin päivittää koodia jatkuvasti lampun parantamiseksi, halusin tavan poistaa lamppu aika ajoin. Voit käyttää kuumaa liimaa, mutta suosittelen jotain kaksipuolista teippiä. On parasta käyttää paksua ja vaahtoavaa kaksipuolista teippiä, koska se pitää lampun parhaiten kuvioitua seinää vasten.
Vaihe 13: Valmis
Kun lamppu on seinällä ja valmis vastaanottamaan komennot, se tarkoittaa, että olet valmis!
LED -paneeli on kulmassa siten, että valo hajautuu tasaisesti huoneeseen. Se on mukava lisä mihin tahansa työtilaan, ja kyky integroitua kodin automaatioon on suuri plus. Pidän todella kyvystä asettaa RGB -värejä sekä säätää valkotasapainoa kylmän ja lämpimän valon välillä. Se näyttää tyylikkäältä ja on suuri apu ympäristön tai työvalojen asettamiseen, jotta se sopisi kaikkiin valaistustarpeisiin, joita minulla on tällä hetkellä.
Onnittelut, olet nyt ottanut suuren harppauksen IoT: n ja kodin automaation maailmaan!