Inhoudsopgave:
- Stap 1: Het ESP8266-01-ontwerp:
- Stap 2: De voeding
- Stap 3: Het pc-bord monteren
- Stap 4: Testen van de printplaat
- Stap 5: De behuizing
- Stap 6: Programmeren van de ESP8266-01/NodeMCU
- Stap 7: Eerste keer instellen
- Stap 8: instellen van IoT-timer
Video: ESP8266-01 IoT Smart Timer voor domotica - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
UPDATES
2018-09-30: Firmware bijgewerkt naar versie 1.09. Nu met Sonoff Basic Support
2018-10-01: Firmwareversie 1.10-proefversie beschikbaar voor testen op ESP8266-01 met problemen
Met de nieuwe modewoorden Internet Of Things (IoT) en Domotica, besloot ik te kijken naar de huidige items in en om mijn huis die via een soort apparaat worden bestuurd. De items die opvielen zijn de volgende:
- Zwembad pomp
- Watervuller voor zwembad
- Zwembad en omgevingsverlichting
- Verlichting in tv/entertainmentsysteem
Het gebruikelijke item dat wordt gebruikt om deze apparaten te bedienen, zijn standaard timers voor wandcontactdozen. Elk apparaat is uitgerust met een eigen timer en bevindt zich allemaal op verschillende locaties. Dus waarom heb ik deze items gekozen om te beginnen met Internet of Things of Home Automation-projecten, vraagt u zich misschien af?
Welnu, wonen in Zuid-Afrika betekent dat stroomstoringen regelmatig voorkomen. Met statistieken van mijn huis had ik het afgelopen jaar 35 stroomstoringen, in totaal 40 uur. Dit is normaal gesproken geen probleem, aangezien alle momenteel geïnstalleerde timers zijn uitgerust met een back-upbatterij voor het bijhouden van de tijd tijdens stroomstoringen. Maar er zijn enkele problemen:
- Deze back-up batterijen gaan maar een jaar of twee mee, dan moet de timer vervangen worden. De timers zijn zo geconstrueerd dat de timer vernietigd moet worden om toegang te krijgen tot de interne Ni-Cad batterij.
- Elke keer dat de stroom uitvalt, moeten de timers met defecte batterijen opnieuw worden geprogrammeerd en de tijd worden ingesteld.
- De fysieke locatie van de timer, wanneer deze is aangesloten op het stopcontact, maakt het bijna onmogelijk om de lcd-schermen te lezen die de timer vanaf de bovenkant bekijken. Dit betekent dat de timer moet worden losgekoppeld, of dat ik op de grond moet gaan liggen om de timers in te stellen of af te stellen na een stroomstoring.
Om bovenstaande redenen heb ik besloten om de mogelijkheid te testen om de timers te vervangen door een IoT Smart Timer, aangesloten op mijn lokale thuisnetwerk.
Het idee was om een stand-alone timer te ontwerpen, die:
- Pas de huidige tijd automatisch aan via internet (IoT)
- Bediening zonder gebruikersacties (Smart)
- Zet een uitgang aan/uit volgens ingestelde tijden (Timer)
- Programmeerbaar en bestuurbaar via netwerk (Domotica)
Stap 1: Het ESP8266-01-ontwerp:
Het ontwerp is gedaan met behulp van een ESP8266-01 WiFi-module, omdat ik deze beschikbaar had. In zijn eenvoudigste vorm heeft de ESP8266-01 vier I/O-pinnen:
- GPIO0
- GPIO2
- TX
- RX
ESP8266-01 Opstartmodi
De logische status van de I/O-pinnen wordt gebruikt om te bepalen in welke modus de ESP8266-01 zal opstarten. De eerste stap was om te bepalen welke van de I/O-pinnen kan worden gebruikt om een uitgangsrelais aan te sturen.
- Voor normaal opstarten moeten GPIO0 en GPIO2 worden ingesteld op logisch HOOG. Het is dus duidelijk dat deze twee pinnen niet als digitale uitgang kunnen worden gebruikt.
- De Tx-pin is ingesteld als een uitgang bij het opstarten en de uitgang is hoog. Deze Tx-pin verzendt ook enkele seriële gegevens tijdens het opstarten. Deze pin kan dus ook niet als uitgang worden gebruikt.
De enige overgebleven pin is de Rx pin. Deze pin is ingesteld als ingang bij het opstarten en hoeft niet hoog te worden getrokken tijdens het opstarten. Deze pin is dus het meest geschikt om als uitgangspin te gebruiken.
Opstarten
Om ervoor te zorgen dat de ESP8266-01 correct opstart tijdens het opstarten, worden de volgende pinnen hoog getrokken met 10K-weerstanden:
- GPIO0
- GPIO2
- RST
- CH_PD
Dit zorgt ervoor dat het apparaat elke keer correct opstart.
Uitgangsrelais:
De RX is de enige pin die geschikt is om als uitgang te gebruiken. Deze pin wordt dus gebruikt om het uitgangsrelais via een NPN-transistor aan te sturen. De standaard vliegwieldiode en transistorbasisweerstanden werden toegevoegd.
MODE/SET-knop
De knop is verbonden met GPIO2 en als de knop wordt losgelaten, zal een weerstand van 10K GPIO2 hoog trekken. Met de knop ingedrukt, wordt GPIO2 naar 0V getrokken.
Deze knop wordt gebruikt voor twee functies:
- Eerste configuratie om het apparaat te verbinden met een lokaal wifi-netwerk
- Om de uitgang handmatig te regelen tijdens normaal gebruik:
Indicatie LED
De LED is verbonden met GPIO0 en geeft het volgende aan:
- Bij de eerste keer opstarten, knippert FAST om de WiFi-instellingsmodus aan te geven
- Knippert langzaam wanneer de tijd van het apparaat niet is ingesteld
- geeft de uitgangsrelais aan / uit-status aan
Stap 2: De voeding
Ik zal de IoT Smart Timer op verschillende spanningsniveaus gebruiken, daarom zijn er twee voedingsopties beschikbaar:
12 - 24V gelijkstroom
De gebruikte DC-DC converter is geschikt voor voedingen tot 28V DC. De output van de converter is instelbaar, en is ingesteld op 5V. Dit moet worden gedaan voordat de ESP8266-module wordt aangesloten.
Ter bescherming tegen omgekeerde polariteit op de voedingsingang is een diode toegevoegd.
220V ACVoor deze optie kon ik op eBay een kleine 220V/5V schakelende voeding krijgen.
Ongeacht de ingangsspanning heeft de IoT Smart Timer twee voedingen nodig:
5V-rail
Bij beide opties wordt de 5V DC verkregen uit een schakelende voeding en niet uit een lineaire regelaar. Dit betekent dat er minimale warmte wordt gegenereerd door de voeding. De 5V wordt gebruikt om het uitgangsrelais aan te sturen
3.3V-rail
De 3.3V voor de ESP8266-01 wordt verkregen uit een ASM1117 3.3-regelaar. De ASM1117 3.3 is een lineaire regelaar en kan tot 500mA aan. De gegenereerde warmte wordt echter bepaald door de ingangsspanning naar de ASM1117. Om warmte te verminderen, wordt de ASM1117 gevoed via de 5V-rail.
Ruisfiltering
Om de spanningsrimpel naar de ESP8266-01 te verminderen, is de 3.3V-rail uitgerust met een 100 - 1000uf condensator. Zowel 5V- als 3,3V-rails worden ook beschermd tegen hoogfrequente interferentie door 0.1uf-condensatoren.
Stap 3: Het pc-bord monteren
Het pc-bord is ontworpen met behulp van de freeware-versie van Eagle. Het is een enkelzijdig bord, dat gemakkelijk thuis kan worden gemaakt met behulp van de toneroverdrachtsmethode.
Nadat de printplaat is gemaakt, monteert u de printplaat in de volgende volgorde:
- Soldeer de ASM1117-regelaar en drie 0.1uf SMD-componenten aan de soldeerzijde van het bord
- Voeg de enkele jumper toe aan de componentzijde van het bord
- Soldeer de weerstanden en diodes op hun plaats
- Voeg de headers toe voor de ESP8266-01-module
- Voeg de header-pinnen voor de LED en knop toe
- Voeg de schroefklemmen toe
- Gebruik header-pinnen om de DC/DC-converter op het bord aan te sluiten.
- Soldeer het relais op zijn plaats
- Voltooi het bord door de transistor en 100uf condensator te solderen.
Zodra alle componenten op het bord zijn gesoldeerd, controleert u alle soldeerpunten en zorgt u ervoor dat er geen kortsluiting tussen de pads is.
! ! ! BELANGRIJKE NOTITIE ! ! ! Om ervoor te zorgen dat de printplaat grote stromen op de uitgangscontacten aankan, brengt u een behoorlijke hoeveelheid soldeer aan op de sporen tussen de relaiscontacten en schroefklemmen
Stap 4: Testen van de printplaat
! ! ! Voordat u de stroom inschakelt! ! !
Verwijder de ESP8266-01-module uit het apparaat. Dit is om oververhitting van de ASM1117 regelaar te voorkomen voordat de 5V voeding wordt aangepast.
Er zijn niet veel tests die kunnen worden gedaan na de montage. De belangrijkste stap is het zorgen voor de juiste spanningsniveaus.
- Breng 12 - 24V DC aan op het apparaat.
- Meet de uitgangsspanning van de DC/DC-converter
- Pas de output van de converter aan tussen 5,0 en 5,5V.
- Meet vervolgens de 3.3V voeding.
- Als de voeding in orde is, haal dan de stroom naar het apparaat
U kunt nu de ESP8266-01-module in de meegeleverde headers plaatsen.
! ! ! Opmerking !
Nadat u de IoT-timer hebt getest en deze werkt, gebruikt u blanke lak om de soldeerzijde van de printplaat te bedekken. Dit voorkomt oxidatie van de sporen en zorgt voor extra isolatie tussen de relaiscontacten en de rest van het circuit
Stap 5: De behuizing
De behuizing is niet zo belangrijk, zolang de printplaat en alle bedrading er maar netjes en veilig in passen.
Om de constructie makkelijker te maken, heb ik een kabel gemaakt met daarop de LED en MODE/SETUP-knop. Dit gaf me meer flexibiliteit bij het monteren van de LED en knop op de behuizing. Deze kabel wordt vervolgens in de header op de printplaat gestoken.
Op de foto's is een van de 12V units te zien die gebruikt worden voor LED-verlichting.
Stap 6: Programmeren van de ESP8266-01/NodeMCU
Om de ESP8266-01 te programmeren, moet u eerst de Arduino IDE instellen. Ik ga niet in op deze details, want er zijn tal van geweldige Instructables beschikbaar over dit onderwerp. Ik heb de volgende links op Instructables ter referentie gekozen, zonder enige specifieke volgorde voor de auteurs. Bedankt voor hun individuele Instructables.
Volg deze ESP8266 en Arduino IDE om de Arduino IDE in te stellen voor de ESP8266 module.
Vervolgens heb je een programmeur nodig om de ESP8266 te programmeren. Hier zijn twee links:
Arduino Uno gebruiken
DIY-programmeerbord
Bibliotheken
U moet extra bibliotheken installeren om de code te kunnen compileren. Nogmaals, raadpleeg deze Instructable:
Installeer en gebruik Arduino-bibliotheken
Ik weet niet meer welke bibliotheken ik moest installeren, maar ik weet wel dat WiFiManager apart moet worden gedownload. Ik heb deze opgenomen in het bestand Libraries.zip.
Stap 7: Eerste keer instellen
Bij het eerste gebruik moet de IoT Smart Timer verbonden zijn met een wifi-netwerk. Deze taak wordt gedaan met behulp van de WiFiManager-bibliotheek, dus er hoeven geen SSID of wachtwoorden in de code te worden getypt.
Volg deze paar stappen:
- Zet het apparaat aan
- De LED begint snel te knipperen
- Druk op de MODE/SETUP-knop
- Wanneer de LED uitgaat, laat u de knop los
- Wacht een paar seconden en open vervolgens de wifi-verbindingen van uw smartphone of apparaat
- Een nieuw wifi-netwerk genaamd IoT Timer zal zichtbaar zijn
- Selecteer dit toegangspunt
- Log in op de IoT Timer (er is geen wachtwoord vereist)
- Wacht tot uw apparaat is verbonden met het IoT Timer-netwerk
- Open elke internetbrowser
- Typ in de adresbalk het volgende IP-adres - 192.168.4.1
- WiFiManager-console wordt geopend
- Selecteer Wifi configureren
- Er wordt een lijst met beschikbare WiFi-netwerkpunten weergegeven
- Selecteer het gewenste wifi-netwerk en typ het wachtwoord in
- Voer vervolgens het IP-adres in dat u wilt gebruiken om verbinding te maken met de IoT Timer
- Voer het IP-adres van de standaard gateway in, gevolgd door het masker
- Zodra alle instellingen zijn voltooid, klikt u op de knop Opslaan
- Er wordt een nieuw venster geopend om te bevestigen dat de nieuwe inloggegevens zijn opgeslagen
- Sluit je browser
Eenmaal opgeslagen, wordt het IoT Timer-netwerk uitgeschakeld en probeert het apparaat verbinding te maken met uw WiFi-netwerk.
- Verbind uw smartphone of apparaat met hetzelfde wifi-netwerk als gebruikt voor de IoT Timer.
- Open je browser
- Typ in de adresbalk het IP-adres van uw IoT-timer
- De configuratiepagina van de IoT Timer wordt geopend
Uw IoT Timer is nu klaar voor gebruik
Stap 8: instellen van IoT-timer
De ingebouwde webpagina van de IoT Timer bestaat uit vijf secties:
Toestand
Dit toont de apparaatnaam, evenals de huidige tijd en uitgangsstatus van de timer
Bovendien wordt in deze sectie de bedrijfsmodus van de timer ingesteld. Er zijn drie modi:
- Auto - De output wordt geregeld door de verschillende timerprogramma's
- Aan - Uitgang wordt geforceerd AAN en blijft aan totdat de modus wordt gewijzigd
- Uit - Uitgang is geforceerd UIT en blijft uit totdat de modus wordt gewijzigd.
Programma's
Dit gedeelte bevat de AAN- en UIT-tijden van de timer. Er zijn zeven programma's beschikbaar en elk programma kan afzonderlijk worden ingesteld.
Voordat u het volgende programma wijzigt, drukt u op de SAVE-knop om eventuele wijzigingen in het huidige programma op te slaan.
Knop Functie:
De MODE/SETUP-knop kan worden gebruikt om het uitgangsrelais tijdens normaal bedrijf te regelen. Selecteer hier wat de knop moet doen wanneer erop wordt gedrukt.
Vink het vakje "Update Button Function" aan voordat u op de Save-knop drukt om de nieuwe instellingen op te slaan.
Configuratie
Hier kunt u de naam van de IoT-timer wijzigen. Dit maakt het gemakkelijk om meerdere timers te identificeren.
De tijd op het apparaat wordt via een NTP-tijdserver van internet gehaald. Om de juiste tijd weer te geven, dient u de tijdzone bij te werken naar uw regio.
Als u gebruik wilt maken van een andere NTP-tijdserver, voert u het nieuwe IP-adres in de daarvoor bestemde ruimte in.
Vink het vakje "Configuratie bijwerken" aan voordat u op de knop Opslaan drukt om de nieuwe instellingen op te slaan.
OPMERKING
Bij het wijzigen van de tijdzone wordt de nieuwe tijd pas bij de volgende tijdopvraag correct ingesteld. Het apparaat is ingesteld om de tijd elke 5 minuten bij te werken.
Tijd aanpassing
Soms komt het voor dat de NTP-tijdserver niet op elke keer reageert. Mocht het te lang duren voordat de tijd via de NTP-server is ingesteld, dan kunt u de tijd en datum handmatig invoeren.
Vink het vakje "Tijd bijwerken" aan voordat u op de knop Opslaan drukt om de nieuwe tijd en datum op te slaan.
Tijdsynchronisatie
Het laatste deel van de pagina geeft de tijd en datum aan waarop de tijd voor het laatst is gesynchroniseerd via de NTP-tijdserver.
Aanbevolen:
Smart Home maken met behulp van Arduino-besturingsrelaismodule - Ideeën voor domotica: 15 stappen (met afbeeldingen)
Smart Home maken met behulp van Arduino-besturingsrelaismodule | Ideeën voor domotica: in dit domotica-project zullen we een smart home-relaismodule ontwerpen die 5 huishoudelijke apparaten kan bedienen. Deze relaismodule kan worden bediend vanaf mobiel of smartphone, IR-afstandsbediening of tv-afstandsbediening, handmatige schakelaar. Dit slimme relais kan ook de r
Deurbelmelding voor slechthorenden via domotica (ESP-now, MQTT, Openhab): 3 stappen
Deurbelmelding voor slechthorenden via domotica (ESP-now, MQTT, Openhab): In deze Instructable laat ik je zien hoe ik mijn normale deurbel in mijn domotica heb geïntegreerd. Deze oplossing is zeer geschikt voor slechthorenden. In mijn geval gebruik ik het om een melding te krijgen als de kamer druk en lawaaierig is op een verjaardagsfeestje van de kinderen. L
Idee voor doe-het-zelf-activiteit voor weerstations voor 12+ jaar: 4 stappen
Idee voor doe-het-zelf-weerstationactiviteit voor 12-plussers: in deze activiteit zullen deelnemers hun weerstation opzetten, de lucht in sturen en de opnames (licht, temperatuur, vochtigheid) in realtime volgen via de Blynk-app. Bovendien leert u hoe u de geregistreerde waarden publiceert
DIY IoT-lamp voor domotica -- ESP8266-zelfstudie: 13 stappen (met afbeeldingen)
DIY IoT-lamp voor domotica || ESP8266 Tutorial: In deze tutorial gaan we een met internet verbonden slimme lamp maken. Dit gaat diep in het internet der dingen en opent een wereld van domotica! De lamp is verbonden met wifi en gebouwd om een open berichtenprotocol te hebben. Dit betekent dat je kunt kiezen
IoT-netcontroller. Deel 9: IoT, domotica: 10 stappen (met afbeeldingen)
IoT-netcontroller. Deel 9: IoT, Domotica: DisclaimerLEES DIT EERSTDit Instructable beschrijft een project dat gebruikmaakt van netstroom (in dit geval UK 240VAC RMS), terwijl alle zorg is besteed aan het gebruik van veilige praktijken en goede ontwerpprincipes, er is altijd een risico van potentieel dodelijke kiezen