Sadržaj:

IoT mjesečeva svjetiljka: 5 koraka
IoT mjesečeva svjetiljka: 5 koraka

Video: IoT mjesečeva svjetiljka: 5 koraka

Video: IoT mjesečeva svjetiljka: 5 koraka
Video: Najjeftiniji grijanje za zimu - 5 rubalja. / dan (za kokoši) 2024, Studeni
Anonim
IoT mjesečeva svjetiljka
IoT mjesečeva svjetiljka

U ovom uputstvu pokazujem kako pretvoriti jednostavnu LED lampu na baterije u IoT uređaj.

Ovaj projekt uključuje:

  • lemljenje;
  • programiranje ESP8266 s Arduino IDE;
  • izrada android aplikacija s MIT App Inventor.

Predmet interesa je ova svjetiljka u obliku mjeseca koju sam kupio od gearbesta. Ali doista se ovaj vodič može prilagoditi bilo kojem uređaju s niskim istosmjernim naponom (uređaji s izmjeničnom strujom zahtijevaju dodatna kola).

Pribor

  1. Android pametni telefon (testirane verzije Androida 7-9).
  2. Alati za lemljenje.
  3. Prototipiranje PCB -a (protoboard).
  4. ESP-12E ploča (ili druga ploča s mikrokontrolerom ESP8266).
  5. USB serijski pretvarač za programiranje.
  6. Nekoliko različitih vrijednosti pasivnih komponenti (otpornici i kondenzatori).

(Izborno. Pogledajte odjeljak "Blok dijagram")

  1. 3.3V@500mA LDO IC.
  2. Pretvarač logičke razine 3.3V-5V.
  3. 5V DC napajanje.

Korak 1: Ideja

Ideja
Ideja

Mjesečevu svjetiljku napaja jedna Li-ION 18650 ćelija i ima 3 načina rada:

  • isključeno;
  • priručnik;
  • auto.

U ručnom načinu rada svjetlo se kontrolira pritiskom na gumb, svaki pritisak mijenja stanje LED svjetla (plavo uključeno, narančasto uključeno, oba uključena, isključena), intenzitet svjetla se mijenja dok se pritisnuto dugme drži pritisnuto. U automatskom načinu rada stanje LED svjetla mijenja se dodirom ili tresenjem same svjetiljke.

Odlučio sam dodati ESP8266 da djeluje kao web poslužitelj koji osluškuje zahtjeve i u skladu s tim simulira pritiske tipki. Nisam htio prekinuti izvornu funkcionalnost žarulje, samo sam htio dodati dodatne kontrolne značajke putem WiFi -ja, pa sam odabrao ESP za simuliranje pritiska na tipke umjesto za izravno upravljanje LED -ima. Također mi je to omogućilo minimalnu interakciju s izvornim krugovima.

Kada je prototip napravljen, on je stalno puštao ~ 80mA iz baterije u isključenom stanju (~ 400mA pri punoj svjetlini). Struja u stanju pripravnosti je velika jer ESP8266 radi kao poslužitelj i uvijek je spojen na WiFi i osluškuje zahtjeve. Baterija se ispraznila nakon jednog i pol dana samo u isključenom stanju, pa sam kasnije odlučio upotrijebiti USB priključak za punjenje svjetiljki za napajanje sve elektronike iz vanjskog napajanja od 5 V i sve odbačene baterije (ali to je izborno).

Korak 2: Blok dijagram

Blok dijagram
Blok dijagram

Na blok dijagramu možete vidjeti koja će se kola dodati i kako će se postojeća sklopa izmijeniti. U mom slučaju potpuno sam izvadio bateriju i kratko spojio IC punjače baterija s izlazom (opet, ovo nije obavezno). Prozirni blokovi na dijagramu označavaju komponente koje se zaobilaze (iako gumb i dalje radi kako je izvorno predviđeno).

Prema dokumentaciji ESP8266 tolerira samo 3,3 V, međutim ima dosta primjera kada ESP8266 radi potpuno dobro s 5 V, pa se pretvarač logičke razine i 3,3 V LDO može izostaviti, no ja sam ostao s najboljom praksom i dodao te komponente.

Koristio sam 3 ESP8266 I/O igle i ADC pin. Jedan digitalni izlazni pin služi za simuliranje pritiska na tipke, dva digitalna ulaza služe za otkrivanje koje su LED boje u boji (iz ovoga možemo zaključiti u kojem je stanju MCU, a koje je sljedeće nakon pritiska na gumb). ADC pin mjeri ulazni napon (kroz razdjelnik napona), tako možemo pratiti preostalu razinu napunjenosti baterije.

Kao vanjsko napajanje koristim stari punjač telefona 5V@1A (ne koristite brze punjače).

Korak 3: Programiranje

Programiranje
Programiranje
Programiranje
Programiranje

Ukratko, program radi ovako (za više informacija pogledajte sam kod):

