Kazalo:
- Zaloge
- 1. korak: Ideja
- 2. korak: Blokovni diagram
- 3. korak: Programiranje
- 4. korak: Shema in spajkanje
- 5. korak: aplikacija za Android
Video: Mesečna svetilka IoT: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
V tem navodilu sem pokazal, kako preprosto LED -svetilko, ki deluje na baterije, pretvoriti v napravo IoT.
Ta projekt vključuje:
- spajkanje;
- programiranje ESP8266 z Arduino IDE;
- izdelava aplikacije za Android z aplikacijo MIT App Inventor.
Zanimiv je ta svetilka v obliki lune, ki sem jo kupil pri gearbestu. Toda v resnici je to vadnico mogoče prilagoditi kateri koli nizkonapetostni napravi (naprave, ki delujejo na izmenični tok, zahtevajo dodatno vezje).
Zaloge
- Pametni telefon Android (preizkušena različica Android 7-9).
- Spajkalna orodja.
- Prototipiranje tiskanega vezja (protoboard).
- Plošča ESP-12E (ali druga razvojna plošča z mikrokrmilnikom ESP8266).
- USB-serijski pretvornik za programiranje.
- Več različnih vrednosti pasivnih komponent (uporov in kondenzatorjev).
(Izbirno. Glejte poglavje "Blokovni diagram")
- 3.3V@500mA LDO IC.
- Pretvorna plošča logičnega nivoja 3.3V-5V.
- 5V DC napajalnik.
1. korak: Ideja
Lunina svetilka se napaja iz ene celice Li-ION 18650 in ima tri načine delovanja:
- izključeno;
- priročnik;
- samodejno.
V ročnem načinu se lučka krmili s pritiskom na gumb, vsak pritisk spremeni stanje LED luči (modra vklopljena, oranžna vklopljena, oba vklopljena, izklopljena), intenzivnost svetlobe se spreminja, medtem ko držite pritisnjeno tipko. V samodejnem načinu se stanje LED -luči spreminja z dotikom ali tresenjem svetilke.
Odločil sem se, da dodam ESP8266, ki bo deloval kot spletni strežnik, ki posluša zahteve in ustrezno simulira pritiske na gumbe. Nisem hotel prekiniti prvotne funkcionalnosti svetilke, želel sem le dodati dodatne nadzorne funkcije prek WiFi -ja, zato sem se odločil za ESP za simulacijo pritiskov na gumbe namesto za neposredno krmiljenje LED. Tudi to mi je omogočilo minimalno interakcijo z izvirnim vezjem.
Ko je bil prototip izdelan, je neprestano vozil ~ 80 mA iz akumulatorja v izklopljenem stanju (~ 400 mA pri polni svetlosti). Tok pripravljenosti je visok, ker ESP8266 deluje kot strežnik in je vedno povezan z WiFi in posluša zahteve. Baterija se je po enem dnevu in pol izpraznila le v izklopljenem stanju, zato sem se pozneje odločil za uporabo polnilnih vrat USB za svetilke za napajanje vse elektronike iz zunanjega napajalnika 5V in vse skupaj odklopljene baterije (vendar to ni obvezno).
2. korak: Blokovni diagram
V blokovnem diagramu lahko vidite, katera vezja bodo dodana in kako se bodo obstoječa vezja spremenila. V mojem primeru sem baterijo popolnoma odstranil in polnilnike baterij skrajšal z vhodom IC z izhodom (spet to ni obvezno). Prozorni bloki v diagramu označujejo komponente, ki jih je treba obiti (čeprav gumb še vedno deluje, kot je bilo prvotno predvideno).
V skladu z dokumentacijo ESP8266 prenaša le 3.3V, vendar obstaja veliko primerov, ko ESP8266 deluje popolnoma v redu s 5V, zato lahko pretvornik logične ravni in 3.3V LDO izpustimo, vendar sem ostal pri najboljših praksah in dodal te komponente.
Uporabil sem 3 vhodno -izhodne zatiče ESP8266 in pin ADC. En digitalni izhodni pin je namenjen simuliranju pritiskov na gumbe, dva digitalna vhoda sta namenjena zaznavanju, katere barvne LED svetijo (iz tega lahko ugotovimo, v katerem stanju je MCU in katero stanje je naslednje po pritisku gumba). ADC pin meri vhodno napetost (preko delilnika napetosti), tako lahko spremljamo preostalo raven napolnjenosti baterije.
Kot zunanji napajalnik uporabljam stari polnilec za telefon 5V@1A (ne uporabljajte hitrih polnilcev).
3. korak: Programiranje
Na kratko program deluje tako (za več informacij glej samo kodo):
ESP8266 se poveže z vašo dostopno točko WiFi, katere poverilnice morate vnesti na začetku programiranja kode, dobi naslov IP od strežnika DHCP usmerjevalnikov, če želite izvedeti IP, ki ga boste potrebovali pozneje, lahko preverite nastavitve DHCP spletnega vmesnika ali nastavite debugging flag v kodi na 1 in videli boste, kaj je IP ESP dobil v serijskem monitorju (ta IP morate rezervirati v nastavitvah usmerjevalnikov, da bo ESP ob zagonu vedno dobil isti IP).
Ko inicializiran MCU vedno izvaja isto rutino za vedno:
- Preverite, ali je še vedno povezan z dostopno točko, če pa ne, poskusite znova vzpostaviti povezavo do uspeha.
-
Počakajte, da odjemalec zahteva zahtevo HTTP. Ko pride do zahteve:
- Preverite vhodno napetost.
- Preverite stanje LED.
- Ujemajte zahtevo HTTP z znanimi stanji LED (modra vklopljena, oranžna vklopljena, oba vklopljena, izklopljena).
- Simulirajte toliko pritiskov tipk, da dosežete zahtevano stanje.
Na kratko bom opisal navodila za programiranje, če prvič programirate ESP8266 MCU, poiščite podrobnejša navodila.
Potrebovali boste Arduino IDE in pretvornik serijskega vmesnika USB (na primer FT232RL). Za pripravo IDE sledite tem navodilom.
Sledite diagramu vezja za priključitev modula ESP-12E za programiranje. Nekaj nasvetov:
- uporabite zunanji napajalnik 3.3V@500mA (v večini primerov serijsko napajanje prek USB-ja ni dovolj);
- preverite, ali je vaš serijski pretvornik USB združljiv z 3,3 V logičnim nivojem;
- preverite, ali so gonilniki USB-serijskega pretvornika uspešno nameščeni (iz upravitelja naprav Windows), prav tako lahko preverite, ali deluje pravilno iz IDE, samo kratki zatiči RX in TX, nato pa iz IDE izberite vrata COM, odprite serijski monitor in napišite nekaj, če vse deluje v konzoli bi morali videti besedilo, ki ga pošiljate;
- iz nekega razloga sem lahko programiral ESP šele, ko sem najprej priključil USB-serijski pretvornik v računalnik in nato vklopil ESP iz zunanjega vira 3.3V;
- po uspešnem programiranju ne pozabite potegniti GPIO0 visoko pri naslednjem zagonu.
4. korak: Shema in spajkanje
Sledite shemi za spajkanje vseh komponent na protoboard. Kot smo že omenili, so nekatere komponente neobvezne. Uporabil sem KA78M33 3.3V LDO IC in to pretvorniško ploščo logičnega nivoja iz sparkfun, lahko pa tudi sami naredite pretvornik, kot je prikazano na shemi (namesto BSS138 lahko uporabite kateri koli N-kanalni MOSFET). Če uporabljate Li-ION baterijo, bo +5V napajalno omrežje pozitiven akumulatorski terminal. Referenčna napetost ADC ESP8266 je 1V, moje izbrane vrednosti delilnika upora omogočajo merjenje vhodne napetosti do 5,7V.
Na izvirno PCB svetilko mora biti 5 povezav: +5V (ali +baterija), GND, potisni gumb, signali PWM iz MCU žarnic za krmiljenje modrih in oranžnih LED. Če napajate svetilko iz vira 5V, tako kot sem jaz, boste želeli kratke polnilnike IC VCC priključiti z vhodom OUTPUT, tako da se bo vsa elektronika napajala neposredno iz +5V in ne iz polnilnika baterij OUTPUT.
Sledite drugi sliki za vse točke spajkanja, ki jih boste morali izdelati na tiskanem vezju svetilk.
OPOMBE:
- Če ste se odločili za kratki spoj 5 V z izhodom IC polnilnika za baterijo, pred tem popolnoma odstranite baterijo, ne želite priključiti +5 V neposredno na baterijo.
- Bodite pozorni na to, na kateri zatič gumba ste spajkali izhod ESP, ker sta 2 zatiča tipke priključena na ozemljitev in ne želite, da pride do kratkega stika, ko je izhod ESP VISOK, bolje dvakrat preverite z multimetrom.
5. korak: aplikacija za Android
Aplikacija za Android je bila ustvarjena z izumiteljem aplikacij MIT. Če želite sami prenesti aplikacijo in/ali projekt kloniranja, pojdite na to povezavo (za dostop do nje potrebujete google račun).
Pri prvem zagonu boste morali odpreti nastavitve in vnesti svoj IP naslov ESP8266. Ta IP bo shranjen, zato ga po ponovnem zagonu ni treba znova vnašati.
Aplikacija je bila preizkušena z več napravami android 9 in android 7.
Priporočena:
Svetilka za pivo (svetilka): 7 korakov
Svetilka za pločevinke za pivo (bakla): Ko sem uporabil vezje sončne vrtne svetilke za povečanje voltov za mini generator in za spreminjanje naglavne svetilke, sem se vprašal, ali bi lahko pivo uporabili kot reflektor za ustvarjanje svetilke z nizko močjo … Svetilka z nizko porabo energije bi lahko bila koristna
Svetilka za šablone - ena svetilka Več odtenkov: 5 korakov
Stencil Lamp - One Lamp Many Shades: Ta navodila vam bodo pokazala, kako narediti preprosto svetilko s preklopnimi senčili (njen senčnik)
Mumijasta svetilka - pametna svetilka z nadzorom WiFi: 5 korakov (s slikami)
Mumijasta svetilka - pametna svetilka z WiFi -krmiljenjem: Pred približno 230 tisoč leti se je človek naučil obvladovati ogenj, kar vodi do velike spremembe v njegovem življenjskem slogu, saj je ponoči začel delati tudi z uporabo svetlobe ognja. Lahko rečemo, da je to začetek notranje razsvetljave. Zdaj sem
Spiralna svetilka (znana tudi kot namizna svetilka Loxodrome): 12 korakov (s slikami)
Spiralna svetilka (znana tudi kot namizna svetilka Loxodrome): Spiralna svetilka (znana tudi kot namizna svetilka Loxodrome) je projekt, ki sem ga začel leta 2015. Navdihnil ga je Loxodrome Sconce Paul Nylander. Moja prvotna zamisel je bila o motorizirani namizni svetilki, ki bi na steno projicirala tekoče vrtinčke svetlobe. Oblikoval sem in
Nočna nočna svetilka / svetilka Mini LED: 5 korakov
Nočna nočna lučka / svetilka Mini LED: Najprej moram reči, da je to navdihnila mini samostojna LED svetilka podjetja Sunbanks. Namesto biro, da bi vodil stran od mize, sem uporabil nekaj jasnega perspektiva za projiciranje svetlobe iz baze. Ta mali projekt je prototip