Cuprins:

MQTT Mood Lights cu ESP32: 4 pași (cu imagini)
MQTT Mood Lights cu ESP32: 4 pași (cu imagini)

Video: MQTT Mood Lights cu ESP32: 4 pași (cu imagini)

Video: MQTT Mood Lights cu ESP32: 4 pași (cu imagini)
Video: Skoolie Build #50: Automation of LED Lights, PWM Dimming with Home Assistant, MQTT, & Arduino ESP32 2024, Iulie
Anonim
MQTT Mood Lights Cu ESP32
MQTT Mood Lights Cu ESP32

Fusesem tentat de ceva timp să mă urc pe bandă cu LED-uri, așa că am fugit și am luat o bandă LED cu care să mă jucăresc. Am ajuns să fac aceste lumini de dispoziție. Pot fi controlate cu MQTT, făcând posibilă adăugarea a tot felul de smart.

Acesta este un proiect bun de weekend dacă nu aveți nimic altceva și doriți să vă murdăriți mâinile făcând ceva.

Rețineți că scopul acestui instructabil este de a documenta proiectul meu și de a împărtăși idei cu alții și nu neapărat de a oferi instrucțiuni și metode solide. Cu toate acestea, citiți mai departe!

Provizii

Electronică:

  • 1x placa de dezvoltare ESP32
  • 1x ecran OLED I2C de 0,96"
  • 1x buzzer
  • 1x mufa cu butoi
  • Alimentare 1x 12V (curentul depinde de lungimea benzii)
  • 1x convertor Buck LM2596
  • 1x bandă LED RGB cu anod comun
  • 3x MOSFET-uri IRFZ44N
  • 3x tranzistoare BC547
  • 3x rezistențe de 10kΩ
  • 4x rezistențe 100Ω
  • 1x placă de prototipare
  • 4x borne cu șurub
  • Anteturi masculine și feminine
  • Sârmă (am folosit un singur fir)

Alte componente hardware și instrumente:

  • Materialul dorit pentru o incintă (am folosit MDF)
  • Material plat, conductiv pentru contactele tactile (am folosit o foaie subțire de aluminiu)
  • Ferăstraie, burghie, șmirghel etc.
  • Fier de lipit și prieteni
  • Lipici fierbinte

Aș recomanda cu tărie să nu alegeți un ESP32 cu un ecran OLED încorporat, deoarece devine foarte greu să faceți un decupaj bine aliniat în incinta dvs. pentru acesta.

Pasul 1: Electronică

Electronică
Electronică
Electronică
Electronică

Schema atașată arată toate conexiunile necesare, cu excepția intrărilor tactile. Există, de asemenea, o diagramă relativ vagă care arată cum să conectați un MOSFET, în cazul în care schema este inadecvată.

Putere

Un convertor Buck LM2596 coboară 12V de la sursa de alimentare la 5V pentru VIN-ul ESP. Asigurați-vă că sursa de alimentare este corect evaluată pentru lungimea benzii LED pe care o utilizați. Banda mea lungă de 2 metri atrage puțin mai mult de 2 amperi.

Știfturi și periferice

Patru pini tactili sunt folosiți, bine, pentru intrări tactile. Placa mea ESP32 a venit cu un afișaj OLED atașat, ale cărui pini I2C au fost conectați la cablu. Acesta folosește patru pini PWM, unul pentru fiecare componentă de culoare (roșu, verde și albastru) și unul pentru buzzer.

MOSFET confundă

MOSFET-urile au fost alese pentru a gestiona timpul de comutare rapid pentru PWM și curentul relativ mare. Există un MOSFET pentru fiecare componentă de culoare. Am folosit BJT-uri NPN separate (BC547) împreună cu un rezistor de tracțiune pentru a conduce IRFZ44N-urile, deoarece semnalele digitale de 3,3 V de la ESP32 s-ar putea să nu fi fost suficiente pentru ca MOSFET-urile să conducă cât de mult curent este necesar. Există MOSFET-uri la nivel logic precum IRLZ44N, dar am aflat despre ele numai după ce am terminat de lipit totul. Oricum ar fi, banda mea care desenează ~ 2A funcționează bine.

Lipire

Terminalele cu șurub sunt utilizate pentru conectarea la banda LED și antetele de sex feminin pentru a conecta ESP32, în cazul în care am vrut să le înlocuiesc pe oricare dintre ele fără a dezlipi lucrurile. Lipirea a durat aproximativ două ore și a fost foarte simplă. De asemenea, am dat benzii mele LED câteva fire mai lungi.

De ce am ales ESP32

Are WiFi și Bluetooth la bord (deși am folosit doar WiFi în acest moment) și am avut unul în jur, pe care îl mâncam. Intrările tactile au fost utile și pentru interfața de pe controler, deoarece au nevoie de un singur fir către un contact. Totuși, dacă doriți, ESP32 ar putea fi înlocuit cu ușurință de un microcontroler precum ESP8266.

Pasul 2: Cod

Am folosit setul de instrumente Arduino (de fapt extensia Arduino pentru VS Code:)) pentru a programa acest lucru. Există tutoriale minunate ca acesta despre cum să începeți cu ESP32 și Arduino IDE, dacă nu ați făcut-o deja.

Există patru moduri diferite de gestionat: culoare statică, culoare aleatorie, Alertă roșie și Alertă albastră. Există patru intrări tactile pentru sus, jos, următor și Alertă roșie. Touch utilizează întreruperi.