ESP8266 se povezuje s vašom WiFi pristupnom točkom koje vjerodajnice morate unijeti na početku koda prije programiranja, dobiva IP adresu s DHCP poslužitelja usmjerivača, kako biste saznali IP koji će vam kasnije trebati, možete provjeriti DHCP postavke web sučelja usmjerivača ili postaviti debugging flag u kodu na 1 i vidjet ćete što je IP ESP dobio u serijskom monitoru (trebali biste rezervirati taj IP u postavkama usmjerivača kako bi ESP uvijek dobio isti IP pri pokretanju).

Kada se inicijalizirani MCU uvijek zauvijek izvršava istu rutinu:

  1. Provjerite je li još uvijek spojen na pristupnu točku, ako ne pokušajte se ponovno povezati do uspjeha.
  2. Pričekajte da klijent uputi HTTP zahtjev. Kada se zahtjev dogodi:

    1. Provjerite ulazni napon.
    2. Provjerite u kakvom su stanju LED diode.
    3. Uskladite HTTP zahtjev s poznatim LED stanjima (plavo uključeno, narančasto uključeno, oba uključena, isključena).
    4. Simulirajte toliko pritiska tipki koliko je potrebno za postizanje traženog stanja.

Ukratko ću opisati programske upute, ako prvi put programirate ESP8266 MCU, potražite detaljnije upute.

Trebat će vam Arduino IDE i pretvarač serijskog USB sučelja (na primjer FT232RL). Za pripremu IDE -a slijedite ove upute.

Slijedite shemu spoja za povezivanje ESP-12E modula za programiranje. Neki savjeti:

  • koristite vanjsko napajanje 3.3V@500mA (u većini slučajeva napajanje serijskim USB-om nije dovoljno);
  • provjerite je li vaš USB-serijski pretvarač kompatibilan s logičkom razinom od 3,3 V;
  • provjerite jesu li uspješno instalirani upravljački programi USB-serijskog pretvarača (iz upravitelja Windows uređaja). Također možete provjeriti radi li ispravno iz IDE-a, samo kratki RX i TX pinovi, zatim iz IDE-a odaberite COM port, otvorite serijski monitor i napišite nešto, ako sve radi trebali biste vidjeti tekst koji šaljete koji se pojavljuje na konzoli;
  • iz nekog razloga uspio sam programirati ESP tek kad sam prvi put spojio USB-serijski pretvarač na računalo, a zatim uključio ESP iz vanjskog izvora od 3,3 V;
  • nakon uspješnog programiranja ne zaboravite povući GPIO0 visoko pri sljedećem pokretanju.

Korak 4: Shema i lemljenje

Shema i lemljenje
Shema i lemljenje
Shema i lemljenje
Shema i lemljenje
Shema i lemljenje
Shema i lemljenje

Slijedite shemu za lemljenje svih komponenata na protoboard. Kao što je već spomenuto, neke komponente su izborne. Koristio sam KA78M33 3.3V LDO IC i ovu pretvaračku ploču logičke razine iz sparkfuna. Alternativno, možete sami napraviti pretvarač kako je prikazano na shemi (možete koristiti bilo koji N-kanalni MOSFET umjesto BSS138). U slučaju da se držite Li-ION baterije, +5V mreža za napajanje bit će pozitivni terminal baterije. ESP8266 referentni napon ADC -a je 1V, moje odabrane vrijednosti razdjelnika otpornika omogućuju mjerenje ulaznog napona do 5,7V.

Trebalo bi biti 5 priključaka na originalnu PCB svjetiljke: +5V (ili +baterija), GND, tipkalo, PWM signali iz MCU žarulja za upravljanje plavom i narančastom LED. Ako napajate svjetiljku iz izvora 5V, kao što sam ja učinio, poželjet ćete spojiti IC VCC pin punjača baterija s OUTPUT pinom, na taj način će se sva elektronika napajati izravno s +5V, a ne iz punjača baterija OUTPUT.

Slijedite drugu sliku za sve točke lemljenja koje ćete morati izraditi na svjetlosnoj ploči.

BILJEŠKE:

  1. Ako ste odlučili spojiti +5V s IC izlazom punjača baterija, prije toga potpuno uklonite bateriju, ne želite spojiti +5V izravno na bateriju.
  2. Obratite pažnju na koji pin za pritiskanje tipke ste lemili ESP izlaz, jer su 2 pina tipke spojena na masu i ne želite kratki spoj kada ESP izlaz pređe na VELIKU, bolje provjerite multimetrom.

Korak 5: Android aplikacija

Android aplikacija
Android aplikacija
Android aplikacija
Android aplikacija
Android aplikacija
Android aplikacija

Android aplikacija napravljena je s izumiteljem aplikacije MIT, da biste sami preuzeli aplikaciju i/ili klonirali projekt, idite na ovu vezu (za pristup joj trebate google račun).

Prilikom prvog pokretanja morat ćete otvoriti postavke i unijeti svoju ESP8266 IP adresu. Ovaj će IP biti spremljen pa ga nema potrebe ponovno unositi nakon ponovnog pokretanja programa.

Aplikacija je testirana na nekoliko Android 9 i Android 7 uređaja.

Preporučeni: