Inhoudsopgave:

MQTT-stemmingslichten met ESP32 - Ajarnpa
MQTT-stemmingslichten met ESP32 - Ajarnpa

Video: MQTT-stemmingslichten met ESP32 - Ajarnpa

Video: MQTT-stemmingslichten met ESP32 - Ajarnpa
Video: А вот Булли заценил!😾 #симбочка #симба #тигра 2024, Juli-
Anonim
MQTT Sfeerverlichting met ESP32
MQTT Sfeerverlichting met ESP32

Ik was al geruime tijd in de verleiding om op de LED-wagen te springen, dus rende ik naar buiten en pakte een LED-strip om mee te spelen. Uiteindelijk heb ik deze sfeerverlichting gemaakt. Ze kunnen worden aangestuurd met MQTT, waardoor het mogelijk is om allerlei smarts toe te voegen.

Dit is een goed weekendproject als je niets anders te doen hebt en je handen vuil wilt maken om iets te maken.

Merk op dat het doel van deze Instructable is om mijn project te documenteren en ideeën met anderen te delen, en niet noodzakelijk om solide instructies en methoden te geven. Dat gezegd hebbende, lees verder!

Benodigdheden

Elektronica:

  • 1x ESP32 ontwikkelbord
  • 1x 0,96" I2C OLED-scherm
  • 1x zoemer
  • 1x vatkrik
  • 1x 12V voeding (stroom hangt af van de lengte van je strip)
  • 1x LM2596 buck-converter
  • 1x Common-anode RGB ledstrip
  • 3x IRFZ44N MOSFET's
  • 3x BC547-transistors
  • 3x 10kΩ weerstanden
  • 4x 100Ω weerstanden
  • 1x prototypebord
  • 4x schroefklemmen
  • Mannelijke en vrouwelijke kopteksten
  • Draad (ik gebruikte enkelstrengs)

Andere hardware en tools:

  • Uw gewenste materiaal voor een behuizing (ik gebruikte MDF)
  • Plat, geleidend materiaal voor aanraakcontacten (ik gebruikte een dunne aluminiumplaat)
  • Zagen, boren, schuurpapier, enz.
  • Soldeerbout en vrienden
  • Hete lijm

Ik zou ten zeerste afraden om voor een ESP32 met een ingebouwd OLED-scherm te gaan, omdat het erg moeilijk wordt om er een goed uitgelijnde uitsparing in je behuizing voor te maken.

Stap 1: Elektronica

Elektronica
Elektronica
Elektronica
Elektronica

Het bijgevoegde schema toont alle benodigde aansluitingen, behalve de aanraakingangen. Er is ook een relatief vaag breadboard-diagram dat laat zien hoe één MOSFET moet worden aangesloten, voor het geval het schema ontoereikend is.

Stroom

Een LM2596 buck-converter verlaagt de 12V van de voeding naar 5V voor het VIN van de ESP. Zorg ervoor dat uw voeding de juiste waarde heeft voor de lengte van de ledstrip die u gebruikt. Mijn 2 meter lange strip trekt iets meer dan 2 ampère.

Pinnen en randapparatuur

Vier aanraakpinnen worden gebruikt voor, nou ja, aanraakinvoer. Mijn ESP32-bord werd geleverd met een OLED-scherm bevestigd, waarvan de I2C-pinnen waren vastgemaakt. Dit gebruikt vier PWM-pinnen, één voor elke kleurcomponent (rood, groen en blauw) en één voor de zoemer.

MOSFET warboel

MOSFET's werden gekozen om de snelle schakeltijden voor PWM en relatief hoge stroomsterkte aan te kunnen. Er is één MOSFET voor elke kleurcomponent. Ik gebruikte afzonderlijke NPN BJT's (BC547) samen met een pull-up-weerstand om de IRFZ44N's aan te sturen, omdat de 3,3V digitale signalen van de ESP32 misschien niet genoeg waren voor de MOSFET's om zoveel stroom te geleiden als nodig was. MOSFET's op logisch niveau zoals de IRLZ44N bestaan, maar ik kwam er pas achter nadat ik alles had gesoldeerd. Hoe dan ook, mijn strip die ~ 2A trekt, werkt prima.

Solderen

Schroefklemmen worden gebruikt om verbinding te maken met de LED-strip en vrouwelijke headers om de ESP32 in te pluggen, voor het geval ik een van beide zou willen vervangen zonder dingen te desolderen. Solderen duurde ongeveer twee uur en was heel eenvoudig. Ik heb mijn ledstrip ook wat langere draden gegeven.

Waarom ik koos voor de ESP32

Het heeft WiFi en Bluetooth aan boord (hoewel ik op dit moment alleen WiFi heb gebruikt), en ik had er een liggen die ik graag wilde gebruiken. De aanraakingangen waren ook handig voor de interface op de controller, omdat er maar één draad naar een contact hoeft te gaan. Als je zou willen, zou de ESP32 echter gemakkelijk kunnen worden vervangen door een microcontroller zoals de ESP8266.

Stap 2: Coderen

Ik gebruikte de Arduino-toolset (eigenlijk de Arduino-extensie voor VS Code:)) om dit te programmeren. Er zijn geweldige tutorials zoals deze over hoe je aan de slag kunt met de ESP32 en Arduino IDE, als je dat nog niet hebt gedaan.

Er zijn vier verschillende modi om te gebruiken: statische kleur, willekeurige kleur, Red Alert en Blue Alert. Er zijn vier aanraakinvoer voor omhoog, omlaag, volgende en Red Alert. Touch maakt gebruik van interrupts.

Ik heb ook MQTT aan de fabriek toegevoegd, zodat ik het via wifi kon bedienen. Ik probeer een idee te krijgen van de grote drie van de webapp (HTML, CSS, JS), dus ontwierp ik een Star Trek-thema (maar nogal lelijke) webpagina die communiceert met een MQTT-makelaar om de sfeerverlichting te regelen.

Al mijn code is bijgevoegd te vinden, samen met een snel referentieblad, waarvan je de bestandsnaam misschien wilt wijzigen om er een markdown van te maken. Verplaats alle bestanden naar een map met de naam "ESP32MQTTMoodLighting" voordat u ze opent met Arduino.

Merk op dat mijn code werkt, maar waarschijnlijk niet de beste is. Maar dat zou niet uit moeten maken, want je gaat toch je eigen schrijven, toch?:)

Stap 3: Behuizing en montage

Behuizing en montage
Behuizing en montage
Behuizing en montage
Behuizing en montage
Behuizing en montage
Behuizing en montage
Behuizing en montage
Behuizing en montage

Tijdens de lockdown was het enige materiaal dat ik te pakken kon krijgen een plaat van 5 mm MDF. Ik maakte de grote sneden met een gewone ijzerzaag en gaf alles goed zand. Een dubbele laag emaille verf maakte de hoofdpreparatie af.

Achterpaneel

Ik wilde dat mijn doos gemakkelijk te openen was, dus monteerde ik al mijn elektronica op het achterpaneel met vier M2 PCB-afstandhouders. In mijn perfboard waren al M2 gaten geboord. Mijn afstandhouders hadden aan de onderkant kleine draadeinden, die ik in de MDF wilde bevestigen. Maar ik had geen M2-boor. Dus, terwijl ik de positie van elk gat markeerde, gebruikte ik een kleine platte schroevendraaier om de gaten handmatig uit te gutsen. Ruw maar effectief. De diameters van de gaten waren net iets kleiner dan die van het schroefdraadgedeelte van de impasse. Ik heb de afstandhouders een paar keer in en uit de gaten gedraaid, waardoor ze breder werden en ze bijna werden ingeregen.

Uiteindelijk zaten de afstandhouders stevig in hun gaten en hielden de perfboard op zijn plaats. Omdat mijn MDF erg dik was, kwam er niets door naar de andere kant.

Ik boorde het gat voor de stroomaansluiting en maakte een gleuf waar de draden van de LED-strip doorheen konden gaan, precies onder waar mijn schroefaansluitingen zich bevonden.

Voorpaneel

OLED-schermuitsparing

Ik begon mijn uitsparing voor de OLED met een paar startgaten en vijlde ze op maat. Het werd uiteindelijk erg wankel en niet goed uitgelijnd. Het niet dubbel controleren van metingen heeft daar misschien een rol in gespeeld, maar bespaar jezelf wat moeite door geen ontwikkelbord met ingebouwde OLED te gebruiken. Het is veel gemakkelijker om het scherm gewoon in uw gat te monteren.

Connector

Ik heb een connector gemaakt uit enkele mannelijke en vrouwelijke headers. Het ene uiteinde was bevestigd aan de draden die waren aangesloten op de aanraakcontacten op het voorpaneel, terwijl aan de andere kant draden liepen naar de aanraakingangen van de ESP. Dit was zodat het voorpaneel indien nodig volledig van de achterkant kon worden verwijderd, zonder de soldeerverbindingen te verstoren. Als je iets anders op je voorpaneel monteert, wil je daar misschien ook een connector voor maken.

Touchpads

De aanraakcontacten waren gemaakt van wat aluminiumplaat. Ik sneed het om de vier benodigde pads te krijgen, en controleerde dat er geen gekartelde randen waren. Vervolgens heb ik gaten in het voorpaneel geboord, net groot genoeg voor een draad. Om soldeer aan de pads te laten kleven, schuurde ik een klein deel van één kant op met schuurpapier om de geoxideerde laag te verwijderen, en veegde het vervolgens snel af om eventuele deeltjes te verwijderen. Ik liet elke draad door het bijbehorende gat in het voorpaneel lopen en soldeerde elke draad aan zijn pad. Zorg ervoor dat uw soldeer geen te grote uitstulping op de achterkant maakt, omdat hierdoor de pad niet gelijk met het paneel komt te zitten.

Voeg ten slotte wat hete lijm toe aan de achterkant van elke pad en duw ze op het voorpaneel. Als u te veel toevoegt, komen de pads omhoog uit het paneel. Ruim overtollige lijm op die mogelijk onder de pads vandaan is geduwd.

De rest

De zijpanelen zijn vrij eenvoudig. Een snel toegankelijk gat naar de schroefaansluitingen was meer moeite dan het waard was. Ik heb de zijpanelen warm op het voorpaneel gelijmd.

Klittenband aan twee randen houdt het voorste gedeelte tegen het achterpaneel. Door de openingen kan het geluid van de zoemer ontsnappen. Als je het beter doet dan ik, moet je niet eindigen met iets dat eruitziet als een kleuterschool van een 5-jarige:)

Mijn LED-strip had een plakkerige achterkant (ik weet zeker dat die van jou dat ook heeft). Ik heb de mijne zo gemonteerd dat het licht van de muur diffundeert.

Stap 4: Sluit het aan

Sluit het aan!
Sluit het aan!

Je zou nu een compleet MQTT-gestuurd sfeerlicht moeten hebben. Ik heb de mijne op mijn bureau gemonteerd, waar het een vleugje kleur toevoegt aan soms eentonig werk. De nacht is het ideale moment om er mensen mee te imponeren.

Ik hoop dat je het leuk vond om deze Instructable te lezen en een paar ideeën voor je eigen projecten hebt gekregen. Zoals ik al eerder zei, ik ben een beginner, en dit is mijn eerste Instructable. Ik zou alle tips en opmerkingen op prijs stellen.

Aanbevolen: