Il controller del pool (2/4)

Nell'articolo precedente abbiamo dato una panoramica del progetto di piscina con controllo intelligente.In questa seconda parte affronteremo il pezzo di cuore, il controllore.Questo è basato su un ESP32, ma potrebbe anche essere implementato con alcune modifiche con un ESP8266.

Compito del controllore della piscina

Il controllore prenderà il controllo centrale.Misura ciclicamente le temperature dell'acqua di piscina e lo stoccaggio termico del sistema solare.Inoltre, spegnerà le pompe (filtro e riscaldamento).L'ESP è quindi sia un sensore che un attore.I dati vengono scambiati tramite WLAN tramite MQTT.

Controllore della piscina

 

Misurare le temperature

La misura della temperatura è di solito l'inizio della programmazione dei sensori IoT.Ci sono diversi esempi di questo.Spesso arrivano sensori di temperatura DHT11 o più precisamente DHT22 per l'uso.Tuttavia, dato che i sensori di temperatura nel progetto devono essere distribuiti esternamente, usiamo il sensore ad acqua stretta DS18B20Sì!Uno dei due sensori per misurare la temperatura dell'acqua della piscina, l'altro per misurare la temperatura nel tampone.

 

Misurazione della temperatura MQTT

Le temperature misurate vengono lette ogni 60-secondi utilizzando un timer e pubblicate come messaggio da MQTT.L'intervallo è un compromesso tra l'inerzia del riscaldamento dell'acqua e il debugging del programma.I valori saranno probabilmente sufficienti ogni cinque minuti, ma l'integrazione in OpenHAB rende anche il passo minuto molto più facile in seguito.Ne riparliamo più tardi.

Centrali radio di controllo

Dal momento che non vogliamo trattare direttamente con la tensione 230 Volta AC nel progetto, trasmettiamo le pompe con le prese radio.Nel caso delle prese radio ci sono alcuni che possono essere utilizzati tramite ESP con un 433 trasmettitore radio MHz Posso controllare.Un elenco di prese radio compatibili può essere trovato in Wiki! la biblioteca usata.

Struttura del circuito

Il circuito sembra così:

Con i sensori di temperatura, le resistenze a trazione con 4.7kO si incontrano tra la linea dati e la fornitura di tensione +3V VCC.

I perni dati sul ESP32 sono indicati come segue:

35; definire SOLAR DI PIN 16 // TempSensore solare
35; definire PIN DS POOL 17  // TempSensore Piscina
35; definire PIN-U RSSWITCH 18 // per il trasmettitore 433MHz

Codice sorgente del progetto

Per il progetto utilizziamo l'ambiente di sviluppo Piattaforma.io IDESì!E'cosi' che abbiamo organizzato un progetto per il consiglio d'amministrazione espa32dev.Recentemente Platform.io è diventato anche un grande Articolo pubblicato.

Il codice sorgente completo del progetto può essere trovato nel repository di GitHub dell'autore: https://github.com/stritti/smart-swimming-pool.

Biblioteche utilizzate

In questo progetto è importante ricorrere a componenti software collaudati e risolvere il più possibile tramite librerie esistenti. Per questo motivo vengono utilizzate le seguenti lib:

  • rc-switch: controllo delle prese radio
  • OneWire: supporto per i sensori I2C
  • DallasTemperatura: lettura della temperatura dei sensori
  • PubbSubClient: ricezione e invio di messaggi MQTT
  • RemoteDebug: Debug via Telnet
  • ESPBASE: Modelli per progetti IoT

Queste librerie sono memorizzate nella configurazione di Piattaforma.io (platformio.ini) e vengono caricate e integrate automaticamente da Internet al momento della compilazione.

Il programma per il controllore della piscina è basato su ESPBASE, che fornisce alcune funzioni di configurazione come scritto nel precedente articolo.All'inizio del codice vengono create alcune variabili e vengono definite le definizioni per il rivestimento di perno.

Oltre alle due funzioni setup() e loop() vengono implementate altre funzioni.Si tratta essenzialmente di ricevere e inviare messaggi MQTT e di implementare i messaggi di conseguenza.Inoltre, viene implementato un timer che legge ciclicamente i sensori di temperatura e pubblica tramite messaggi MQTT.

I dettagli

  1. In the Esecuzione-Funzione la connessione WLAN è controllata ripetutamente e, se necessario, ripristinata.Si tratta di un problem a delicato: l'ESP ha ripetutamente perso la connessione Wi-Fi e senza la riconnessione non poteva più inviare dati.
  2. La funzione Pubblica è usato per inviare messaggi MQTT.I dati vengono quindi pubblicati come messaggi JSON da una ripresa e dalla misura della temperatura.
  3. Il timer per inviare le temperature è diviso.Il motivo è che i metodi di tempistica effettivi devono essere il più breve possibile.Nell'implementazione, il timer invoca la funzione onTimer, che solo la volatile Interruttore Riduzione.Nella funzione di loop questo è controllato e l'attuale onTemperaturaQuesto metodo legge e pubblica anche la temperatura interna dell'ESP.
  4. La funzione onMQTTCallback è chiamato quando un messaggio è stato inviato ad un Topic che inizia con'pool/switch/'.Il messaggio contiene l'informazione della presa radio se accendere o spegnere.per essere spenta.Il Topic è ulteriormente diviso nel gruppo e nella codifica del dispositivo.Questo significa la codifica dell'interruttore DIP del socket trasformato in 0 e 1.Questo consente di utilizzare questa soluzione in modo flessibile altrove.

Il codice sorgente del controllore della piscina può essere trovato direttamente nel seguente file: https://github.com/stritti/smart-swimming-pool/blob/master/Pool-Controller/src/pool-control.ino

 

Prova

 

Prova

Una volta che il circuito è stato costruito e il progetto è caricato sul ESP, possiamo già testarlo.L'ESP aprirà una WLAN come punto di accesso, poiché di default non viene fornita alcuna WLAN.Se si connette con il controllore della piscina con lo smartphone, è possibile configurare la giusta WLAN.Dopo di che, il microcontrollore si riavvia automaticamente e cerca di connettersi al WLAN specificato.

Se tutto è impostato correttamente, un messaggio di stato dovrebbe essere pubblicato tramite MQTT all'inizio dell'ESP.È possibile tracciare tutti i messaggi con il seguente comando sul lampone:

 zanzara sub -h localhost -v -t#

Il codice sorgente potrebbe aver bisogno di regolare l'indirizzo IP del server MQTT.

Dopo di che, le temperature sul lampone dovrebbero essere emesse nel ciclo minuto.

In un'altra direzione possiamo attivare le prese radio inviando un messaggio adatto.Il Topic è composto da "/pool/switch/<group>/<device>".Gruppo e dispositivo sono gli interruttori di immersione della presa come 0 e 1.Il messaggio e'"ON"."OFF" mandato.

Spine

 

Come procediamo?

Questo crea le basi: possiamo leggere le temperature e spegnere i plugin.

Nel seguente articolo colleghiamo il controllore della piscina con la soluzione Smart Home openHAB e rendiamo la piscina davvero intelligente attraverso le regole.

 

Continuare a:Piscina e OpenHAB (3/4)

 

Esp-32Projekte für fortgeschritteneRaspberry piSensoriCasa intelligente

1 Kommentar

Leon

Leon

Wo kann man den Sensor für die Wassertemperatur am besten unterbringen wenn das Pool haus weit vom Pool entfernt ist und der Sensor nicht sichtbar sein soll?

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert

Post di blog consigliati

  1. Installa ESP32 ora dal gestore del consiglio di amministrazione
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - Programmazione ESP tramite WLAN