Sommario:

Monitor di temperatura e umidità - Arduino Mega + Ethernet W5100: 5 passaggi
Monitor di temperatura e umidità - Arduino Mega + Ethernet W5100: 5 passaggi

Video: Monitor di temperatura e umidità - Arduino Mega + Ethernet W5100: 5 passaggi

Video: Monitor di temperatura e umidità - Arduino Mega + Ethernet W5100: 5 passaggi
Video: Utilizzare il modulo Ethernet ENC28j60 con Arduino - Video 629 2024, Luglio
Anonim
Monitor di temperatura e umidità - Arduino Mega + Ethernet W5100
Monitor di temperatura e umidità - Arduino Mega + Ethernet W5100

Modulo 1 - FLAT - hardware:

  • Arduino Mega 2560
  • Wiznet W5100 schermatura Ethernet
  • 8x sensori di temperatura DS18B20 su bus OneWire - suddivisi in 4 bus OneWire (2, 4, 1, 1)
  • 2x sensore digitale di temperatura e umidità DHT22 (AM2302)
  • 1x sensore di temperatura e umidità SENSIRION SHT21 (Si7021)
  • 1x sensore di temperatura e umidità (e pressione dell'aria) BOSCH BME280
  • Invia i dati da tutti i sensori contemporaneamente in diversi minuti (modificabile)

Modulo 2 - CALDAIA - hardware:

  • Arduino Mega 2560
  • Wiznet W5100 schermatura Ethernet
  • 16x sensori di temperatura DS18B20 su bus OneWire - suddivisi in 7 bus OneWire (2, 2, 2, 2, 2, 2, 4)
  • 8 ingressi digitali
  • 8x uscite digitali - per solenoide/relè
  • Invia i dati da tutti i sensori contemporaneamente in diversi minuti (modificabile)
  • Legge gli stati delle singole uscite dall'interfaccia web, li applica Invia gli stati degli ingressi digitali

Passaggio 1: Introduzione

introduzione
introduzione
introduzione
introduzione
introduzione
introduzione

Oggi vi presenterò in dettaglio l'ultimo progetto realizzato, piuttosto complesso in termini di funzionalità, numero di sensori utilizzati, schede Arduino, bus dati utilizzati. Il progetto si compone di due moduli. Fisicamente ogni modulo è costituito da un Arduino Mega 2560 separato, Ethernet shield W5100 (compatibile con R3) e dai sensori che utilizza.

Ciascun modulo comunica con l'interfaccia web su Internet tramite richieste HTTP POST, mediante le quali il server web vende dati o richiede alcuni dati, ad esempio tramite richiesta POST (solo modulo 2). L'interfaccia web si completa con un sistema di login, mentre tutta la famiglia può registrarsi al sistema, ognuna con il proprio nome e password. Si tratta quindi di un'applicazione multiutente in cui ogni membro della famiglia ha una panoramica di entrambi i moduli e può eseguire diverse azioni - impostazione della temperatura di riferimento, controllo del termometro, ecc. L'interfaccia Web è programmata in PHP, i dati sono archiviati nel database MySQL. Ciascuno dei moduli ha una tabella separata nel database per i dati. Considera i singoli moduli in modo più dettagliato.

Fase 2: Modulo 1 - FLAT

Modulo 1 - FLAT
Modulo 1 - FLAT
Modulo 1 - FLAT
Modulo 1 - FLAT

L'intero modulo 1-FLAT funge solo da monitor della temperatura nelle singole stanze, non ha altro ruolo. I sensori DHT22 sono stati utilizzati a lunga distanza utilizzando un resistore pull-up da 10 kohm adatto per registrare l'umidità nei bagni. Poiché BME280 e SHT21 comunicano tramite il bus I2C e questo è considerevolmente limitato in termini di lunghezza dei driver del bus, i sensori vengono utilizzati vicino ad Arduino nelle stanze.

I sensori di temperatura DS18B20 sono stati suddivisi in 4 bus, in quanto vengono utilizzati due sensori esterni, rendendo più semplice collegarli a uscite Arduino separate e, in caso di caduta del sensore, è più semplice sostituirli in quanto non ne paralizza la funzionalità del sistema.

Ad esempio, nel caso di uno di questi bus OneWire, su cui sono indicizzati 4 sensori. L'indice è legato all'indirizzo fisico dei termometri, quindi se uno dei sensori viene scambiato, il nuovo sensore può apparire sull'indice 0 - iniziale, o anche 2, 3 o ultimo. Pertanto, riducendo il numero di sensori sui bus, possiamo evitare tale complicazione che può verificarsi quando il sensore viene sostituito.

Fase 3: Modulo 2 - CALDAIA

Modulo 2 - CALDAIA
Modulo 2 - CALDAIA
Modulo 2 - CALDAIA
Modulo 2 - CALDAIA
Modulo 2 - CALDAIA
Modulo 2 - CALDAIA

Oltre alla funzione di monitor, il modulo 2 - CALDAIA ha anche un ruolo più importante, ovvero il comando di solenoidi o relè per il comando delle valvole dei radiatori. Il modulo funziona indipendentemente dal riscaldamento domestico. Il modulo non commuta riscaldamento o caldaia. Il modulo si occupa solo di aprire, chiudere la valvola del radiatore, se la temperatura ambiente è inferiore / superiore a quella impostata - il cosiddetto. temperatura di riferimento. Ad ogni ambiente in cui viene comandata la valvola del radiatore può essere assegnato un termometro specifico dal modulo 2. Oltre a questo - modalità automatica, esiste anche una modalità manuale in cui la valvola può essere aperta/chiusa manualmente dall'interfaccia web a tempo indeterminato - hard. Gli ingressi digitali possono essere utilizzati per verificare che l'elettrovalvola/relè/valvola sia stata aperta/chiusa su richiesta con Arduina - possibilità di confrontare se l'uscita è uguale all'ingresso.

Passaggio 4: quale interfaccia Web offre?

Cosa offre l'interfaccia Web?
Cosa offre l'interfaccia Web?
Cosa offre l'interfaccia Web?
Cosa offre l'interfaccia Web?

Per entrambi i moduli è prevista anche la rappresentazione grafica di un grafico a linee per lo sviluppo delle singole variabili - temperatura, umidità nelle 24 ore, 7 giorni. L'interfaccia web offre anche la visualizzazione del valore massimo/minimo, medio nelle 24 ore, 7 giorni per ogni termometro/igrometro. Nel modulo 1 è stata inizialmente considerata una coppia di sensori SHT21, ma non avendo la possibilità di modificare l'indirizzo I2C, sarebbe necessario utilizzare un multiplexer per la comunicazione di un bus da due sensori con lo stesso indirizzo I2C. In caso di dati del sensore difettosi, il nome del sensore viene memorizzato in un registro che l'amministratore di sistema può aprire in qualsiasi momento per riparare il bus OneWire e sostituire, ad esempio, il sensore difettoso.

Nei programmi Arduino è stato implementato il watchdog, che in caso di inizializzazione errata, "congelamento", un altro errore si riavvia in sicurezza e all'inizio del programma disattiva tutte le uscite fino a stabilire la connessione all'interfaccia web, dove è completamente sincronizzato in termini di output, che successivamente applica.

Altri progetti che puoi trovare su: https://arduino.php5.sk?lang=en Fai una donazione per altri esempi:

Consigliato: