Sommario:

Temperatura HRV a OpenHAB tramite ESP8266 (esempio di codice seriale!): 3 passaggi
Temperatura HRV a OpenHAB tramite ESP8266 (esempio di codice seriale!): 3 passaggi

Video: Temperatura HRV a OpenHAB tramite ESP8266 (esempio di codice seriale!): 3 passaggi

Video: Temperatura HRV a OpenHAB tramite ESP8266 (esempio di codice seriale!): 3 passaggi
Video: Honda HR-V Verificando água do radiador e do reservatório 2024, Dicembre
Anonim
Temperatura HRV a OpenHAB tramite ESP8266 (esempio di codice seriale!)
Temperatura HRV a OpenHAB tramite ESP8266 (esempio di codice seriale!)
Temperatura HRV a OpenHAB tramite ESP8266 (esempio di codice seriale!)
Temperatura HRV a OpenHAB tramite ESP8266 (esempio di codice seriale!)
Temperatura HRV a OpenHAB tramite ESP8266 (esempio di codice seriale!)
Temperatura HRV a OpenHAB tramite ESP8266 (esempio di codice seriale!)

HRV - Da wireless a OpenHAB

Questa istruzione è specifica per coloro che dispongono di un sistema HRV (riscaldamento e ricircolo di ventilazione), sebbene parti del circuito stampato, configurazione openhab o codice Arduino (come la lettura di dati seriali TTL) potrebbero essere utili per i propri progetti o servire bene per l'apprendimento. Si presume che tu abbia una ragionevole conoscenza dell'IDE Arduino e di cosa sia un chip ESP8266.

introduzione

Quanto segue descrive come costruire un ESP8266 che si connette a un sistema HRV e invia le temperature del tetto e della casa, la temperatura del pannello di controllo e la velocità della ventola tramite messaggi MQTT a OpenHAB. Questo è progettato per funzionare con una scheda ESP8266-01 (anche se dovrebbe funzionare con qualsiasi versione ESP8266 3.3V) Se si dispone di un sistema di tipo HRV simile di un fornitore alternativo, sarà necessario determinare se i dati vengono inviati come seriale TTL e in tal caso, con quale struttura vengono inviati i dati.

OpenHAB e Mosquitto

Il codice ESP8266 è stato scritto specificamente per funzionare con OpenHAB (software di automazione domestica open source) e un broker MQTT come Mosquitto (un protocollo di tipo di sottoscrizione/pubblicazione di messaggistica che è leggero e ottimo per la comunicazione tra dispositivi) Non lasciare che i nomi o gli acronimi ti spaventano, sono davvero abbastanza semplici da usare una volta che ne sai come funzionano. Utilizzo OpenHAB su un NTC C. H. I. P (computer US $ 9) tuttavia molte persone usano un Raspberry Pi o simili. Questo tutorial presuppone che tu abbia implementato OpenHAB (se hai bisogno di aiuto per configurare OpenHAB, segui questo eccellente articolo dal sito web makeuseof) Devi anche scaricare e installare Mosquitto (broker MQTT) e il relativo collegamento OpenHAB. Puoi installarlo altrove sulla tua rete, tuttavia la maggior parte delle persone lo installa sulla stessa macchina di OpenHAB per mantenerlo semplice.

