Talaan ng mga Nilalaman:

MQTT Mood Lights Sa ESP32: 4 na Hakbang (na may Mga Larawan)
MQTT Mood Lights Sa ESP32: 4 na Hakbang (na may Mga Larawan)

Video: MQTT Mood Lights Sa ESP32: 4 na Hakbang (na may Mga Larawan)

Video: MQTT Mood Lights Sa ESP32: 4 na Hakbang (na may Mga Larawan)
Video: How to Easily Control Addressable LEDs with an ESP32 or ESP8266 | WLED Project 2024, Disyembre
Anonim
MQTT Mood Lights Sa ESP32
MQTT Mood Lights Sa ESP32

Natukso ako nang medyo matagal upang sumakay sa LED bandwagon, kaya't tumakbo ako at kinuha ang isang LED strip upang laruan. Natapos kong gawin ang mga ilaw ng mood. Maaari silang makontrol sa MQTT, na ginagawang posible upang magdagdag ng lahat ng uri ng mga smart.

Ito ay isang magandang proyekto sa katapusan ng linggo kung wala kang iba pang nangyayari, at nais mong madumihan ang iyong mga kamay sa paggawa ng isang bagay.

Tandaan na ang layunin ng Instructable na ito ay upang idokumento ang aking proyekto at magbahagi ng mga ideya sa iba, at hindi kinakailangang magbigay ng mga solidong tagubilin at pamamaraan. Sa nasabing iyon, basahin mo!

Mga gamit

Elektronikong:

  • 1x board ng pag-unlad ng ESP32
  • 1x 0.96 "I2C OLED display
  • 1x Buzzer
  • 1x Barrel jack
  • 1x 12V power supply (kasalukuyang nakasalalay sa haba ng iyong strip)
  • 1x LM2596 buck converter
  • 1x Karaniwang-anode RGB LED strip
  • 3x IRFZ44N MOSFETs
  • 3x BC547 transistors
  • 3x 10kΩ resistors
  • 4x 100Ω resistors
  • 1x prototyping board
  • 4x screw terminal
  • Mga header ng lalaki at babae
  • Wire (Gumamit ako ng single-strand)

Iba pang mga hardware at tool:

  • Ang iyong nais na materyal para sa isang enclosure (Gumamit ako ng MDF)
  • Flat, conductive na materyal para sa mga contact sa ugnayan (Gumamit ako ng isang manipis na sheet ng aluminyo)
  • Mga lagari, drill, papel de liha, atbp.
  • Panghinang na bakal at mga kaibigan
  • Mainit na pandikit

Masidhi kong inirerekumenda na huwag pumunta para sa isang ESP32 na may built-in na display na OLED, sapagkat napakahirap na gumawa ng isang mahusay na pagkakahanay na cutout sa iyong enclosure para dito.

Hakbang 1: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika

Ipinapakita ng nakakabit na eskematiko ang lahat ng kinakailangang mga koneksyon, maliban sa mga touch input. Mayroon ding isang medyo malabo na diagram ng breadboard na nagpapakita kung paano i-wire ang isang MOSFET, kung sakaling hindi sapat ang eskematiko.

Lakas

Ang isang LM2596 buck converter ay bumababa sa 12V mula sa power supply hanggang 5V para sa VIN ng ESP. Siguraduhin na ang iyong power supply ay maayos na na-rate para sa haba ng LED strip na iyong ginagamit. Ang aking 2 meter na haba na strip ay gumuhit ng kaunti pa sa 2 amps.

Mga pin at peripheral

Apat na mga touch pin ang ginagamit para sa, mabuti, mga pag-input ng pindutin. Ang aking board ng ESP32 ay may kasamang naka-attach na display na OLED, na ang mga I2C na pin ay naka-hard in. Gumagamit ito ng apat na PWM na pin, isa para sa bawat bahagi ng kulay (pula, berde, at asul), at isa para sa buzzer.

MOSFET muddles

Napili ang MOSFET upang hawakan ang mabilis na oras ng paglipat para sa PWM at medyo mataas na kasalukuyang. Mayroong isang MOSFET para sa bawat bahagi ng kulay. Gumamit ako ng magkakahiwalay na NPN BJTs (BC547) kasama ang isang pull-up risistor upang himukin ang IRFZ44Ns, dahil ang 3.3V digital signal mula sa ESP32 ay maaaring hindi sapat para sa MOSFETs upang magsagawa ng kasalukuyang kasalukuyang kinakailangan. Ang mga MOSFET na antas ng lohika tulad ng IRLZ44N ay mayroon, ngunit nalaman ko lamang ang tungkol sa mga ito matapos kong matapos ang paghihinang ng lahat. Alinmang paraan, ang aking strip na gumuhit ~ 2A ay gumagana nang maayos.

Paghihinang

Ginagamit ang mga terminal ng tornilyo upang kumonekta sa LED strip, at mga babaeng header upang mai-plug ang ESP32, kung nais kong palitan ang alinman sa mga ito nang hindi nagwawasak ng mga bagay. Ang paghihinang ay tumagal ng halos dalawang oras, at napaka prangka. Binigyan ko rin ang aking LED strip ng mas mahahabang mga wire.

Bakit pinili ko ang ESP32

Mayroon itong WiFi at Bluetooth na nakasakay (kahit WiFi lang ang ginamit ko ngayon), at mayroon akong isang nakahiga na nangangati akong gamitin. Ang mga pag-input ng ugnay ay madaling magamit din para sa interface sa controller, dahil kailangan nila ng isang kawad lamang ang isang contact. Kung nais mo, bagaman, ang ESP32 ay madaling mapalitan ng isang microcontroller tulad ng ESP8266.

Hakbang 2: Code

Ginamit ko ang Arduino toolset (talagang ang Arduino extension para sa VS Code:)) upang mai-program ito. Mayroong mahusay na mga tutorial tulad ng isang ito sa kung paano magsimula sa ESP32 at Arduino IDE, kung hindi mo pa nagagawa.

Mayroong apat na magkakaibang mga mode upang hawakan: static na kulay, random na kulay, Red Alert, at Blue Alert. Mayroong apat na mga input ng touch para sa pataas, pababa, susunod, at Red Alert. Gumagamit ang touch ng mga nakakagambala.

Idinagdag ko ang MQTT sa mga gumagana din, upang makontrol ko ito sa paglipas ng WiFi. Sinusubukan kong makaramdam ng malaki sa web-app na tatlong (HTML, CSS, JS), kaya nagdisenyo ako ng isang Star Trek na may tema na (ngunit sa halip pangit) na webpage na nakikipag-usap sa isang MQTT broker upang makontrol ang mga ilaw ng mood.

Ang lahat ng aking code ay maaaring matagpuan nakakabit, kasama ang isang mabilis na sheet ng sanggunian, na ang iyong filename ay maaaring nais mong baguhin upang gawin itong isang markdown. Ilipat ang lahat ng mga file sa isang folder na may pangalang "ESP32MQTTMoodLighting" bago buksan sa Arduino.

Tandaan na ang aking code ay gumagana, ngunit marahil ay hindi ang pinakadakilang. Ngunit hindi dapat iyon mahalaga, dahil magsusulat ka pa rin ng sarili mo, tama ba?:)

Hakbang 3: Enclosure at Assembly

Enclosure at Assembly
Enclosure at Assembly
Enclosure at Assembly
Enclosure at Assembly
Enclosure at Assembly
Enclosure at Assembly
Enclosure at Assembly
Enclosure at Assembly

Sa panahon ng lockdown, ang tanging materyal na maaari kong makuha ang aking mga kamay ay isang sheet ng 5mm MDF. Ginawa ko ang malalaking hiwa gamit ang isang regular na hacksaw, at binigyan ang lahat ng isang mahusay na buhangin. Ang isang dobleng amerikana ng pintura ng enamel ay natapos ang pangunahing paghahanda.

Back Panel

Nais kong maging madali ang aking kahon, kaya na-mount ko ang lahat ng aking electronics sa likod ng panel na may apat na standal ng PCS na M2. Ang aking perfboard ay mayroon nang mga butas na M2 na drill dito. Ang aking mga paninindigan ay may maliit na sinulid na mga putol sa ilalim, na inilaan kong maiayos sa MDF. Ngunit, wala akong M2 drill bit. Kaya, sa pagmamarka ng posisyon ng bawat butas, gumamit ako ng isang maliit na flat head screwdriver upang manu-manong ilabas ang mga butas. Crude ngunit mabisa. Ang mga diameter ng mga butas ay medyo maliit lamang kaysa sa mga may sinulid na bahagi ng standoff. Inikot-ikot ko ang mga standoff sa loob at labas ng mga butas nang ilang beses, na lumawak at halos sinulid ang mga ito.