Am adăugat MQTT și la lucrări, astfel încât să îl pot controla prin WiFi. Încerc să-mi dau seama de aplicațiile web mari trei (HTML, CSS, JS), așa că am proiectat o pagină web cu temă Star Trek (dar destul de urâtă) care comunică cu un broker MQTT pentru a controla luminile de dispoziție.

Toate codurile mele pot fi găsite atașate, împreună cu o foaie de referință rapidă, al cărei nume de fișier ați putea dori să îl modificați pentru a face din acesta o reducere. Mutați toate fișierele într-un folder cu numele „ESP32MQTTMoodLighting” înainte de a deschide cu Arduino.

Rețineți că codul meu funcționează, dar probabil că nu este cel mai bun. Dar asta nu ar trebui să conteze, pentru că oricum o să-ți scrii a ta, nu?:)

Pasul 3: incintă și asamblare

Incintă și montaj
Incintă și montaj
Incintă și montaj
Incintă și montaj
Incintă și montaj
Incintă și montaj
Incintă și montaj
Incintă și montaj

În timpul blocării, singurul material pe care îl puteam pune era o foaie de MDF de 5 mm. Am făcut tăieturile mari cu un ferăstrău obișnuit și am dat tuturor un nisip bun. Un strat dublu de vopsea emailată a terminat prepararea principală.

Panoul din spate

Am vrut ca cutia mea să poată fi ușor deschisă, așa că mi-am montat toate componentele electronice pe panoul din spate cu patru stand-uri M2 PCB. Panoul meu de perfecționare avea deja găuri M2 găurite în el. Distanțele mele aveau mici cioturi filetate în partea de jos, pe care intenționam să le fixez în MDF. Dar nu aveam un burghiu M2. Deci, marcând poziția fiecărei găuri, am folosit o șurubelniță mică cu cap plat pentru a scoate manual găurile. Crud, dar eficient. Diametrele găurilor erau doar puțin mai mici decât cele ale porțiunii filetate a distanței. Am răsucit distanțele înăuntru și în afară de găuri de câteva ori, ceea ce le-a lărgit și aproape le-a infiletat.

În cele din urmă, distanțele s-au așezat ferm în găurile lor și au ținut perfboardul în poziție. Deoarece MDF-ul meu era foarte gros, nimic nu s-a arătat în cealaltă parte.

Am forat orificiul pentru mufa de alimentare și am făcut un slot pentru trecerea firelor cu bandă LED, chiar sub locul în care erau situate bornele mele cu șurub.

Panoul frontal

Decupaj afișaj OLED

Mi-am început decupajul pentru OLED cu câteva găuri de pornire și le-am depus la dimensiune. A ajuns să fie foarte necinstit și nealiniat. Este posibil ca măsurătorile care nu verifică dublu să fi jucat un rol în asta, dar economisește-ți anumite probleme, neutilizând o placă de dezvoltare cu un OLED încorporat. Este mult mai ușor să montați doar afișajul în gaură.

Conector

Am creat un conector din unele anteturi masculine și feminine. Un capăt atașat la firele conectate la contactele tactile de pe panoul frontal, în timp ce cealaltă parte avea fire care rulează către intrările tactile ale ESP. Acest lucru a fost astfel încât panoul frontal să poată fi complet îndepărtat din spate, dacă este necesar, fără a deranja îmbinările de lipit. Dacă montați orice altceva pe panoul frontal, vă recomandăm să creați și un conector pentru asta.

Touch Pad-uri

Contactele tactile au fost realizate din niște foi de aluminiu. Am tăiat-o pentru a obține cele patru tampoane necesare și am verificat că nu există margini zimțate. Apoi am făcut găuri în panoul frontal, suficient de mare pentru un fir. Pentru a lăsa lipirea lipitului pe tampoane, am scăpat o porțiune mică dintr-o parte cu șmirghel pentru a îndepărta stratul oxidat, apoi i-am dat o ștergere rapidă pentru a îndepărta orice particule. Trecând fiecare sârmă prin orificiul corespunzător din panoul frontal, i-am lipit pe fiecare pe tamponul său. Asigurați-vă că lipirea nu creează o umflătură prea mare pe spate, deoarece acest lucru nu va permite tamponului să stea la același nivel cu panoul.

În cele din urmă, adăugați niște adeziv fierbinte în spatele fiecărui tampon și împingeți-le pe panoul frontal. Adăugarea prea multă va face ca tampoanele să stea ridicate din panou. Curățați orice adeziv în exces care ar fi putut fi împins afară de sub tampoane.

Restul

Panourile laterale sunt destul de simple. O gaură de acces rapid la bornele cu șurub a fost mai multă problemă decât a meritat. Am lipit la cald panourile laterale de panoul frontal.

Velcro pe două margini ține porțiunea frontală de panoul din spate. Lacunele permit ca sunetul soneriei să scape. Dacă faci o treabă mai bună decât mine, nu ar trebui să ajungi cu ceva care seamănă cu meșteșugul preșcolar al unui copil de 5 ani:)

Banda mea cu LED-uri avea un spate lipicios (sunt sigur că și a ta). Am montat-o pe a mea astfel încât lumina să difuzeze de perete.

Pasul 4: conectați-l

Baga-l in priza!
Baga-l in priza!

Acum ar trebui să aveți o lumină completă controlată de MQTT. Am montat-o pe a mea la birou, unde adaugă un strop de culoare lucrărilor uneori monotone. Noaptea este momentul ideal pentru a impresiona oamenii cu ea.

Sper că v-a plăcut să citiți acest Instructable și ați primit câteva idei pentru propriile dvs. proiecte. După cum am menționat anterior, sunt începător și acesta este primul meu instructabil. Aș aprecia orice sfaturi și comentarii.

Recomandat: