Inhoudsopgave:

ESP8266 ESP-01 LED-draadschakelaar - Ajarnpa
ESP8266 ESP-01 LED-draadschakelaar - Ajarnpa
Anonim
ESP8266 ESP-01 LED-draadschakelaar
ESP8266 ESP-01 LED-draadschakelaar

Dit project is ontstaan toen mijn vriendin en ik meerdere LED-sprookjeslichtdraden in de kamer installeerden voor een fijn kerstgevoel. Elke keer dat we naar bed gingen, moesten we door de kamer rennen en elke draad afsluiten. Laatst moesten we ze allemaal weer aanzetten.

Omdat ik wat ESP8266 ESP-01-modules had liggen, besloot ik een snel prototype te assembleren en te programmeren.

Na de succesvolle implementatie van het prototype met een junk LED-draad, besloot ik mijn eerste PCB-ontwerp aan te nemen en bestelde ik een paar boards.

Deze instructable leidt je door het schema, het eerste prototype en de PCB en geeft je de code om de ESP-module met een paar klikken te programmeren.

TL;DR: Dit is een gemakkelijke manier om een Wi-Fi-gestuurde schakelaar te implementeren met de ESP8266 ESP-01.

Benodigdheden:

Hardware

  • ESP8266 ESP-01-module
  • AMS-1117 3.3V-regelaar
  • IRLB8721 MOSFET (laatste PCB) of 2N2222 transistor (oorspronkelijk prototype)
  • Mannelijke en vrouwelijke kopbalken

Software

Arduino IDE v1.6

Voor programmering:

OPEN SMART USB naar ESP-01 Adapter

Om uit te proberen

  • LED
  • 220 Ohm weerstand
  • Breadboard
  • Startkabels

Voor montage

  • Soldeerbout
  • Draden (alleen prototype; niet voor PCB)
  • Perf board (alleen prototype; niet voor PCB)

Stap 1: Schematisch:

Schematisch
Schematisch

Hierboven is het schema gemaakt met EasyEDA. Het kan als volgt worden opgesplitst:

We nemen een ingangsspanning van een USB-voedingskabel met 5V en voeren deze in de VIN-pinnen van de AMS1117 3.3V-module.

De VOUT-pinnen van de AMS1117 3.3V-module zijn verbonden met de collectorpin van de IRLB8721 MOSFET en de VIN- en CH_PD-pinnen van de ESP8266 ESP-01-module. De CH_PD-pin moet HOOG worden getrokken zodat de ESP8266 ESP-01-module de code kan uitvoeren.

De D2-pin van de ESP8266 ESP-01-module is verbonden met de GATE-pin van de IRLB8721 MOSFET. Dit bepaalt of de stroom er doorheen mag of niet.

De emitterpen van de IRLB8721 MOSFET is verbonden met de LED-draad.

Ten slotte zijn alle aardpennen met elkaar verbonden.

Als je de 2N2222-transistor hebt gekozen, vervang dan alle exemplaren van IRLB8721 door respectievelijk 2N2222 en onthoud dat de pootjes op beide componenten een verschillende betekenis hebben.

Stap 2: Programmeren

Voordat we een prototype op een breadboard zetten, moeten we de ESP8266 ESP-01-module programmeren, zodat we het prototype later kunnen testen.

Code

Mijn code is sterk gebaseerd op de tutorial van Random Nerd Tutorial voor de eenvoudige HTTP-server. Ik heb echter de tweede knop verwijderd, omdat we maar één pin (D2) hoeven te bedienen. Desalniettemin kunt u hun code gewoon gebruiken zoals deze is en uw wifi-inloggegevens vervangen.

Flash de ESP8266 ESP-01

Als u de OPEN-SMART USB-naar-ESP-01-adapter hebt, kunt u uw ESP8266 ESP-01-module erop aansluiten en de schakelaar op PROG zetten. Sluit vervolgens het geheel aan op een vrije USB-poort op uw computer en start de Arduino IDE.

Kopieer en plak de code van Random Nerd Tutorials, vervang uw WiFi-inloggegevens en upload deze naar de ESP8266 ESP-01-module.

Verwijder vervolgens de ESP8266 ESP-01-module van de OPEN-SMART-adapter, zet de schakelaar op UART en plaats deze opnieuw.

Test de code

Open de Serial Console in de Arduino IDE en wacht tot de module is verbonden met wifi.

Open vervolgens uw browser en navigeer naar het IP-adres dat wordt weergegeven in de seriële console. Opmerking: u moet zich in hetzelfde netwerk bevinden, ook wel wifi genoemd. Anders heb je geen toegang tot de ESP8266 ESP-01!

Als alles werkt, zie je een website met twee knoppen. Sluit een LED met een weerstand van 220 Ohm aan op de D2-pin op de ESP8266 ESP-01-module en deze moet oplichten en uitgaan wanneer u op de juiste knop op de website klikt.

Als je problemen ondervindt, volg dan de volledige en gedetailleerde tutorial die hierboven is gelinkt.

Stap 3: Prototyping

Prototyping
Prototyping
Prototyping
Prototyping

