Sempre più dispositivi sono "intelligenti", perché non anche l'albero di Natale. Questo progetto riguarda il controllo delle luci di fata dell'albero di Natale sul browser e Alexa. Nel browser e tramite LED sull'hardware, il livello dell'acqua può anche essere monitorato nel piede dell'albero di Natale. Naturalmente, un timer può anche essere configurato per accendere e spegnere la luce regolarmente. L'intera configurazione avviene nel browser. Quindi vai, cosa stai aspettando!
I componenti per il sensore del livello dell'acqua sono opzionali se questa funzione deve essere utilizzata.
Abbiamo anche preparato un video al blog:
Il circuito
Costruzione gratuita senza alloggio:
Con Dual-Bas Shield e Relaisshield:
Costruzione della variante 2
Se si desidera utilizzare l'opzione Sensore di stato dell'acqua, D1 Mini deve essere equipaggiato con i PIN combinati e le strisce a molla, in modo che lo scudo del sensore possa essere inserito su di esso. Non c'è niente a che fare con lo scudo del Relais. Lo scudo a doppia base è dotato delle strisce a molle chiuse.
Lo scudo del sensore è costruito sullo schermo mini prototipazione D1. Innanzitutto, i resistori, quindi le strisce per pin e gli ultimi i diodi emettitori di luce dovrebbero essere installati. È stata scelta la disposizione dei componenti in modo che il cablaggio possa avvenire con fili nudi. Solo per la linea di terra (mostrata nella seguente illustrazione del viola), è necessario utilizzare un filo isolante.
Software
In modo che lo schizzo possa essere compilato, l'IDE Arduino deve essere preparato di conseguenza. Per impostazione predefinita, l'IDE Arduino supporta un gran numero di schede con diversi microcontrollori, ma non l'ESP8266. Pertanto è possibile creare e caricare programmi per ESP8266, è necessario installare un pacchetto software per il supporto dell'ESP8266.
Innanzitutto, devi dire all'IDUINO IDE dove troverai i dati richiesti anche per ESP8266. Per fare ciò, apri le preferenze dell'oggetto nel menu File. Nella finestra Preset, c'è il campo di input con l'etichetta "URL aggiuntivi di Gestore della scheda aggiuntivi". Se si fa clic sull'icona a destra del campo di input, si apre una finestra nell'URL
Ora scegli nell'IDUINO IDE sotto strumento → Amministrazione Board Board.
Si apre una finestra in cui sono elencati tutti i pacchetti disponibili. Per restringere l'elenco, immettere "ESP8266" nella casella di ricerca. Quindi ottieni solo una voce nella lista.
Per l'interfaccia Alexa è necessario due librerie che non possono essere installate tramite la gestione della libreria. Questi devono prima essere scaricati come file zip. Il server web asincrono di https://github.com/me-no-dev/ESPAsyncWebServer e tcp asincrono di https://github.com/me-no-dev/ESPAsyncTCP. Basta fare clic sul codice del pulsante verde e selezionare "Scarica zip".
Per installare i file zip scaricati nell'IDUINO IDE, richiamare nel menu Schizzo -> Integrazione Libreria -> Biblioteca .zip Aggiungi a. Viene visualizzata una finestra di dialogo Selezione file selezionando i file scaricati. Nient'altro da fare.
Infine, sono necessarie altre due biblioteche, che possono essere installate tramite la Gestione della Biblioteca Arduino. Questa è la biblioteca "Espabauxmo" che implementa l'interfaccia ad Alexa e la libreria "asyncwebconfig", che implementa la configurazione tramite il browser.
Se tutte le librerie sono installate, lo schizzo può essere compilato e caricato sull'hardware.
Lo schizzo
#include<ESP8266WIFI..h>// Supporto WiFi.#include<ESP8266MDNS..h>// per il server dei nomi per utilizzare i nomi al posto di IP #include<TZ..h>// DFINIZIONI TIMEZONE PER OROLOGIO#include<Asyncwebconfig..h>// biblioteca per la configurazione#include<EspasyncWebserver..h>// server web asynchron#include<Fauxmosp..h>// interfaccia per Alexa// Pins utilizzato per LED e relè#definePinrelais.D1.#definePienamenteD2.#definePinhale.D3.#definePinfull.D4.#defineLvlfull.300#defineLlvlempty.600#defineFuso orarioTz_europe_berlin.#defineRiconnettere300// secondi per attendere ricollegare dopo la disconnessione// modulo per la configurazione, JSON formattatoCordaparametro="[""{""'Nome': 'SSID',""" Etichetta ":" Nome della WLAN ",""'Tipo':"+Corda(Testo di input)+",""'predefinito':''""},""{""'Nome': 'PWD',""'Etichetta': 'WLAN PASSWORD',""'Tipo':"+Corda(Inserire password)+",""'predefinito':''""},""{""'Nome': 'Alexaname',""'Etichetta': 'Nome per Alexa',""'Tipo':"+Corda(Testo di input)+",""'Default': 'Christmas Tree'""},""{""'Nome': 'NTPServer',""'Etichetta': 'server NTP',""'Tipo':"+Corda(Testo di input)+",""'Default': 'pool.ntp.org'""},""{""'Nome': 'showlevel',""'Etichetta': 'Mostra il livello dell'acqua", ""'Tipo':"+Corda(Inputcheckbox.)+",""'Default': '1'""},""{""'Nome': 'Userimer',""'Etichetta': usa 'timer',""'Tipo':"+Corda(Inputcheckbox.)+",""'Default': '0'""},""{""'Nome': 'Avvio',""'Etichetta': 'tempo facoltativo',""'Tipo':"+Corda(Inputime.)+",""'Default': '18: 30 '""},""{""'Nome': 'stoptime',""" Etichetta ": 'tempo di spegnimento',""'Tipo':"+Corda(Inputime.)+",""'Default': '23: 00 '""}""]";costanteCharHtml.[]Progmem.=" \ N"" \ n"" \ n"" \ n"" \ N"" \ n"" Configurazione Titolo> \ N"" \ n""Corpo {\ n""Colore di sfondo: # ECC361; \ N""Fammon-family: Arial, Helvetica, Sans-Serif; \ N""Colore: # 000000; \ n""Dimensioni del carattere: 12pt; \ n""Larghezza: 320px; \ n""} \ n"".Tivitel {\ n""Peso del font: grassetto; \ n""Testo Align: Center; \ n""Larghezza: 100 %%; \ N""Imbottitura: 5 px; \ n""} \ n"". Linea {\ n""Testo Align: Center; \ n""} \ n"".Btn {\ n""Larghezza: 150 px; \ n""Raggio di confine: 10px; \ n""Colore di sfondo:% s; \ n""} \ n""Immagine {\ n""Larghezza: 320px; \ n""Opacità:% f; \ n""} \ n"".full, .half, .empty {\ n""Larghezza: 30px; \ n""Altezza: 30px; \ n""Raggio di confine: 15px; \ n""Border: 2px solido nero; \ n""Display: blocco in linea; \ n""} \ n"".full {\ n""Colore di sfondo:% s; \ n""Margin-Sinistro: 86px; \ n""} \ n"".half {\ n""Colore di sfondo:% s; \ n""Margin-Sinistro: 18px; \ n""} \ n"".empty {\ n""Colore di sfondo:% s; \ n""Margin-Sinistro: 18px; \ n""} \ n"".Showlevel {\ n""Visibilità:% s; \ n""} \ n"".conf {\ n""Colore di sfondo: lightgray, \ n""Border: 2px solido nero; \ n""Larghezza: 150 px; \ n""Imbottitura: 1 px 0px 1px 0px; \ n""Testo Align: Center; \ n""Testo-decorazione: nessuno; \ n""Display: blocco in linea; \ n""Border-Radius: 15px; \ n""Margine-Top: 10px; \ n""Cursore: puntatore; \ n""}\n"" Style> \ N"" head> \ n"" \ n""