Steeds meer apparaten worden "slim", waarom niet de kerstboom ook. Dit project gaat over de controle van de kerstboom fairy lights via browser en Alexa. In de browser en via LED ' s op de hardware kan ook het waterpeil in de basis van de kerstboom worden bewaakt. Natuurlijk kan ook een timer worden geconfigureerd om de verlichting regelmatig aan en uit te zetten. De volledige configuratie wordt gedaan in de browser. Dus ga door, waar wacht je op!
Vereiste hardware
Er worden twee varianten beschreven.
Vrije constructie Zonder behuizing:
Aantal |
Component |
Opmerking |
---|---|---|
1 |
|
|
1 |
|
|
1 |
Voor Waterniveau Sensor |
|
3 |
Voor Waterniveau Sensor |
|
4 |
Voor Waterniveau Sensor |
De componenten voor de waterpeilsensor zijn optioneel als deze functie wordt gebruikt.
Gebouwd op een dual-base shield met een behuizing van de 3D-printer:
Aantal |
Component |
Opmerking |
---|---|---|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
Voor Waterniveau Sensor |
|
1 |
Voor Waterniveau Sensor |
|
3 |
Voor Waterniveau Sensor |
|
4 |
Voor Waterniveau Sensor |
|
1 |
Hoekige pin header 3-pins |
Voor Waterniveau Sensor |
1 |
|
|
1 |
|
|
1 |
Voor Waterniveau Sensor |
|
1 |
Voor Waterniveau Sensor |
|
1 |
Voor Waterniveau Sensor |
De componenten voor de waterpeilsensor zijn optioneel als deze functie wordt gebruikt.
We hebben ook een video voorbereid voor de blog:
circuit
Vrije constructie Zonder behuizing:
Met dubbel Bas-schild en relaisschild:
Structuur van variant 2
Als de Waterpeilsensor optie wordt gebruikt, moet de D1-Mini worden uitgerust met de gecombineerde pin en veerstrips, zodat het sensorschild vervolgens kan worden aangesloten. Het heeft niets met het Relaisschild te maken. Het Dual Base Shield is voorzien van de meegeleverde veerstrips.
Het Sensorschild is gebaseerd op het D1-Mini Prototyping Shield. Eerst moeten de weerstanden, dan de pin headers en ten slotte de lichtgevende diodes worden geïnstalleerd. De opstelling van de componenten werd gekozen, zodat de bedrading kan worden gedaan met kale draden. Alleen voor de aarddraad (in de volgende figuur in paars weergegeven) moet een geïsoleerde draad worden gebruikt.
Software
Om de schets te compileren, moet de Arduino IDE dienovereenkomstig worden voorbereid. De Arduino IDE ondersteunt standaard een groot aantal boards met verschillende microcontrollers, maar niet de ESP8266. Daarom, om programma ' s voor de ESP8266 te maken en te uploaden, moet een softwarepakket voor het ondersteunen van de ESP8266 worden geïnstalleerd.
Eerst, moet u de Arduino IDE vertellen waar te om de extra gegevens te vinden u voor ESP8266 nodig hebt. Om dit te doen, opent u het Voorkeuren-item in het menu Bestand. In het venster Voorkeuren is er een invoerveld genaamd "extra Board Administrator URL 's". Als u op het pictogram rechts van het invoerveld klikt, wordt een venster geopend waarin u de URL kunt invoeren
https://arduino.esp8266.com/stable/package_esp8266com_index.json kan naar binnen.
Selecteer nu het board management in de Arduino IDE onder Tool → Board.
Er wordt een venster geopend waarin alle beschikbare pakketten worden weergegeven. Om de lijst te beperken, voert u "esp8266" in het zoekveld in. Dan krijg je maar één vermelding in de lijst.
Voor de Alexa-interface hebt u twee bibliotheken nodig die niet via bibliotheekbeheer kunnen worden geïnstalleerd. Deze moeten eerst worden gedownload als een ZIP-bestand. De asynchrone webserver van https://github.com/me-no-dev/ESPAsyncWebServer en asynchrone TCP van https://github.com/me-no-dev/ESPAsyncTCP. Om te downloaden, klikt u op de groene knop code en selecteer "Download ZIP".
Om de gedownloade ZIP-bestanden in de Arduino IDE te installeren, gaat u naar Sketch -> bibliotheek opnemen -> in het menu.Voeg ZIP-bibliotheek op de top. Een bestand selectie dialoog verschijnt door het selecteren van de gedownloade bestanden. Dat is alles wat er te doen is.
Tot slot zijn er nog twee bibliotheken nodig, die kunnen worden geïnstalleerd via het Arduino-bibliotheekbeheer. Dit is de bibliotheek "ESPFauxmo", die de interface naar Alexa implementeert en de bibliotheek" AsyncWebConfig", die de configuratie via de browser implementeert.
Wanneer alle bibliotheken zijn geïnstalleerd, kan de sketch worden gecompileerd en geüpload naar de hardware.
schets
#include <ESP8266WiFi.h> // WiFi ondersteuning #include <ESP8266mDNS.h> // Voor nameservers om namen te gebruiken in plaats van IP #include <MAGNEETSCHAKELAAR.h> // Tijdzone dfinities voor klok #include <AsyncWebConfig.h> // Bibliotheek voor configuratie #include <ESPAsyncWebServer.h> // Asynchrone webserver #include <fauxmoESP.h> // Interface voor Alexa // Pinnen gebruikt voor LED en relais #define PIN-RELAIS D1 #define PINEMPTY D2 #define PINHALF D3 #define PINFULL D4 #define LVLFULL 300 #define LVLEMPTY 600 #define TIJDSZONE TZ_Europe_Berlin #define VERBINDEN 300 // seconden om te wachten op Opnieuw verbinden na de verbinding verbreken // Vorm voor configuratie, JSON geformatteerd String params = "[" "{" "'name': 'ssid'," "'label': 'Name of the WLAN'," ""type":"+String(INPUTTEXT)+"," "'default':"" "}," "{" "'name': 'pwd'," "'label': 'WLAN-wachtwoord'," ""type":"+String(Inputwachtwoord)+"," "'default':"" "}," "{" "'name': 'alexaname'," "'label': 'naam voor Alexa'," ""type":"+String(INPUTTEXT)+"," "'default': 'Christmas tree'" "}," "{" "'name': 'ntpserver'," "'label': 'NTP Server'," ""type":"+String(INPUTTEXT)+"," "'default': 'pool.ntp.org '" "}," "{" "'name': 'showlevel'," "'label': 'Toon waterpeil'," ""type":"+String(INPUTCHECKBOX)+"," "'default': '1'" "}," "{" "'name': 'usetimer'," "'label': 'gebruik timer'," ""type":"+String(INPUTCHECKBOX)+"," "'default': '0'" "}," "{" "'name': 'starttime'," "'label': 'inschakeltijd'," ""type":"+String(Invoertijd)+"," "'default': '18: 30'" "}," "{" "'name': 'stoptime'," "'label': 'shutdown time'," ""type":"+String(Invoertijd)+"," "'default': '23: 00'" "}" "]"; const karakter HTML[] PROGMEM = "\n" "\n" "\n" "\n" "\n" "\n" "configuratie \n" "\n" "\n" "\n" "
1 Reactie
Jochen
Hallo zusammen,
zugegeben, Adventszeit ist rum, Weihnachtsbaum schon wieder weg, aber dennoch:
Ich habe versucht das Teil nachzubauen, ist ja “eigentlich” kein Hexenwerk, leider versagt der am wenigsten durchsichtige Step:
Das Hinzufügen zur AlexaApp funktioniert nicht. Selbst wenn ich in der FauxmoESp die Debugs anmache, sehe ich, dass Interaktion mit dem Device stattfindet. Die App meldet aber immer, dass kein Device gefunden wurde…
Hab ich was übersehen?
Danke und Grüße
Jochen