Inhoudsopgave:

ESP8266-01 IoT Smart Timer voor domotica - Ajarnpa
ESP8266-01 IoT Smart Timer voor domotica - Ajarnpa

Video: ESP8266-01 IoT Smart Timer voor domotica - Ajarnpa

Video: ESP8266-01 IoT Smart Timer voor domotica - Ajarnpa
Video: Как запрограммировать модуль реле Wi-Fi ESP8266 ESP-01 2024, November
Anonim
ESP8266-01 IoT Smart Timer voor domotica
ESP8266-01 IoT Smart Timer voor domotica
ESP8266-01 IoT Smart Timer voor domotica
ESP8266-01 IoT Smart Timer voor domotica
ESP8266-01 IoT Smart Timer voor domotica
ESP8266-01 IoT Smart Timer voor domotica

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 ESP8266-01-ontwerp
Het ESP8266-01-ontwerp
Het ESP8266-01-ontwerp
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

De voeding
De voeding
De voeding
De voeding
De voeding
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

De printplaat monteren
De printplaat monteren
De printplaat monteren
De printplaat monteren
De printplaat monteren
De printplaat 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

Testen van de printplaat
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
de behuizing
de behuizing
de behuizing
de behuizing
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

Programmeren van de ESP8266-01/NodeMCU
Programmeren van de ESP8266-01/NodeMCU
Programmeren van de ESP8266-01/NodeMCU
Programmeren van de ESP8266-01/NodeMCU
Programmeren van de ESP8266-01/NodeMCU
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

Eerste keer instellen
Eerste keer instellen
Eerste keer instellen
Eerste keer instellen
Eerste keer instellen
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

Installatie van IoT-timer
Installatie van IoT-timer
Instellen van IoT-timer
Instellen van IoT-timer
Installatie van IoT-timer
Installatie van IoT-timer
Instellen van IoT-timer
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: