Inhoudsopgave:
Video: HRV-temperatuur naar OpenHAB via ESP8266 (voorbeeld met seriecode!): 3 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:20
HRV - Draadloos naar OpenHAB
Deze instructable is specifiek voor diegenen die een HRV-systeem (verwarmingsrecirculatieventilatie) hebben - hoewel delen van de printplaat, openhab-configuratie of Arduino-code (zoals het lezen van TTL-seriële gegevens) handig kunnen zijn voor uw eigen projecten of goed kunnen dienen om te leren. Het gaat er wel van uit dat je een redelijke kennis hebt van de Arduino IDE en wat een ESP8266-chip is.
Invoering
Hieronder wordt beschreven hoe u een ESP8266 bouwt die verbinding maakt met een HRV-systeem en dak- en huistemperaturen, temperatuur van het bedieningspaneel en ventilatorsnelheid via MQTT-berichten naar OpenHAB stuurt. Dit is ontworpen om te werken met een ESP8266-01-kaart (hoewel zou moeten werken met elke ESP8266 3.3V-versie) Als u een soortgelijk HRV-systeem van een andere leverancier heeft, moet u bepalen of gegevens als TTL-serieel worden verzonden en zo ja, in welke structuur de gegevens worden verzonden.
OpenHAB en Mosquitto
De ESP8266-code is speciaal geschreven om te werken met OpenHAB (open source domoticasoftware) en een MQTT-makelaar zoals Mosquitto (een protocol voor het abonneren/publiceren van berichten dat lichtgewicht is en geweldig voor communicatie tussen apparaten) Laat de namen of acroniemen maken je bang, ze zijn echt heel eenvoudig te gebruiken als je eenmaal weet hoe ze werken. Ik gebruik OpenHAB op een NTC C. H. I. P (US $ 9 computer), maar veel mensen gebruiken een Raspberry Pi of iets dergelijks. Deze tutorial gaat ervan uit dat je OpenHAB hebt geïmplementeerd (als je hulp nodig hebt bij het opzetten van OpenHAB, volg dan dit uitstekende artikel van de makeuseof-website). Je moet ook Mosquitto (MQTT-broker) en gerelateerde OpenHAB-binding downloaden en installeren. U kunt dit elders op uw netwerk installeren, maar de meeste mensen installeren dit gewoon op dezelfde machine als OpenHAB om het eenvoudig te houden.
Om Mosquitto te installeren, volgt u deze link, selecteert u het type apparaat dat u gebruikt en volgt u de instructies. Omdat C. H. I. P Debian (Jessie) draait, kun je de Raspberry Pi-instructies volgen als je C. H. I. P gebruikt voor je Home Automation-apparaat (merk ook op dat het het beste is om CHIP opnieuw te configureren om op te starten vanaf de CLI. Er zijn hier instructies voor)
Zodra OpenHAB en Mosquitto draaien, moet je de Arduino IDE voorbereiden voor de ESP8266 en code. Eerst moet u de bibliotheek "PubSubClient" toevoegen. Ga in de Arduino IDE vanuit de menu's naar Schets, Bibliotheek opnemen, Bibliotheken beheren Typ PubSubClient in het filterzoekvak, markeer het zoekresultaat en klik op Installeren (op het moment van schrijven is de nieuwste versie 2.6.0). moet ook het ESP8266-bord aan de Arduino IDE toevoegen, wat kan worden gedaan door de instructies hier te volgen
Wat levert dit mij op?
Zoals eerder vermeld, kunt u met dit project het dak, het huis, de temperatuur van het bedieningspaneel en de ventilatorsnelheid van uw HRV-bedieningspaneel bekijken in de OpenHAB GUI (in realtime!) De afbeeldingen laten zien hoe het eruit ziet vanaf mijn iPhone, plus de grafieken die u zal krijgen door in de verschillende temperaturen te boren.
Om de grafieken te krijgen, moet u ook de RRD4J-binding installeren en configureren (dit is heel eenvoudig) Hiermee kunt u op 'Huis' of 'Dak' klikken en een geschiedenis van HRV-temperaturen krijgen voor elk in het verleden uur, dag of week (of langer, als je de configuratie aanpast) De getoonde afbeeldingen zijn in Celsius, en het was duidelijk winter op het zuidelijk halfrond toen ik dit maakte!
Daarnaast heb ik een OpenHAB-weergave gemaakt die een vergelijking toont tussen de buitentemperatuur (geleverd door de add-on Weather binding, in mijn geval met Wunderground) versus de dak- en huistemperaturen door op de optie 'Controle' te klikken (afbeelding toont de grafiek met huis, dak en buitentemperatuur uitgezet). Ik ben van plan deze gegevens in regels te gebruiken om verwarmingstoestellen indien nodig aan te zetten. Voeg eenvoudig het item Weer toe aan uw afbeeldings-URL in het sitemapbestand en neem dit op in dezelfde grafiek (bijvoorbeeld: …items=houseTemp, roofTemp, weatherTemp…)
Stap 1: benodigde onderdelen / montage
Je hebt de volgende onderdelen nodig:
- Een RJ11 splitter (deze splitst het signaal van de controller in het dak, naar het bedieningspaneel en de ESP8266)
- Sommige lintkabel en een RJ11-stekker (om draden van splitter naar ESP8266 te leiden)
- ESP8266-01 (andere 3.3V-versies zouden moeten werken)
- TTL-logica-niveau-omzetter (om gegevens te wijzigen van 5V -> 3,3V)
- AMS1117 3.3V spanningsregelaar (of vergelijkbaar, om de spanning te veranderen van HRV 5V -> 3.3V om ESP8266 van stroom te voorzien)
- 1N5817 schottky-diode (om de een of andere reden hielp dit om te voorkomen dat het HRV-bedieningspaneel opnieuw werd ingesteld bij het inschakelen van de ESP)
- 10K ohm weerstand (trekweerstand tussen 3.3 spanningsregelaar en ESP CH_PD)
- 10V 10uF condensator (of vergelijkbaar, om inkomend vermogen van HRV glad te strijken en te stabiliseren)
- 10V 1uF condensator (of vergelijkbaar, om uitgaande stroom naar ESP glad te strijken en te stabiliseren)
- Optionele schuifknop om de ESP te programmeren (anders moet GPIO0 handmatig naar GND worden getrokken om te programmeren)
- Een FTDI-adapter (om de ESP te programmeren, converteert USB naar serieel)
Assembleer volgens het schema
De afbeelding van het breadboard laat zien hoe de onderdelen moeten worden gemonteerd. Merk op dat er 6 pinnen zijn die naar beneden komen via de lintkabel van de HRV-controller in het plafond:
Pinnen 1 en 6 zijn 5V VCC
Pinnen 2 en 5 zijn GND
Pinnen 3 en 4 zijn gegevens.
U hoeft alleen pinnen 1, 2, 3 en 6 te gebruiken (1 en 6 VCC voeden ESP8266 en de hoge kant van TTL-logica-omzetter, 2 is een gemeenschappelijke aarde en 3 is voor het lezen van TTL-seriële gegevens)
De splitter die je nodig hebt zal gewoon een RJ11-splitter zijn, zorg er gewoon voor dat het een splitter is waar de pinnen recht doorheen zitten (bijv.: pin 1 gaat naar pin 1, pin 2 naar pin 2 enzovoort) Merk op dat de extra vrouwelijke pinnen (zoals getoond in de afbeeldingen) zijn voor het aansluiten van een FTDI voor het later herprogrammeren van de ESP, en de getoonde schakelaar zet hem in de "programmeermodus". Deze zijn optioneel, maar worden aanbevolen (bijvoorbeeld: als u uw WiFi-wachtwoord wijzigt, aangezien de WiFi-AP en het wachtwoord hard in de code zijn geprogrammeerd, die u moet uploaden zodra uw ESP8266 is gebouwd)
Stap 2: Code uploaden en testen
Codewijzigingen
Alternatieve downloadlink naar Arduino-code HIER
Open in de Arduino IDE, zorg ervoor dat het ESP-bord evenals de PubSubClient is geïnstalleerd en dat u het ESP8266-bord hebt geselecteerd (Tools, Board, Generic ESP8266 Board) Bewerk de code en wijzig de WiFi AP-naam en het wachtwoord en het IP-adres van uw MQTT-makelaar (dit zijn de enige dingen die u zou moeten wijzigen), zoals hieronder wordt weergegeven. Klik op de knop 'Verifiëren' om er zeker van te zijn dat het goed compileert, zorg er vervolgens voor dat de juiste COM-poort is geselecteerd (Tools, Port) en upload de code naar uw ESP8266. Er zijn genoeg artikelen over hoe dit te doen, ik zal hier niet het wiel opnieuw uitvinden.
// Wifi
const char* ssid = "your_wifi_ssid_here"; const char* wachtwoord = "your_wifi_password_here"; // MQTT Broker IP-adres MQTT_SERVER (192, 168, 222, 254);
MQTT-testen
Voor het testen kunt u uw FTDI-adapter aangesloten laten en de seriële monitor openen in de Arduino IDE, u zou berichten moeten zien die de temperatuurinformatie in de console afdrukken. Als u problemen moet oplossen met inkomende MQTT-berichten van de ESP8266 naar uw MQTT-broker, voer dan op de Mosquitto-server een van de volgende opdrachten uit om u te abonneren op de inkomende berichten:
mosquitto_sub -d -t openhab/hrv/status
U zou elke 30 seconden inkomende PUBLISH-berichten moeten zien binnenkomen van de ESP8266 met het nummer "1" (wat betekent "Ik leef"). Als u constante "0's" (of helemaal niets) ziet, is er geen communicatie. Zodra je de nummer 1 ziet binnenkomen, betekent dit dat de ESP8266 communiceert met de MQTT-makelaar (zoek op "MQTT Last Will and Testament" voor meer informatie over hoe dit werkt, of bekijk dit echt goede blogbericht)
U kunt nu temperatuur- en ventilatorsnelheidsgegevens volgen, abonneer u op een van de volgende. Houd er echter rekening mee dat de code de temperatuurgegevens alleen verzendt als er gegevens zijn gewijzigd. Het houdt de laatste verzonden gegevens over temperatuur, ventilatorsnelheid enz. bij, dus het kan zijn dat u de informatie niet meteen ziet binnenkomen.
mosquitto_sub -d -t openhab/hrv/rooftemp
mosquitto_sub -d -t openhab/hrv/housetemp
mosquitto_sub -d -t openhab/hrv/controltemp
mosquitto_sub -d -t openhab/hrv/fanspeed
Tip: abonneer je op de temperatuur van het bedieningspaneel hierboven, druk vervolgens op de temperatuurknop op het bedieningspaneel zelf, je zou de nieuwe temperatuurinstelling moeten zien binnenkomen.
Als je eraan toe bent om dit vast te solderen, past een PCB van 3 cm x 7 cm mooi in de inbouwdoos achter het HRV-bedieningspaneel. Ik zou aanraden dit alleen te doen als het een plastic spoeldoos is, omdat een metalen doos wifi-signalen kan verstoren of mogelijk verbindingen op de printplaat kan kortsluiten. Als alternatief kunt u een plastic 3D-behuizing afdrukken om het bord in te monteren.
Stap 3: OpenHAB-wijzigingen
OpenHAB-configuratie
De vereiste OpenHAB-wijzigingen zijn als volgt:
'items'-bestand:
/* HRVNummer hrvStatus "HRV-status [MAP(status.map):%d]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/status:state:default]" }Nummer houseTemp "Huis [%.1f C]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/housetemp:state:default]" }Nummer houseTemp_Chart_Period "Grafiekperiode"Nummer roofTemp "Roof [%.1f C]" (gHRV) { mqtt=" <[mqttbroker:openhab/hrv/rooftemp:state:default]" }Nummer roofTemp_Chart_Period "Grafiekperiode"Nummer 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]" }*/
'sitemap'-bestand:
Frame label="HRV Temperature" {Text item=roofTemp {Frame { Switch item=roofTemp_Chart_Period label="Period" mappings=[0="Hour", 1="Day", 2="Week"] Afbeelding url="https://localhost:8080/rrdchart.png" refresh=6000 zichtbaarheid=[roofTemp_Chart_Period==0, roofTemp_Chart_Period=="Niet geïnitialiseerd"] Afbeelding url="https://localhost:8080/rrdchart.png" refresh=30000 zichtbaarheid= [roofTemp_Chart_Period==1] Afbeelding url="https://localhost:8080/rrdchart.png" refresh=30000 zichtbaarheid=[roofTemp_Chart_Period==2] } } Text item=houseTemp { Frame { Switch item=houseTemp_Chart_Period label="Period " mappings=[0="Hour", 1="Day", 2="Week"] Afbeelding url="https://localhost:8080/rrdchart.png" refresh=6000 zichtbaarheid=[houseTemp_Chart_Period==0, houseTemp_Chart_Period =="Niet-geïnitialiseerd"] Afbeelding url="https://localhost:8080/rrdchart.png" refresh=30000 zichtbaarheid=[houseTemp_Chart_Period==1] Afbeelding url="https://localhost:8080/rrdchart.png" vernieuwen =30000 zichtbaarheid=[houseTemp_Chart_Period==2] } } Tekst item=controlTemp { Frame { Switch item=Combineren ed_Chart_Period label="Periode" mappings=[0="Hour", 1="Day", 2="Week"] Afbeelding url="https://localhost:8080/rrdchart.png" refresh=6000 zichtbaarheid=[Combined_Chart_Period ==0, Combined_Chart_Period=="Geïnitialiseerd"] Afbeelding url="https://localhost:8080/rrdchart.png" refresh=30000 zichtbaarheid=[Combined_Chart_Period==1] Afbeelding url="https://localhost:8080/ rrdchart.png" refresh=30000 zichtbaarheid=[Combined_Chart_Period==2] } } Text item=fanSpeed }
Extra iconen voor OpenHAB zijn inbegrepen (rechts klikken en afbeeldingen opslaan)
Sla deze bestanden op in de map..\OpenHAB Home\webapps\images op uw OpenHAB-server
Aanbevolen:
Complete gids voor het gebruik van een bodemvochtsensor met praktisch voorbeeld: 7 stappen
Complete handleiding voor het gebruik van een bodemvochtsensor met praktisch voorbeeld: u kunt deze en andere verbazingwekkende tutorials lezen op de officiële website van ElectroPeak. Overzicht In deze tutorial leert u hoe u een bodemvochtsensor gebruikt. Er worden ook praktische voorbeelden gegeven om u te helpen de code onder de knie te krijgen.Wat u gaat leren: Hoe bodem
TCP/IP-verbinding via GPRS: gegevens naar de server verzenden met de SIM900A-module: 4 stappen:
TCP/IP-verbinding via GPRS: gegevens naar de server verzenden met de SIM900A-module: In deze zelfstudie ga ik u vertellen hoe u gegevens naar de TCP-server verzendt met de sim900-module. Ook zullen we zien hoe we gegevens van server naar client kunnen ontvangen (GSM-module)
Voorbeeld van een kluisje met Arduino Matrix-toetsenbord 4x4: 6 stappen
Voorbeeld van een kluisje met Arduino Matrix-toetsenbord 4x4: 2 manieren om een toetsenbord met 16 drukknoppen te beheren met een minimum aan pinnen
Timers van 8051 met knipperende led Voorbeeld Deel-1: 3 stappen
Timers van 8051 met knipperende led Voorbeeld Deel 1: In deze tutorial ga ik je vertellen hoe je timers van 8051 maakt. Hier zullen we het hebben over timer 0 in modus 1. In de volgende tutorial zullen we ook andere modi bespreken
Draadloos opladen toevoegen aan elke telefoon: de LG-V20 als voorbeeld gebruiken: 10 stappen (met afbeeldingen)
Draadloos opladen toevoegen aan elke telefoon: de LG-V20 als voorbeeld gebruiken: als je net als ik bent en van plan bent je telefoon langer dan 2 jaar te houden, dan moet je telefoon een vervangbare batterij hebben, omdat de batterij maar ongeveer 2 jaar meegaat, en En draadloos opladen, zodat je de oplaadpoort niet verslijt.Nu is de gemakkelijke s