Innholdsfortegnelse:

MQTT stemningslys med ESP32: 4 trinn (med bilder)
MQTT stemningslys med ESP32: 4 trinn (med bilder)

Video: MQTT stemningslys med ESP32: 4 trinn (med bilder)

Video: MQTT stemningslys med ESP32: 4 trinn (med bilder)
Video: Templates and Custom Sensors in Home Assistant - How To TUTORIAL 2024, Juli
Anonim
MQTT stemningslys med ESP32
MQTT stemningslys med ESP32

Jeg hadde lenge blitt fristet til å hoppe på LED -vognen, så jeg løp ut og hentet en LED -stripe å leke med. Jeg endte opp med å lage disse stemningslysene. De kan styres med MQTT, noe som gjør det mulig å legge til alle slags smarts.

Dette er et godt helgeprosjekt hvis du ikke har noe annet å gjøre, og vil gjøre hendene skitne ved å lage noe.

Vær oppmerksom på at formålet med denne instruksen er å dokumentere prosjektet mitt og dele ideer med andre, og ikke nødvendigvis å gi solide instruksjoner og metoder. Når det er sagt, les videre!

Rekvisita

Elektronikk:

  • 1x ESP32 utviklingstavle
  • 1x 0,96 "I2C OLED -skjerm
  • 1x summer
  • 1x fatkontakt
  • 1x 12V strømforsyning (strøm avhenger av lengden på stripen din)
  • 1x LM2596 buck converter
  • 1x Common-anode RGB LED-stripe
  • 3x IRFZ44N MOSFET
  • 3x BC547 -transistorer
  • 3x 10kΩ motstander
  • 4x 100Ω motstander
  • 1x prototypebrett
  • 4x skrueterminaler
  • Mannlige og kvinnelige overskrifter
  • Wire (jeg brukte enkelttråd)

Annen maskinvare og verktøy:

  • Materialet du ønsker for et skap (jeg brukte MDF)
  • Flat, ledende materiale for berøringskontakter (jeg brukte et tynt aluminiumsark)
  • Sager, bor, sandpapir osv.
  • Loddejern og venner
  • Varmt lim

Jeg vil på det sterkeste anbefale å ikke gå for en ESP32 med en innebygd OLED-skjerm, fordi det blir veldig vanskelig å lage et godt justert utsnitt i kabinettet for det.

Trinn 1: Elektronikk

Elektronikk
Elektronikk
Elektronikk
Elektronikk

Skjematisk vedlagt viser alle nødvendige tilkoblinger, bortsett fra berøringsinngangene. Det er også et relativt uklart brødbrettdiagram som viser hvordan du kobler til en MOSFET, hvis skjematikken er utilstrekkelig.

Makt

En LM2596 buck -omformer trapper ned 12V fra strømforsyningen til 5V for ESPs VIN. Sørg for at strømforsyningen din er riktig vurdert for lengden på LED -stripen du bruker. Min 2 meter lange stripe trekker litt mer enn 2 ampere.

Pinner og eksterne enheter

Fire berøringspinner brukes til, vel, berøringsinnganger. Mitt ESP32 -kort kom med en OLED -skjerm festet, hvis I2C -pinner var koblet til. Denne bruker fire PWM -pinner, en for hver fargekomponent (rød, grønn og blå), og en for summeren.

MOSFET roter

MOSFET -er ble valgt for å håndtere de raske byttetidene for PWM og relativt høy strøm. Det er én MOSFET for hver fargekomponent. Jeg brukte separate NPN BJT (BC547) sammen med en pull-up motstand for å drive IRFZ44N, ettersom 3.3V digitale signaler fra ESP32 kanskje ikke var nok til at MOSFETene kunne lede så mye strøm som nødvendig. Logiske nivå MOSFETer som IRLZ44N eksisterer, men jeg fant ut om dem først etter at jeg var ferdig med å lodde alt. Uansett fungerer stripen min som tegner ~ 2A bra.

Lodding

Skrueterminaler brukes til å koble til LED -stripen, og kvinnelige hoder for å koble ESP32 til, i tilfelle jeg ville bytte ut noen av dem uten å lodde ting. Lodding tok omtrent to timer, og var veldig grei. Jeg ga også LED -stripen min noen lengre ledninger.

Hvorfor jeg valgte ESP32

Den har WiFi og Bluetooth ombord (selv om jeg bare har brukt WiFi akkurat nå), og jeg hadde en liggende som jeg kløte å bruke. Berøringsinngangene kom også godt med for grensesnittet på kontrolleren, ettersom de bare trenger en ledning til en kontakt. Hvis du ville, kunne ESP32 imidlertid lett erstattes av en mikrokontroller som ESP8266.

Trinn 2: Kode

Jeg brukte Arduino verktøysett (faktisk Arduino -utvidelsen for VS Code:)) for å programmere dette. Det er flotte opplæringsprogrammer som denne om hvordan du kommer i gang med ESP32 og Arduino IDE, hvis du ikke allerede har gjort det.

Det er fire forskjellige moduser å håndtere: statisk farge, tilfeldig farge, rød varsel og blå varsel. Det er fire berøringsinnganger for opp, ned, neste og rød varsel. Touch bruker avbrudd.

Jeg la også til MQTT i verkene, slik at jeg kunne kontrollere det over WiFi. Jeg prøver å få en følelse av web-appens store tre (HTML, CSS, JS), så jeg designet en webside med Star Trek-tema (men ganske stygg) som kommuniserer med en MQTT-megler for å kontrollere stemningslysene.

All koden min finner du vedlagt, sammen med et hurtigreferanseark, hvis filnavn du kanskje vil endre for å gjøre det til en markdown. Flytt alle filene til en mappe med navnet "ESP32MQTTMoodLighting" før du åpner med Arduino.

Vær oppmerksom på at koden min fungerer, men sannsynligvis ikke er den største. Men det burde ikke ha noe å si, for du kommer til å skrive din egen uansett, ikke sant?:)

Trinn 3: Kapsling og montering

Vedlegg og montering
Vedlegg og montering
Vedlegg og montering
Vedlegg og montering
Vedlegg og montering
Vedlegg og montering
Vedlegg og montering
Vedlegg og montering

Under lockdown var det eneste materialet jeg kunne få tak i, et ark med 5 mm MDF. Jeg gjorde de store kuttene med en vanlig baufil, og ga alt en god sand. Et dobbelt lag med emaljemaling fullførte hovedpreparatet.

Bakpanel

Jeg ville at boksen min skulle være lett å åpne, så jeg monterte all elektronikken min på bakpanelet med fire M2 PCB -avstand. Perfboardet mitt hadde allerede boret M2 -hull inn i det. Avstandene mine hadde små gjengede stubber i bunnen, som jeg hadde tenkt å fikse i MDF. Men jeg hadde ikke en M2 borekrone. Så, for å markere posisjonen til hvert hull, brukte jeg en liten skrutrekker til å stikke hullene ut manuelt. Grovt, men effektivt. Diameterene på hullene var bare litt mindre enn de på den gjengede delen av avstanden. Jeg vridde avstandene inn og ut av hullene noen ganger, noe som utvidet og nesten trådet dem.

Til slutt satt avstandene fast i hullene og holdt perfboardet på plass. Fordi min MDF var veldig tykk, viste ingenting seg til den andre siden.

Jeg boret hullet for strømkontakten, og laget et spor for LED -stripetrådene å passere gjennom, rett nedenfor der skrueterminalene var plassert.

Frontpanel

OLED Display Cutout

Jeg startet min cutout for OLED med et par starthull, og lagde dem ut i størrelse. Det endte med å bli veldig vant og feiljustert. Ikke dobbeltsjekking av målinger kan ha spilt en rolle i det, men spar deg litt trøbbel ved å ikke bruke et utviklingsbord med en innebygd OLED. Det er mye lettere å bare montere skjermen i hullet ditt.

Kontakt

Jeg laget en kontakt av noen mannlige og kvinnelige overskrifter. Den ene enden festet til ledningene som er koblet til berøringskontaktene på frontpanelet, mens den andre siden hadde ledninger som kjørte til ESPs berøringsinnganger. Dette var slik at frontpanelet kunne fjernes helt fra baksiden om nødvendig, uten å forstyrre loddeskjøter. Hvis du monterer noe annet på frontpanelet, kan det være lurt å lage en kontakt for det også.

Trykk på puter

Berøringskontaktene var laget av noen aluminiumsplater. Jeg kuttet den for å få de fire putene som trengs, og bekreftet at det ikke var noen hakkede kanter. Jeg boret deretter hull i frontpanelet, akkurat stort nok til en ledning. For å la loddetinn feste seg til putene, ryddet jeg opp en liten del av den ene siden med sandpapir for å fjerne det oksiderte laget, og deretter tørket jeg det raskt for å fjerne partikler. Da jeg førte hver ledning gjennom det tilhørende hullet på frontpanelet, loddet jeg hver enkelt til puten. Sørg for at loddetinnet ikke skaper en for stor bule på baksiden, da dette ikke gjør at puten kan sitte i flukt med panelet.

Til slutt legger du til litt varmt lim på baksiden av hver pute og skyver dem på frontpanelet. Hvis du legger til for mye, vil putene sitte hevet fra panelet. Rengjør overflødig lim som kan ha blitt presset ut under putene.

Resten

Sidepanelene er ganske enkle. Et hurtig tilgangshull til skrueterminalene var mer trøbbel enn det var verdt. Jeg varmlimte sidepanelene til frontpanelet.

Borrelås på to kanter holder den fremre delen til bakpanelet. Gapene gjør at summerens lyd kan slippe unna. Hvis du gjør en bedre jobb enn meg, bør du ikke ende opp med noe som ser ut som en 5-åring førskolefag:)

LED -stripen min hadde en klissete rygg (det er du sikkert også). Jeg monterte min slik at lyset diffunderer fra veggen.

Trinn 4: Koble den til

Plugg den inn!
Plugg den inn!

Du bør nå ha et komplett MQTT-kontrollert stemningslys. Jeg har montert mitt på skrivebordet mitt, hvor det tilfører et fargestikk til noen ganger monotont arbeid. Natt er den ideelle tiden for å imponere folk med den.

Jeg håper du likte å lese denne Instructable, og fikk noen ideer til dine egne prosjekter. Som jeg nevnte før, er jeg en nybegynner, og dette er min første instruks. Jeg vil sette pris på tips og kommentarer.

Anbefalt: