Sommario:
- Passaggio 1: descrizione del termostato Ethernet
- Passaggio 2: interfaccia web
- Passaggio 3: pagine HTML in esecuzione su server Web, schemi, codice sorgente
Video: Termostato Ambiente - Arduino + Ethernet: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
In termini di hardware, il progetto utilizza:
- Arduino Uno / Mega 2560
- Schermo Ethernet Wiznet W5100 / Modulo Ethernet Wiznet W5200-W5500
- Sensore di temperatura DS18B20 sul bus OneWire
- Relè SRD-5VDC-SL-C utilizzato per la commutazione della caldaia
Passaggio 1: descrizione del termostato Ethernet
Arduino è una pratica piattaforma incorporata che può essere utilizzata, ad esempio, per costruire un termostato ambiente, che mostreremo oggi. Il termostato è accessibile dalla rete LAN in cui si trova, mentre è dotato di un'interfaccia web che permette di configurare tutti gli elementi del termostato. L'interfaccia web viene eseguita direttamente su Arduino in modalità web server. Il server web consente l'esecuzione di diverse pagine HTML indipendenti, che possono essere informative o anche funzionali. Il server web funziona sulla porta 80 -
Il relè elettromagnetico SRD-5VDC-SL-C, utilizzato nel progetto, consente di commutare fino a 10A a 230V - potenza 2300W. In caso di commutazione di un circuito CC (carico) è possibile commutare 300 W (10 A a 30 V CC). In alternativa, il relè SSR OMRON G3MB-202P è completamente compatibile con lo schema elettrico, che è adatto solo per carichi non induttivi ed esclusivamente per circuiti CA. Potenza di commutazione massima 460W (230V, 2A). Il consumo di Arduino con Ethernet shield e altre periferiche è al livello di 100-120mA con il relè aperto. Quando è chiuso, sotto i 200 mA con alimentazione a 5 V.
Passaggio 2: interfaccia web
L'interfaccia web del termostato consente:
- Visualizza la temperatura in tempo reale dal sensore DS18B20
- Visualizza lo stato del relè in tempo reale con la modifica dinamica dell'uscita a pagina
- Modificare la temperatura target (di riferimento) nell'intervallo da 5 a 50 ° C con un passo di 0,25 ° C
- Modificare l'isteresi nell'intervallo da 0 a 10 ° C con un passo di 0,25 ° C
L'interfaccia web è progettata per ospitare schermi più grandi e più piccoli. È reattivo, supporta schermi widescreen ad alta definizione, ma anche dispositivi mobili. L'interfaccia utilizza stili CSS importati del framework Bootstrap da un server CDN esterno, che carica il dispositivo lato client quando si apre una pagina in esecuzione su Arduino. Poiché Arduino Uno ha una memoria limitata, può eseguire solo pagine di pochi kB. Importando stili CSS da un server esterno, ridurrà le prestazioni e il carico di memoria di Arduino. L'implementazione software (per Arduine Uno) utilizza il 70% di memoria flash (32kB - Bootloader 4kB) e il 44% di memoria RAM (2kB).
Le parti statiche di una pagina web (intestazione e piè di pagina del documento HTML, collegamento CSS Bootstrap, meta tag, intestazione della risposta HTTP, tipo di contenuto, modulo e altro) sono archiviate direttamente nella memoria flash di Arduino, il che può ridurre significativamente la quantità di RAM utilizzata per l'utente -contenuto generato. Il web server è quindi più stabile e può gestire la multiconnessione di più dispositivi in rete contemporaneamente.
Al fine di mantenere i valori impostati anche dopo un'interruzione di corrente, questi vengono memorizzati nella memoria EEPROM dell'Arduino. Temperatura di riferimento per offset 10, isteresi per offset 100. Ciascuno dei valori occupa un massimo di 5B nella memoria EEPROM. Il limite di trascrizione EEPROM è al livello di 100.000 trascrizioni. I dati vengono sovrascritti solo quando viene inviato il modulo HTML. Nel caso in cui il dispositivo non abbia nulla in memoria sugli offset EEPROM citati al primo avvio, verrà eseguita la scrittura automatica con i valori di default - riferimento: 20.25, isteresi 0.25 °C
Il meta tag Refresh aggiorna l'intera pagina Arduino ogni 10 secondi. A questo punto è necessario scrivere la modifica per il termostato, altrimenti le finestre di input verranno ripristinate al refresh della pagina. Poiché la libreria Ethernet non include l'uso di un server Web asincrono, l'intera pagina deve essere riscritta. Il dato dinamico che cambia principalmente è il valore corrente dell'uscita - On/Off.
Passaggio 3: pagine HTML in esecuzione su server Web, schemi, codice sorgente
Pagine HTML in esecuzione su Arduino:
- / - pagina principale contenente il modulo, l'elenco delle uscite logiche correnti per il relè, la temperatura
- /action.html - elabora i valori dal modulo, li scrive nella memoria EEPROM, reindirizza l'utente alla pagina principale
- /get_data/ - distribuisce i dati su temperatura attuale, temperatura di riferimento e isteresi a una terza parte (computer, microcontrollore, altro client…) in formato JSON
Esiste anche una versione estesa di questo termostato che include:
- Modalità manuale per relè (tempo illimitato, hard ON/OFF)
- Timer watchdog
- Disponibili più sensori, ad esempio: SHT21, SHT31, DHT22, BME280, BMP280 e altri
- Modalità di raffreddamento
- Controllo e configurazione tramite RS232/UART indipendente da Ethernet
- Controllo della temperatura PID per termostato
- Possibilità di utilizzare piattaforme ESP8266, ESP32 per termostato
L'implementazione del programma per il progetto è disponibile all'indirizzo: https://github.com/martinius96/termostat-ethernet/ L'implementazione contiene programmi per l'indirizzo IPv4 statico/dinamico assegnato allo shield Ethernet.
Il termostato è previsto solo per temperature interne! (sopra 0°C), a cui è adattata la logica del sistema. È possibile sostituire un termostato ambiente esistente con un termostato, è possibile sostituire temporaneamente un termostato in un frigorifero, mantenere una temperatura costante in un terrario e simili.
Consigliato:
Configura Raspberry Pi 4 tramite laptop/pc utilizzando il cavo Ethernet (senza monitor, senza Wi-Fi): 8 passaggi
Configura Raspberry Pi 4 tramite laptop/pc utilizzando il cavo Ethernet (senza monitor, senza Wi-Fi): in questo lavoreremo con Raspberry Pi 4 Modello B di 1 Gb di RAM per la configurazione. Raspberry-Pi è un computer a scheda singola utilizzato per scopi didattici e progetti fai-da-te con un costo accessibile, richiede un'alimentazione di 5V 3A.Sistemi operativi come
Come realizzare un cavo Ethernet: 5 passaggi
Come realizzare un cavo Ethernet: Ciao! Oggi impareremo come creare il tuo cavo Ethernet standard del settore! Quale sarà in grado di farti risparmiare denaro quando si tratta di aver bisogno di cavi! Allora perché sono qualificato per insegnarti? Bene, sono un professionista IT, ho passato gli ultimi 2
Iniettore PoE Ethernet 10/100M fai da te: 6 passaggi
Iniettore PoE Ethernet 10/100M fai da te: qui realizzeremo un semplice inettore PoE adatto per Ethernet 10/100M, che potrebbe anche essere alimentato direttamente con le batterie
MCP23017 Controllo GPIO tramite Ethernet: 5 passaggi
MCP23017 Controllo GPIO via Ethernet: controlla MCP23017 IO-extender via ethernet utilizzando Sensor Bridge e MCP23017 break out board. Comandi inviati da script Python, URL del browser o qualsiasi sistema in grado di comunicare HTTP. Può essere integrato a Home Assistant per la domotica. I cavi sono
Lettura dell'umidità con sensore Ethernet: 3 passaggi
Lettura dell'umidità con sensore Ethernet: Scopo del progetto era quello di poter leggere le letture di umidità e temperatura attraverso la rete ethernet, in modo che i risultati potessero essere utilizzati per l'automazione domestica (Home Assistant ecc. Il sensore T9602 aveva il miglior fattore di forma, con grande prestazioni all'ar