Per installare Mosquitto, segui questo link quindi seleziona il tipo di dispositivo che stai utilizzando e segui le istruzioni. Poiché C. H. I. P esegue Debian (Jessie), puoi seguire le istruzioni Raspberry Pi se stai utilizzando C. H. I. P per il tuo dispositivo di automazione domestica (nota anche che è meglio riconfigurare CHIP per l'avvio dalla CLI. Ci sono istruzioni per questo qui)

Una volta che OpenHAB e Mosquitto sono in esecuzione, è necessario preparare l'IDE Arduino per ESP8266 e il codice. Innanzitutto, è necessario aggiungere la libreria "PubSubClient". Nell'IDE di Arduino, dal menu vai su Schizzo, Includi libreria, Gestisci librerie Nella casella di ricerca del filtro, digita PubSubClient quindi evidenzia il risultato della ricerca e fai clic su Installa (al momento della scrittura, l'ultima versione è 2.6.0) è inoltre necessario aggiungere la scheda ESP8266 all'IDE Arduino che può essere eseguita seguendo le istruzioni qui

Cosa mi dà questo?

Come affermato in precedenza, questo progetto ti consentirà di visualizzare il tetto del pannello di controllo HRV, la casa, le temperature del pannello di controllo e la velocità della ventola nella GUI di OpenHAB (in tempo reale!). Le immagini mostrano come appare dal mio iPhone, oltre ai grafici che hai otterrà perforando le diverse temperature.

Per ottenere i grafici, dovrai anche installare e configurare il collegamento RRD4J (questo è molto semplice) Questo ti permetterà di fare clic su "Casa" o "Tetto" e ottenere una cronologia delle temperature HRV per ciascuno nel passato ora, giorno o settimana (o più a lungo, se si modifica la configurazione in base alle proprie esigenze) Le immagini mostrate sono in gradi centigradi, e chiaramente è inverno nell'emisfero australe quando ho realizzato questo!

Inoltre, ho creato una vista OpenHAB che mostra un confronto tra la temperatura esterna (fornita dal componente aggiuntivo vincolante Meteo, nel mio caso utilizzando Wunderground) rispetto alle temperature del tetto e della casa facendo clic sull'opzione "Controllo" (l'immagine mostra il grafico con casa, tetto e temperatura esterna tracciati). Ho intenzione di utilizzare questi dati nelle regole per accendere gli apparecchi di riscaldamento secondo necessità. Aggiungi semplicemente l'elemento Meteo all'URL della tua immagine nel file della mappa del sito e includilo nello stesso grafico (es: …items=houseTemp, roofTemp, weatherTemp…)

Passaggio 1: parti necessarie / assemblaggio

Parti necessarie / assemblaggio
Parti necessarie / assemblaggio
Parti necessarie / assemblaggio
Parti necessarie / assemblaggio
Parti necessarie / assemblaggio
Parti necessarie / assemblaggio

Avrai bisogno delle seguenti parti

  • Uno splitter RJ11 (questo divide il segnale dal controller nel tetto, al pannello di controllo e all'ESP8266)
  • Alcuni cavi a nastro e una spina RJ11 (per far passare i cavi dallo splitter a ESP8266)
  • ESP8266-01 (altre versioni da 3,3 V dovrebbero funzionare)
  • Convertitore di livello logico TTL (per modificare i dati da 5V -> 3.3V)
  • Regolatore di tensione AMS1117 3.3V (o simile, per cambiare la tensione da HRV 5V -> 3.3V per alimentare ESP8266)
  • 1N5817 diodo schottky (per qualche motivo questo ha aiutato a fermare il ripristino del pannello di controllo HRV all'accensione dell'ESP)
  • Resistore da 10K ohm (resistore pullup tra regolatore di tensione 3.3 e ESP CH_PD)
  • Condensatore 10V 10uF (o simile, per appianare e stabilizzare la potenza in ingresso da HRV)
  • Condensatore 10V 1uF (o simile, per livellare e stabilizzare la potenza in uscita verso ESP)
  • Pulsante di scorrimento opzionale per programmare l'ESP (altrimenti, è necessario tirare manualmente GPIO0 su GND per programmare)
  • Un adattatore FTDI (per programmare l'ESP, converte USB in seriale)

Assemblare secondo lo schema

L'immagine della breadboard mostra come devono essere assemblate le parti. Si noti che ci sono 6 pin che scendono dal cavo a nastro dall'unità di controllo HRV nel soffitto:

I pin 1 e 6 sono 5V VCC

I pin 2 e 5 sono GND

I pin 3 e 4 sono dati.

È necessario utilizzare solo i pin 1, 2, 3 e 6 (1 e 6 VCC alimenta ESP8266 e il lato alto del convertitore logico TTL, 2 è una massa comune e 3 è per la lettura dei dati seriali TTL)

Lo splitter di cui hai bisogno sarà solo uno splitter RJ11, assicurati solo che sia uno splitter in cui i pin siano dritti (ad esempio: il pin 1 va al pin 1, il pin 2 al pin 2 e così via) Nota che i pin femmina extra (come mostrato nelle immagini) servono per collegare un FTDI per riprogrammare l'ESP in un secondo momento e l'interruttore mostrato lo mette in modalità "programmazione". Questi sono facoltativi, ma consigliati (ad esempio: se cambi la password WiFi poiché l'AP WiFi e la password sono programmati nel codice, che dovrai caricare una volta che il tuo ESP8266 è costruito)

Passaggio 2: caricamento del codice e test

Caricamento del codice e test
Caricamento del codice e test
Caricamento del codice e test
Caricamento del codice e test
Caricamento del codice e test
Caricamento del codice e test
Caricamento del codice e test
Caricamento del codice e test

Modifiche al codice

Link per il download alternativo al codice Arduino QUI

Apri nell'IDE Arduino, assicurati che la scheda ESP sia installata così come PubSubClient e di aver selezionato la scheda ESP8266 (Strumenti, Scheda, Scheda ESP8266 generica) Modifica il codice e cambia il nome e la password dell'AP WiFi e l'indirizzo IP di il tuo broker MQTT (queste sono le uniche cose che dovresti cambiare) come mostrato di seguito. Fai clic sul pulsante "Verifica" per assicurarti che venga compilato correttamente, quindi assicurati che sia selezionata la porta COM corretta (Strumenti, Porta) e carica il codice sul tuo ESP8266. Ci sono molti articoli in giro su come farlo, non reinventerò la ruota qui.

// Wifi

const char* ssid = "your_wifi_ssid_here"; const char* password = "tua_password_wifi_qui"; // Indirizzo IP del broker MQTT MQTT_SERVER(192, 168, 222, 254);

Test MQTT

Per i test puoi lasciare il tuo adattatore FTDI collegato e aprire il monitor seriale nell'IDE di Arduino, dovresti vedere i messaggi che stampano le informazioni sulla temperatura nella console. Se è necessario risolvere i messaggi MQTT in arrivo dall'ESP8266 al proprio broker MQTT, sul server Mosquitto eseguire uno dei seguenti comandi per iscriversi ai messaggi in arrivo:

mosquitto_sub -d -t openhab/hrv/status

Dovresti vedere i messaggi PUBLISH in entrata provenienti da ESP8266 ogni 30 secondi circa con il numero "1" (che significa "Sono vivo") Se vedi "0" costanti (o niente) allora non c'è comunicazione. Quando vedi il numero 1 in arrivo, significa che ESP8266 sta comunicando con il broker MQTT (cerca "MQTT Last Will and Testament" per ulteriori informazioni su come funziona, o vedi questo post di blog davvero interessante)

Ora puoi tenere traccia dei dati sulla temperatura e sulla velocità della ventola, iscriviti a uno dei seguenti. Tuttavia, tieni presente che il codice invia i dati sulla temperatura solo se alcuni dati sono cambiati. Tiene traccia dell'ultima temperatura, velocità della ventola, ecc. dati che sono stati inviati, quindi potresti non vedere le informazioni in arrivo immediatamente.

mosquitto_sub -d -t openhab/hrv/tettotemp

mosquitto_sub -d -t openhab/hrv/housetemp

mosquitto_sub -d -t openhab/hrv/controltemp

mosquitto_sub -d -t openhab/hrv/fanspeed

Suggerimento: iscriviti alla temperatura del pannello di controllo sopra, quindi premi il pulsante della temperatura sul pannello di controllo stesso, dovresti vedere la nuova impostazione della temperatura entrare.

Quando si arriva a saldare questo, un PCB da 3 cm x 7 cm si adatta perfettamente alla scatola da incasso dietro il pannello di controllo HRV. Consiglierei di farlo solo se si tratta di una scatola da incasso in plastica poiché una scatola di metallo potrebbe interferire con i segnali Wifi o eventualmente cortocircuitare le connessioni sulla scheda PCB. In alternativa, puoi stampare una custodia 3D in plastica per montare la scheda.

Passaggio 3: modifiche OpenHAB

Configurazione OpenHAB

Le modifiche richieste a OpenHAB sono le seguenti:

file "oggetti":

/* HRVNumber hrvStatus "HRV Status [MAP(status.map):%d]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/status:state:default]" }Numero houseTemp "House [%.1f C]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/housetemp:state:default]" }Numero houseTemp_Chart_Period "Chart Period"Numero roofTemp "Tetto [%.1f C]" (gHRV) { mqtt=" <[mqttbroker:openhab/hrv/rooftemp:state:default]" }Number roofTemp_Chart_Period "Chart Period"Number controlTemp "Control [%.1f C]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/controltemp: state:default]" }String fanSpeed "Fan Speed [%s]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/fanspeed:state:default]" }*/

file "mappa del sito":

Frame label="HRV Temperature" {Text item=roofTemp {Frame { Switch item=roofTemp_Chart_Period label="Period" mapping=[0="Ora", 1="Giorno", 2="Settimana"] Url immagine="https://localhost:8080/rrdchart.png" refresh=6000 visibilità=[roofTemp_Chart_Period==0, roofTemp_Chart_Period=="Non inizializzato"] Image url="https://localhost:8080/rrdchart.png" refresh=30000 visibilità= [roofTemp_Chart_Period==1] Image url="https://localhost:8080/rrdchart.png" refresh=30000 visibilità=[roofTemp_Chart_Period==2] } } Text item=houseTemp { Frame { Switch item=houseTemp_Chart_Period label="Period " mapping=[0="Ora", 1="Giorno", 2="Settimana"] Url immagine="https://localhost:8080/rrdchart.png" refresh=6000 visibilità=[houseTemp_Chart_Period==0, houseTemp_Chart_Period =="Non inizializzato"] URL immagine="https://localhost:8080/rrdchart.png" refresh=30000 visibilità=[houseTemp_Chart_Period==1] URL immagine="https://localhost:8080/rrdchart.png" refresh =30000 visibilità=[houseTemp_Chart_Period==2] } } Text item=controlTemp { Frame { Switch item=Combin ed_Chart_Period label="Periodo" mappings=[0="Ora", 1="Giorno", 2="Settimana"] Url immagine="https://localhost:8080/rrdchart.png" refresh=6000 visibilità=[Combined_Chart_Period ==0, Combined_Chart_Period=="Non inizializzato"] Url immagine="https://localhost:8080/rrdchart.png" refresh=30000 visibilità=[Combined_Chart_Period==1] Url immagine="https://localhost:8080/ rrdchart.png" refresh=30000 visibilità=[Combined_Chart_Period==2] } } Elemento di testo=fanSpeed }

Sono incluse icone extra per OpenHAB (fare clic con il tasto destro e salvare le immagini)

Salva questi file nella cartella..\OpenHAB Home\webapps\images sul tuo server OpenHAB

Consigliato: