Sommario:
- Passaggio 1: parti necessarie / assemblaggio
- Passaggio 2: caricamento del codice e test
- Passaggio 3: modifiche OpenHAB
Video: Temperatura HRV a OpenHAB tramite ESP8266 (esempio di codice seriale!): 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:06
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
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
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:
Configurazione seriale HC-05 tramite Bluetooth: 10 passaggi
Configurazione seriale HC-05 tramite Bluetooth: durante l'utilizzo di dispositivi Android e moduli SPP Bluetooth HC-05 per alcuni progetti Arduino, volevo controllare e modificare le velocità di trasmissione dell'HC-05 e altri parametri senza collegarmi a una porta USB del PC. Questo si è trasformato in questo. I moduli HC-05 collegano seriale e Blu
Arduino autonomo 3.3V con orologio esterno da 8 MHz programmato da Arduino Uno tramite ICSP/ISP (con monitoraggio seriale!): 4 passaggi
Arduino autonomo 3,3 V con orologio esterno a 8 MHz programmato da Arduino Uno tramite ICSP / ISP (con monitoraggio seriale!): Obiettivi: costruire un Arduino autonomo che funzioni a 3,3 V da un orologio esterno da 8 MHz. Per programmarlo tramite ISP (noto anche come ICSP, programmazione seriale in-circuit) da un Arduino Uno (in esecuzione a 5V) Per modificare il file del bootloader e masterizzare il
Visualizza il monitor seriale tramite Bluetooth: 4 passaggi
Visualizza monitor seriale tramite Bluetooth: questo progetto utilizza un modulo Bluetooth HC-05 per sostituire una connessione cablata tradizionale utilizzata per la visualizzazione del monitor seriale. Materiali: Arduino - https://amzn.to/2DLjxR2 Breadboard - https://amzn.to /2RYqiSK Ponticelli - https://amzn.to/2RYqiSK H
Come caricare il programma o il codice in Arduino Pro Mini utilizzando il cavo convertitore seriale UART CH340: 4 passaggi
Come caricare il programma o il codice in Arduino Pro Mini utilizzando il cavo convertitore seriale UART CH340: I cavi seriali USB TTL sono una gamma di cavi convertitori da USB a seriale che forniscono connettività tra le interfacce USB e UART seriale. È disponibile una gamma di cavi che offrono connettività a 5 volt, 3,3 volt o livelli di segnale specificati dall'utente con
Sensore riflettente a infrarossi TCRT5000 - Come funziona e circuito di esempio con codice: 6 passaggi
Sensore riflettente a infrarossi TCRT5000 - Come funziona e circuito di esempio con codice: Ciao, di recente ho usato un sacco di TCRT5000 durante la progettazione e la realizzazione della mia macchina per lo smistamento delle monete. Puoi vederlo qui: Per fare questo ho dovuto conoscere il TCRT5000 e dopo averlo capito ho pensato di creare una guida per chiunque altro fosse look