Sa paglaon, ang mga standoff ay matatag na nakaupo sa kanilang mga butas at hinawakan ang perfboard sa lugar. Dahil ang aking MDF ay napakapal, walang ipinakita sa kabilang panig.

Nilagyan ko ng butas ang power jack, at gumawa ng puwang para dumaan ang mga LED strip wires, sa ibaba mismo ng kinaroroonan ng aking mga terminal ng tornilyo.

Front Panel

OLED Display Cutout

Sinimulan ko ang aking ginupit para sa OLED na may ilang mga butas ng pagsisimula, at isinampa ang mga ito sa laki. Natapos ito sa pagiging napaka-wonky at hindi pagkakapantay-pantay. Ang pag-sukat ng hindi pag-double check ay maaaring may bahagi doon, ngunit i-save ang iyong sarili ng ilang mga problema sa pamamagitan ng hindi paggamit ng isang development board na may built-in na OLED. Mas madaling i-mount ang display sa iyong hole.

Konektor

Nag-istilo ako ng isang konektor mula sa ilang mga header ng lalaki at babae. Ang isang dulo ay nakakabit sa mga wire na konektado sa mga contact na touch sa front panel, habang ang kabilang panig ay may mga wires na tumatakbo sa mga touch input ng ESP. Ito ay upang ang harap na panel ay maaaring ganap na alisin mula sa likuran kung kinakailangan, nang hindi nakakagambala sa mga kasukasuan ng solder. Kung nag-mount ka ng anupaman sa iyong front panel, baka gusto mong gumawa din ng isang konektor para sa na.

Touch Pads

Ang mga contact sa ugnay ay gawa sa ilang sheet ng aluminyo. Pinutol ko ito upang makuha ang kinakailangan ng apat na pad, at na-verify na walang mga gilid na gilid. Pagkatapos ay nag-drill ako ng mga butas sa front panel, sapat na malaki para sa isang kawad. Para sa pagpapaalam sa solder na dumikit sa mga pad, siniksik ko ang isang maliit na bahagi ng isang gilid na may papel de liha upang alisin ang na-oxidized na layer, at pagkatapos ay binigyan ito ng isang mabilis na punasan upang alisin ang anumang mga maliit na butil. Pagpapatakbo ng bawat kawad sa pamamagitan ng kaukulang butas nito sa front panel, hinangin ko ang bawat isa sa pad nito. Siguraduhin na ang iyong solder ay hindi lumikha ng masyadong malaki isang umbok sa likod, dahil hindi nito papayagan ang pad na umupo sa flush sa panel.

Panghuli, magdagdag ng maiinit na pandikit sa likod ng bawat pad at itulak ang mga ito sa harap na panel. Ang pagdaragdag ng labis ay magpapaupo sa mga pad na itinaas mula sa panel. Linisin ang anumang labis na pandikit na maaaring itinulak mula sa ilalim ng mga pad.

Yung iba

Ang mga panel sa gilid ay medyo prangka. Ang isang butas na mabilis na pag-access sa mga terminal ng tornilyo ay mas maraming problema kaysa sa halagang ito. Mainit kong idinikit ang mga gilid na panel sa front panel.

Ang Velcro sa dalawang gilid ay humahawak sa harap na bahagi sa likod ng panel. Pinapayagan ng mga puwang na makatakas ang tunog ng buzzer. Kung gumawa ka ng isang mas mahusay na trabaho kaysa sa akin, hindi ka dapat magtapos sa isang bagay na mukhang isang preschool craft ng isang 5 taong gulang:)

Ang aking LED strip ay may isang malagkit na likod (Sigurado akong ang iyo rin). Inilagay ko ang minahan na ang ilaw ay nagkakalat sa dingding.

Hakbang 4: I-plug In Ito

I-plug In Ito!
I-plug In Ito!

Dapat ay mayroon ka ng isang kumpletong MQTT-control light light. Inilagay ko ang minahan sa aking mesa, kung saan nagdaragdag ito ng isang splash ng kulay sa kung minsan ay walang gawa na trabaho. Ang gabi ay ang perpektong oras upang mapahanga ang mga tao dito.

Inaasahan kong nasiyahan ka sa pagbabasa ng Instructable na ito, at nakakuha ng ilang mga ideya para sa iyong sariling mga proyekto. Tulad ng nabanggit ko dati, ako ay isang nagsisimula, at ito ang aking unang Maituturo. Gusto kong pahalagahan ang anumang mga tip at komento.

Inirerekumendang: