Cuprins:
- Provizii
- Pasul 1: Ideea
- Pasul 2: Diagrama bloc
- Pasul 3: Programare
- Pasul 4: Schematică și lipire
- Pasul 5: aplicația Android
Video: Lampă IoT Moon: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
În acest instructiv vă arăt cum să convertiți o lampă LED simplă alimentată cu baterie într-un dispozitiv IoT.
Acest proiect include:
- lipire;
- programarea ESP8266 cu Arduino IDE;
- realizarea aplicației Android cu MIT App Inventor.
Obiectul de interes este această lampă în formă de lună pe care am cumpărat-o de la Gearbest. Dar, cu adevărat, acest tutorial poate fi adaptat la orice dispozitiv de joasă tensiune DC (dispozitivele alimentate cu curent alternativ necesită circuite suplimentare).
Provizii
- Smartphone Android (versiunile Android 7-9 testate).
- Unelte de lipit.
- PCB de prototipare (protoboard).
- Placa ESP-12E (sau alt devboard cu microcontroler ESP8266).
- Convertor serial USB pentru programare.
- Mai multe valori diferite ale componentelor pasive (rezistențe și condensatoare).
(Opțional. A se vedea secțiunea „Diagrama bloc”)
- 3.3V@500mA IC LDO.
- Placă convertoare de nivel logic de 3,3V-5V.
- Sursa de alimentare 5V DC.
Pasul 1: Ideea
Lampa Moon este alimentată de o celulă Li-ION 18650 și are 3 moduri de funcționare:
- oprit;
- manual;
- auto.
În modul manual, lampa este controlată cu buton, fiecare apăsare modifică starea luminii LED (albastru aprins, portocaliu aprins, ambele aprinse, oprite), intensitatea luminii se schimbă în timp ce țineți apăsat butonul. În modul automat, starea luminii LED se modifică prin atingerea sau scuturarea lămpii în sine.
Am decis să adaug ESP8266 pentru a acționa ca un server web care ascultă cererile și, prin urmare, simulează apăsarea butoanelor. Nu am vrut să rup funcționalitatea originală a lămpii, am vrut doar să adaug funcții suplimentare de control prin WiFi, așa că am ales ESP pentru a simula apăsarea butoanelor în loc să controlez direct LED-urile. De asemenea, acest lucru mi-a permis să interacționez minim cu circuitele originale.
Când prototipul a fost realizat, acesta a condus constant la ~ 80mA de la baterie în stare oprită (~ 400mA la luminozitate maximă). Curentul de așteptare este mare deoarece ESP8266 funcționează ca un server și este întotdeauna conectat la WiFi și ascultă cererile. Bateria s-a epuizat după o zi și jumătate doar în starea oprită, așa că mai târziu am decis să folosesc lămpile portului de încărcare USB pentru alimentarea tuturor electronicelor de la sursa de alimentare externă de 5V și am abandonat bateria împreună (dar acest lucru este opțional).
Pasul 2: Diagrama bloc
În diagrama bloc puteți vedea ce circuite vor fi adăugate și cum vor fi modificate circuitele existente. În cazul meu am îndepărtat complet bateria și am scurtcircuitat încărcătoarele de baterii intrare IC cu ieșire (din nou, aceasta este opțională). Blocurile transparente din diagramă indică componentele care sunt ocolite (deși butonul funcționează în continuare conform intenției inițiale).
Conform documentației, ESP8266 tolerează doar 3,3V, cu toate acestea există o mulțime de exemple când ESP8266 funcționează complet bine cu 5V, astfel încât convertorul de nivel logic și 3,3V LDO pot fi lăsate în afara, totuși am rămas cu cele mai bune practici și am adăugat acele componente.
Am folosit 3 pini I / O ESP8266 și pini ADC. Un pin digital de ieșire este pentru simularea apăsării butoanelor, două intrări digitale sunt pentru a detecta ce LED-uri de culoare sunt aprinse (de aici putem afla în ce stare este MCU și care este starea următoare după apăsarea butonului). Pinul ADC măsoară tensiunea de intrare (printr-un divizor de tensiune), astfel putem monitoriza nivelul de încărcare rămas al bateriei.
Ca sursă de alimentare externă, folosesc încărcător de telefon vechi 5V @ 1A (nu folosiți încărcătoare rapide).
Pasul 3: Programare
Pe scurt, programul funcționează astfel (pentru mai multe informații, consultați codul în sine):
ESP8266 se conectează la punctul dvs. de acces WiFi ce acreditări trebuie să introduceți la începutul programării anterioare a codului, primește adresa IP de la serverele DHCP ale routerelor dvs., pentru a afla IP de care veți avea nevoie mai târziu, puteți verifica setările DHCP ale interfeței web a routerelor debugging flag în cod la 1 și veți vedea ce IP ESP a primit în monitorul serial (ar trebui să rezervați acel IP în setările routerelor, pentru ca ESP să aibă întotdeauna același IP la pornire).
Când MCU inițializat execută întotdeauna aceeași rutină pentru totdeauna:
- Verificați dacă este încă conectat la AP, dacă nu, încercați să vă reconectați până la succes.
-
Așteptați ca clientul să solicite HTTP. Când se întâmplă solicitarea:
- Verificați tensiunea de intrare.
- Verificați în ce stare sunt LED-urile.
- Potriviți solicitarea HTTP cu stările LED cunoscute (albastru aprins, portocaliu aprins, ambele aprinse, oprite).
- Simulați atât de multe apăsări de butoane cât este necesar pentru a obține starea solicitată.
Voi descrie pe scurt instrucțiunile de programare, dacă este prima dată când programați ESP8266 MCU, căutați instrucțiuni mai detaliate.
Veți avea nevoie de Arduino IDE și convertor de interfață USB-serial (de exemplu FT232RL). Pentru a pregăti IDE, urmați aceste instrucțiuni.
Urmați schema circuitului pentru a conecta modulul ESP-12E pentru programare. Niste sfaturi:
- utilizați o sursă de alimentare externă de 3.3V@500mA (în majoritatea cazurilor sursa de alimentare USB-serial nu este suficientă);
- verificați dacă convertorul dvs. serial USB este compatibil la nivel logic de 3,3 V;
- verificați dacă driverele convertorului serial USB au fost instalate cu succes (de la managerul de dispozitive Windows), de asemenea, puteți verifica dacă funcționează corect din IDE, doar pinii RX și TX scurți, decât din IDE selectați portul COM, deschideți monitorul serial și scrieți ceva, dacă toate funcționează ar trebui să vedeți textul pe care îl trimiteți aparând în consolă;
- din anumite motive, am putut programa ESP numai când am conectat mai întâi convertorul USB-serial la computer și apoi am alimentat ESP de la o sursă externă de 3,3V;
- după programarea cu succes, nu uitați să trageți GPIO0 sus la următoarea pornire.
Pasul 4: Schematică și lipire
Urmați schema pentru a lipi toate componentele pe protoboard. După cum sa menționat anterior, unele componente sunt opționale. Am folosit KA78M33 3.3V LDO IC și această placă de convertor de nivel logic de la sparkfun, alternativ, puteți face convertorul dvs. așa cum se arată în schemă (puteți utiliza orice mosfet cu canal N în loc de BSS138). În cazul în care rămâneți cu utilizarea bateriei Li-ION, rețeaua de alimentare + 5V va fi un terminal cu baterie pozitivă. Tensiunea de referință ESP8266 ADC este de 1V, valorile alese ale mele de împărțire a rezistorului permit măsurarea tensiunii de intrare de până la 5,7V.
Ar trebui să existe 5 conexiuni la placa originală a lămpii: + 5V (sau + baterie), GND, buton, semnale PWM de la lămpi MCU pentru controlul LED-urilor albastre și portocalii. Dacă alimentați lampa de la o sursă de 5V, așa cum am făcut-o, veți dori să scurtați încărcătoarele IC VCC pin cu pin OUTPUT, astfel toate electronele vor fi alimentate direct de la + 5V și nu de la încărcătorul de baterie OUTPUT.
Urmați a doua imagine pentru toate punctele de lipit pe care va trebui să le faceți pe lămpile PCB.
NOTE:
- Dacă ați decis să scurtați + 5V cu ieșirea IC a încărcătorului de baterie, scoateți complet bateria înainte de a face acest lucru, nu doriți să conectați + 5V direct la o baterie.
- Acordați atenție pinului butonului prin care lipiți ieșirea ESP, deoarece 2 pini ai unui buton sunt conectați la masă și nu doriți să faceți scurtcircuit atunci când ieșirea ESP este HIGH, verificați mai bine cu multimetrul.
Pasul 5: aplicația Android
Aplicația Android a fost realizată cu inventatorul aplicației MIT, pentru a descărca o aplicație și / sau proiectul de clonare pentru dvs., accesați acest link (veți avea nevoie de un cont Google pentru a-l accesa).
La prima lansare va trebui să deschideți setările și să introduceți adresa IP ESP8266. Acest IP va fi salvat, deci nu este nevoie să îl introduceți din nou după repornirea programului.
Aplicație testată cu mai multe dispozitive Android 9 și Android 7.
Recomandat:
E-Ink: Moon / ISS / People in Space : 6 pași
E-Ink: Moon / ISS / People in Space …: Am avut un Raspberry și un e-Paper HAT și am vrut să-l folosesc pentru a arăta informații cum ar fi ISS sau câți oameni sunt acum în spațiu .. .Am declarat să mă uit dacă există API-uri pe Internet pentru a obține acele date și le-am găsit.OK, gotcha !!!! Așteptați
Sistem de iluminare inteligent pe pasarelă - Echipa Sailor Moon: 12 pași
Sistemul inteligent de iluminare Walkway - Echipa Sailor Moon: Bună! Acesta este Grace Rhee, Srijesh Konakanchi și Juan Landi și împreună suntem Team Sailor Moon! Astăzi vă vom aduce un proiect DIY în două părți pe care îl puteți implementa chiar în propria casă. Sistemul nostru final de iluminat inteligent pe pasarelă include un ul
Lampă Stencil - O lampă Multe nuanțe: 5 pași
Stencil Lamp - One Lamp Many Shades: Acest instructiv vă va arăta cum să realizați o lampă simplă cu nuanțe comutabile (Este un abajur)
Ceas Tide Moon Tide: 5 pași (cu imagini)
Tiny Moon Tide Clock: Acesta este un proiect realizat cu Alaska SeaLife Center. Erau interesați de un proiect legat de mare care să le implice studenții în construcția electronică și monitorizarea mediului oceanic. Designul este relativ ieftin de construit
RBG 3D Printed Moon controlat cu Blynk (iPhone sau Android): 4 pași (cu imagini)
Lună imprimată 3D RBG controlată cu Blynk (iPhone sau Android): Aceasta este o lună imprimată 3D cu suport. Construită cu o bandă LED RGB de 20 de leduri conectate la un arduino uno și programată pentru a fi controlată cu blynk. Arduino este apoi posibil să se controleze prin intermediul aplicației de la blynk pe iPhone sau Android