Sadržaj:

IoT mjesečeva lampa: 5 koraka
IoT mjesečeva lampa: 5 koraka

Video: IoT mjesečeva lampa: 5 koraka

Video: IoT mjesečeva lampa: 5 koraka
Video: Эта лампа XIAOMI УБИВАЕТ вирусы и бактерии 2024, Novembar
Anonim
IoT mesečeva lampa
IoT mesečeva lampa

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

Ovaj projekat uključuje:

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

Predmet interesovanja je ova svjetiljka u obliku mjeseca koju sam kupio od gearbest -a. Ali zaista se ovaj vodič može prilagoditi bilo kojem uređaju niskog istosmjernog napona (uređaji na izmjeničnu struju zahtijevaju dodatna kola).

Supplies

  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 sa mikrokontrolerom ESP8266).
  5. USB serijski pretvarač za programiranje.
  6. Nekoliko različitih vrijednosti pasivnih komponenti (otpornici i kondenzatori).

(Opcionalno. Pogledajte odjeljak "Blok dijagram")

  1. 3.3V@500mA LDO IC.
  2. Pretvarač logičkog nivoa 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;
  • manual;
  • auto.

U ručnom režimu rada lampica se kontroliše pritiskom na dugme, svaki pritisak menja stanje LED svetla (plavo uključeno, narandžasto uključeno, oba uključena, isključena), intenzitet svetlosti se menja dok držite pritisnuto dugme. U automatskom načinu rada stanje LED svjetla mijenja se dodirom ili tresenjem same lampe.

Odlučio sam dodati ESP8266 da djeluje kao web server koji osluškuje zahtjeve i u skladu s tim simulira pritiskanje tipki. Nisam htio prekinuti originalnu funkcionalnost lampe, samo sam htio dodati dodatne mogućnosti upravljanja putem WiFi -a, pa sam odabrao ESP za simulaciju pritiskanja tipki umjesto za direktno upravljanje LED diodama. To mi je također omogućilo minimalnu interakciju s originalnim kolima.

Kada je prototip urađen, 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 koristiti USB priključak za punjenje svjetiljki za napajanje sve elektronike iz vanjskog napajanja od 5 V i sve zajedno odbačene baterije (ali ovo je opcionalno).

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 kola promijeniti. U mom slučaju potpuno sam izvadio bateriju i kratko spojio IC punjače baterija sa izlazom (opet, ovo nije obavezno). Prozirni blokovi na dijagramu označavaju komponente koje se zaobilaze (iako tipka 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čkog nivoa 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 pina i ADC pin. Jedan pin za digitalni izlaz služi za simuliranje pritiska na tipke, dva digitalna ulaza služe za otkrivanje boje LED dioda (iz ovoga možemo zaključiti u kojem je stanju MCU, a koje stanje slijedi nakon pritiska na tipku). ADC pin mjeri ulazni napon (kroz razdjelnik napona), tako možemo pratiti preostali nivo 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 servera vaših usmjerivača, da 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 šta je IP ESP dobio u serijskom monitoru (trebali biste ga rezervirati u postavkama usmjerivača kako bi ESP uvijek dobio isti IP pri pokretanju).

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

  1. Provjerite je li i dalje povezan s pristupnom tačkom, a zatim pokušajte ponovo uspostaviti vezu do uspjeha.
  2. Sačekajte da klijent uputi HTTP zahtjev. Kada se zahtjev dogodi:

    1. Proverite ulazni napon.
    2. Proverite u kom su stanju LED diode.
    3. Uparite HTTP zahtjev sa poznatim LED stanjima (plavo uključeno, narandž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. Nekoliko savjeta:

  • koristite vanjsko napajanje 3.3V@500mA (u većini slučajeva napajanje serijskim USB-om nije dovoljno);
  • proverite da li je vaš USB serijski pretvarač kompatibilan sa logičkim nivoom 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 u 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 3.3V;
  • 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 komponenti na protoboard. Kao što je već spomenuto, neke komponente su izborne. Koristio sam KA78M33 3.3V LDO IC i ovu logičku konvertorsku ploču iz sparkfun-a, 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 veza na originalnu PCB svjetiljke: +5V (ili +baterija), GND, tipkalo, PWM signali iz MCU lampe za kontrolu plave i narančaste LED diode. 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 iz +5V, a ne iz punjača baterija OUTPUT.

Pratite drugu sliku za sve tačke lemljenja koje ćete morati da napravite na PCB lampama.

NAPOMENE:

  1. Ako ste odlučili spojiti +5V sa IC izlazom punjača baterije, potpuno uklonite bateriju prije nego što to učinite, ne želite spojiti +5V izravno na bateriju.
  2. Obratite pažnju na koji iglični gumb za lemljenje spajate ESP izlaz, jer su 2 pina pritisnog dugmeta 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 aplikacija MIT -a, da biste 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 IP će biti spremljen tako da nema potrebe za ponovnim unosom nakon ponovnog pokretanja programa.

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

Preporučuje se: