Trenger du litt hjelp til å følge med på om du må legge på ved i peisen, men har ikke helt kunnskapen til å programmere sensorer for å overvåke peisen? Frykt ikke, litt low-code kan være løsningen din når kulda trenger på.

Koselig med peis!

Jeg har en peis i stua, helt manuell og foreløbig helt blottet for elektronikk. Det er litt befriende, men av og til skulle jeg ønske meg litt hjelp til å bli minnet på når det er på tide å legge på mere ved. Jeg ønsker altså å få en varsel når temperaturen i peisen går fra en høy temperatur til en lavere temperatur.

Sentralt i dette prosjektet står Home-Assistant. Det er et system for å styre og overvåke alt som lar seg styre av hjemmeautomasjoner i huset mitt. Fargerike julelys, vanlige lys, stikkontakter, varmekabler, temperatursensorer og lignende. Og snart en peis. Den andre sentrale komponenten er ESP32. Det er en liten chip som ofte brukes i hjemmeautomasjoner og hobbyprosjekter fordi den er enkel å programmere mot fysiske sensorer.

For å få til dette må jeg 1) måle temperaturen med en sensor som er koblet til esp32, og sende den til home-assistant 2) lage en “automasjon” i home-assistant som sender meg en varsel når det er på tide å legge inn mere ved i peisen.

 Esp32          →        Home-
 + sensor   temperatur   Assistant

Utstyrsliste

Gjennomføringen av dette prosjektet krever at vi må på en handletur på aliexpress eller lignende nettbutikker som selger det vi trenger:

  • En kjørende instans av home-assistant (f.eks på en raspberry pi)
  • Temperatursensor: MAX6675 Module + K Type Thermocouple
  • Breadboard (koblingsbrett) + ledninger (f.eks denne)
  • Usb-c strømforsyning
  • En kompatibel esp32 med usb-c kobling, f.eks seeed_xiao_esp32c3 . Pass på å få en variant med ferdig loddede bein hvis du ikke vil lodde selv.

Hvis du ikke har dette tilgjengelig så tar det alt fra 5 dager til 3 uker fra bestilling til postkasse fra aliexpress. Det er viktig at du ikke bruker en “vanlig” temperatursensor fra andre hobbyprosjekter her. Thermocouple sensorene er laget for å tåle veldig høye temperaturer, opp mot 800 grader, mens vanlige sensorer ofte inneholder plast og vil fungere særdeles dårlig i dette prosjektet.

Low-code med esp32 og esphome

Det vanskeligste med dette prosjektet er kanskje å få koblet riktig ledning fra pins på fra sensor til pins på esp32. Dette har jeg bommet på flere ganger selv, men selv om du kobler feil så vil du mest sannsynlig ikke ødelegge chipen hvis du oppdager det innen rimelig tid. Det står tydelig på max6675 modulen hva som er SCK, CS, SO, VCC og GND og nesten like tydelig hvilke GPIO-pins som finnes på esp32-chipen.

Ferdig koblet esp32 og max6675 på et breadboard

Koblingene jeg har brukt mellom esp32 og max6675 sensoren:

MAX 6675ESP 32
CSGPIO10
SCKGPIO6
SOGPIO7
GNDGND
VCCVCC

Du må gjerne bruke andre pins på esp32, men da må du passe på at .yaml-fila lenger ned i artikkelen stemmer overens med dine koblinger.

Etter en dobbel- og trippelsjekk av koblingene plasseres temperatursensoren på en hensiktsmessig plass, slik at vi får målt temperaturen på gassen som går ut av ovnen på en best måte.

Jeg fant en variant av temperatursensoren med litt lang ledning som lar meg legge temperatursensoren oppå røykrøret til peisen. Røykrøret er det røret som går fra peisen til pipa. Ideelt sett skulle jeg gjerne målt temperaturen inni røykrøret, men min bedre halvdel synes det var en dårlig ide å borre hull i røret for å plasssere en sensor der.

Temperatursensoren er amatørmessig lagt på røykrøret isteden for å være borret inn i røret.

Gassen som kommer ut fra oven er nemlig en veldig god pekepinn på temperaturen inni peiskammeret!

Lowcode

For å lese temperaturen ut fra sensoren gjennom esp32 og sende denne informasjonen til home-assistant kreves litt kode. Men siden jeg ikke er en racer på C++ og sliter litt med å programmere en esp32, har jeg heldigvis funnet en slags lowcode løsning for å gjøre det jeg ønsker å oppnå. Løsningen i mitt tilfelle er esphome.io, en lowcode-løsning som lar meg programmere en esp32 med temperatursensor og som automatisk sender temperaturmålinger til home-assistant ved å bare skrive en .yaml fil. Man kan se på esphome som en slags bro mellom esp32 og home-assistant.

Alt av konfigurasjon for oppsettet av sensor og esp32 legges i denne .yaml filen:

  • Hvilken type esp32 vi bruker
  • Hvilke pins på esp32 er koblet til hvilke pins på temperatursensoren
  • Hvor ofte sensoren skal leses av og målingen skal sendes til home-assistant
  • Api-key for home-assistant (valgfritt)
  • Wifi navn og passord
esp32:
  framework:
    type: arduino
  board: seeed_xiao_esp32c3

sensor:
  - platform: max6675
    name: "Peis temperatur"
    cs_pin: GPIO10
    update_interval: 30s  

spi:
  clk_pin: GPIO6
  miso_pin: GPIO7

wifi:
  networks:
  - ssid: "kakemonster"
    password: "hemmelig-passord"    

logger:

api:
  encryption:
    key: <generer en key selv>

ota:
  platform: esphome

For å overføre denne konfigurasjonen til esp32 kobler jeg pcen til esp32 med en usb-c kabel og bruker terminalgrensesnittet til esphome for å laste opp programmet:

$ esphome run livingroom.yaml

(Det er mulig å gjøre denne biten med et web-grensesnitt, men siden det er varierende støtte for usb gjennom nettlesere så holder jeg en knapp på at terminalen er mer brukervennlig i dette tilfellet.)

Esphome vil nå tolke konfiguarsjonsfilen, lage kode basert på dette, kompilere og laste opp det ferdige programmet på esp32-chipen. En av de kule tingene nå er at vi kan kjøre OTA (over-the-air) oppdateringer til esp32 ved en senere anledning hvis vi trenger dette.

Etter at dette er gjort så dukker det opp en ny device i home-assistant. Og etter å ha fyrt litt i peisen får jeg en pen graf som har logget temperaturen på toppen av ovnsrøret mitt:

Temperaturen i peisen

Jeg ser tydelig at temperaturen når ca 140 grader før den dabber av. Ved nedadgående kurve så slukker ilden i peisen min ved ca 110 grader. Dette er nyttig info når jeg nå vil sette opp automatisk varsel for å legge i mere ved for å fortsette fyringen.

Automasjon i home-assistant

Home-assistant byr på en rekke automasjonsmuligheter. I all hovedsak er det bygd opp slik at man setter opp en eller flere betingelser og spesifiserer hva som skal skje når disse betingelsene er oppfylt. I mitt tilfelle skal jeg bruke en betingelse som heter “numeric trigger”. Jeg kaller automasjonen for “Peisen trenger mere ved” og spesifiserer at temperaturen skal under 120 grader for at triggeren skal kalles. Dette gjør at den kun utløses når temperaturen er på vei ned. I tillegg sier at temperaturen må ha vært under 120 i minimum 2 minutter for å unngå å få varsler flere ganger hvis temperaturen skulle variere litt når den går nedover.

Numeric trigger

I tillegg velger jeg at home-assistant skal sende meg en pen melding når dette skjer, slik at jeg kan fylle på ved for å fortsette fyringen. Og riktignok, når temperaturen går nedover etter en stund med fyring får jeg en pen varsel om å legge på mere ved for å fortsette å holde varmen oppe i peisen:

Notification om å legge i mere ved i peisen.

Det eneste som mangler nå er å få regulert spjeldet automatisk for optimalt inntak av oksygen, men det er utenfor scope for dette prosjektet. Eventuelt kan du se på hvordan den tradisjonsrike norske produsenten Jøtul gjør dette i de nye ovnene med Zensoric https://www.jotul.no/zensoric 🔥