Stel een breadboard in met alle benodigde componenten en draden zoals weergegeven in het bovenstaande schema en test het met de geprogrammeerde ESP8266 ESP-01-module.

Als alles werkt, heb je twee opties.

Optie A: Soldeer het op een perf-bord

Optie B: Maak een PCB

Ik koos eerst voor optie A en besloot daarna mijn handen uit de mouwen te steken met mijn eerste PCB-project.

Op de foto's zie je mijn zelfgesoldeerde prototype. Zoals altijd zijn de verbindingen een puinhoop en ik heb wat krimpkousen gebruikt om te voorkomen dat de overlappende verbindingen kortsluiten. Ik gebruikte ook de 2N2222-transistor in plaats van de IRLB8721 MOSFET, omdat ik er genoeg had liggen en ik wist dat het niet bedoeld was om te blijven.

Het solderen kostte me ongeveer een uur en het was helemaal niet leuk. Als je een professionele soldeerder bent, geniet je misschien van het proces, maar voor mij wil ik iets eenvoudigers.

Stap 4: PCB

PCB
PCB
PCB
PCB

Ik was bang voor PCB's omdat ik dacht dat ik ze moest ontwerpen met de SMD-componenten en ik kon geen gemakkelijk gemaakte ESP- of Arduino-ontwikkelmodules vinden om in het schema of de PCB-lay-out in te voegen.

Voor dit project heb ik besloten om de ESP8266-01 en AMS1117 3.3. V-modules gewoon te beschouwen als het soort dingen dat ik op het bord zou moeten solderen om ze te gebruiken: als vrouwelijke header-pinnen.

Dit maakte mijn leven een stuk gemakkelijker en de PCB-layout was in ongeveer twee uur klaar. U kunt de twee versies op de foto's zien.

Versie 1 heeft enkele kleine kanttekeningen:

1. De koppennen zijn te smal. Ik had er geen rekening mee gehouden dat ze 2,54 mm van elkaar verwijderd moesten zijn en pakte gewoon de eerste pinnen uit de bibliotheek.2. Ik heb het label voor VIN verknoeid: VCC- en GND-labels zijn verwisseld.3. De AMS1117 3.3V-module is breder dan ik dacht en overspant de rand van de printplaat.

Natuurlijk merkte ik die waarschuwingen op nadat ik ze in het echt had besteld en getest. Ze zijn geen spelbreker, maar ik heb een nieuwe versie gemaakt waarin ik de bovengenoemde punten heb verbeterd. Ook heb ik de ESP8266 ESP-01-module zo geplaatst dat deze de AMS1117 3.3V-module niet zou overlappen.

Je kunt het EasyEDA-project hier vinden:

Stap 5: Vooruitgang

Dus hier zijn we met een eenvoudig te monteren printplaat. Wat is het volgende?

Behuizing

Het zou geweldig zijn om een 3D-geprinte behuizing te hebben die de elektronica verbergt en de constructie robuuster maakt. In het ideale geval zou het een geïntegreerd koellichaam hebben voor de IRLB8721 (hoewel het tijdens mijn test met een 10 m lange LED-draad nooit warmer werd dan kamertemperatuur).

Connectoren

Ook wil ik een USB-connector toevoegen voor VIN, ook bekend als de USB-kabel en een JST-connector voor VOUT, ook bekend als de LED-draad. Momenteel gebruikte ik mannelijke headers op het bord en vrouwelijke headers gesoldeerd aan de LED-draad en de (afgesneden) USB-kabel om het aan te sluiten. Maar dit is geen toekomstvaste verbinding en ziet er niet erg professioneel uit.

In combinatie met een case zou dit de esthetiek van de build enorm vergroten en ook de algehele gebruikservaring (wat cruciaal is als je een smart home probeert te implementeren in een gedeelde omgeving en niet alleen in je eigen kamer of laboratorium).

Smart Home-integratie

Momenteel is elke ESP8266 ESP-01 een HTTP-server met een website die de status ervan beheert. Ik wil graag mijn eerste stappen naar Smart Home zetten en NodeRED en MQTT gebruiken om ze te integreren in een gecentraliseerd domoticasysteem, zodat ik al mijn schakelaars vanuit één gebruikersinterface kan bedienen.

Natuurlijk zou ik gewoon een webserver kunnen bouwen die verzoeken naar de verschillende ESP8266 ESP-01-modules stuurt, maar nogmaals, dat is geen elegante, gestandaardiseerde of uitbreidbare oplossing.

Stap 6: Kritiek

Als je het tot hier hebt gehaald, heel erg bedankt voor het lezen!

Dit is mijn eerste artikel hier en ik hoop dat je iets mee kunt nemen. Ik ben niet in de verschillende genoemde onderwerpen gedoken, omdat ik vond dat er al veel geweldige tutorials over de verschillende onderwerpen zijn. Als u meer referenties nodig heeft of als u wilt dat ik enkele van de stappen gedetailleerder beschrijf, laat dan een reactie achter.

Als je het leuk vindt wat je leest, laat dan ook een reactie achter en misschien vind je het artikel leuk. Het zou veel betekenen:)

Aanbevolen: