Kazalo:

Mesečna svetilka IoT: 5 korakov
Mesečna svetilka IoT: 5 korakov

Video: Mesečna svetilka IoT: 5 korakov

Video: Mesečna svetilka IoT: 5 korakov
Video: ТЕПЕРЬ НЕ ПРОПАДУ 10-ть самоделок ВЫРУЧАТ ГДЕ УГОДНО! 2024, November
Anonim
IoT mesečeva svetilka
IoT mesečeva svetilka

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

  1. Pametni telefon Android (preizkušena različica Android 7-9).
  2. Spajkalna orodja.
  3. Prototipiranje tiskanega vezja (protoboard).
  4. Plošča ESP-12E (ali druga razvojna plošča z mikrokrmilnikom ESP8266).
  5. USB-serijski pretvornik za programiranje.
  6. Več različnih vrednosti pasivnih komponent (uporov in kondenzatorjev).

(Izbirno. Glejte poglavje "Blokovni diagram")

  1. 3.3V@500mA LDO IC.
  2. Pretvorna plošča logičnega nivoja 3.3V-5V.
  3. 5V DC napajalnik.

1. korak: Ideja

Ideja
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

Blok diagram
Blok 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

Programiranje
Programiranje
Programiranje
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:

  1. Preverite, ali je še vedno povezan z dostopno točko, če pa ne, poskusite znova vzpostaviti povezavo do uspeha.
  2. Počakajte, da odjemalec zahteva zahtevo HTTP. Ko pride do zahteve:

    1. Preverite vhodno napetost.
    2. Preverite stanje LED.
    3. Ujemajte zahtevo HTTP z znanimi stanji LED (modra vklopljena, oranžna vklopljena, oba vklopljena, izklopljena).
    4. 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

Shema in spajkanje
Shema in spajkanje
Shema in spajkanje
Shema in spajkanje
Shema in spajkanje
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:

  1. Č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.
  2. 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
Aplikacija za Android
Aplikacija za Android
Aplikacija za Android
Aplikacija za Android
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: