Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
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
- Android pametni telefon (testirane verzije Androida 7-9).
- Alati za lemljenje.
- Prototipiranje PCB -a (protoboard).
- ESP-12E ploča (ili druga ploča sa mikrokontrolerom ESP8266).
- USB serijski pretvarač za programiranje.
- Nekoliko različitih vrijednosti pasivnih komponenti (otpornici i kondenzatori).
(Opcionalno. Pogledajte odjeljak "Blok dijagram")
- 3.3V@500mA LDO IC.
- Pretvarač logičkog nivoa 3.3V-5V.
- 5V DC napajanje.
Korak 1: 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
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
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:
- Provjerite je li i dalje povezan s pristupnom tačkom, a zatim pokušajte ponovo uspostaviti vezu do uspjeha.
-
Sačekajte da klijent uputi HTTP zahtjev. Kada se zahtjev dogodi:
- Proverite ulazni napon.
- Proverite u kom su stanju LED diode.
- Uparite HTTP zahtjev sa poznatim LED stanjima (plavo uključeno, narandžasto uključeno, oba uključena, isključena).
- 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
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:
- 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.
- 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 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.