Sådan laver du din egen smarte termostat

 

Smart Termostat er en avanceret temperaturkontrolenhed til brug i hjemmet og kommercielle miljøer. Brugere kan justere temperaturindstillinger når som helst, hvor som helst og styre den eksternt via en smartphone-app eller webgrænseflade. Målet med dette projekt er at skabe en nem at bruge, brugervenlig og open source Smart Termostat, som du kan lave efter dine specifikke behov.
 

Hardwarekomponenter:

  1. Microcontroller: Arduino MKR WiFi 1010 (Microcontroller til at behandle sensordata og styre varmesystemet. Den har WiFi- og Bluetooth-funktioner).
  2. Sensorer: Fugtigheds- og temperatursensor: BME280 Fugtighed Tryk Temperatur Sensorer
  3. OLED Display: 0,96 tommer OLED SSD1306 Display I2C 128 x 64 pixels
  4. Relæmodul: 5V/12V Relæmodul, brugt som en kontakt til at styre varmesystemet.
  5. Real Time Clock: Real Time Clock RTC DS3231 I2C realtidsur (til at holde styr på præcis tid)
  6. strømforsyning: 5V/2A strømforsyningsadapter
  7. kabinet: 3D-printet (se udkast i denne note) eller retrofit-boks til at rumme komponenterne
  8. printkort
  9. breadboard og jumpere (hvis du vil køre det som prototype og eventuelt udvide det)
  10. specialfremstillet printkort (design det ved hjælp af KiCad EDA og print det via Eurocircuits)

Softwarekrav:

  1. IDE: Arduino IDE (du kan bruge enhver IDE, du ønsker, så længe du kan uploade kode til Arduino)
  2. Programmering: Du behøver kun grundlæggende kendskab til assembly og konfiguration. Hvis du vil udvide projektet, kan erfaring med ovenstående teknologier være nyttig.
  3. Arduino: C++
  4. Database: SQL (MariaDB)
  5. Front-end: TypeScript (Angular17 front-end)
  6. Backend: TypeScript (Node.js, Express)
I de fleste varmesystemer styrer termostaten varmeren ved at lukke (kortslutte) kontakterne for at fuldføre kredsløbet og aktivere varmeren. Denne termostat fungerer efter samme princip, ved at bruge et relæ til at lukke kredsløbet, og hvis din nuværende termostat fungerer på denne måde, kan du også bruge denne termostat.

Trin 1: 3D-printet kabinet  

Vi har designet et simpelt kabinet for at få termostaten til at se mere sofistikeret ud og mere som en typisk termostat. Du kan downloade vores STL-fil og importere den i Tinkercad eller andet 3D-modelleringssoftware. Du kan justere det efter din smag og derefter 3D-printe det. Vores design er meget grundlæggende og kan bruges som prototype, så du kan forbedre og tilpasse det efter behov.
 
Hvis du vil bruge PCB'en (vi designede) til at passe præcist i kassen, kan du eksportere PCB-layoutet fra KiCad som en SVG-fil og importere det i dit 3D-modelleringssoftware. På den måde kan du designe kassen omkring PCB'en og sikre, at alt passer. Thermostat_Case.stl
 

Trin 2: Print PCB'en


Trin 3: Saml hardware og mikrocontrolleropsætning


Mikrocontrolleropsætning

Start samlingsprocessen ved at opsætte mikrocontrolleren. Monter den på et breadboard, så den nemmere kan prototypetestes og tilsluttes. Tilslut mikrocontrolleren til en strømkilde, og sørg for, at den modtager en stabil 5V/2A forsyning. Denne indledende opsætning danner grundlaget for termostaten og leverer den nødvendige kontrol- og processorkraft til de resterende komponenter.

Sensorintegration

Integrer derefter temperatur- og fugtighedssensorerne med mikrocontrolleren. Afhængigt af hvilken type sensor du vælger, skal du følge det specifikke ledningsdiagram for korrekt tilslutning. For den Adafruit-sensor, der er nævnt ovenfor, kan du finde den på deres hjemmeside. Sensoren vil levere realtidsdata om den omgivende temperatur og fugtighed, som mikrocontrolleren vil bruge til at justere varmesystemet. Fastgør sensoren på et sted, hvor den nøjagtigt kan måle rumtemperaturen.

OLED-displayforbindelse

Tilslut OLED-displayet til mikrocontrolleren, og sørg for, at benene er konfigureret korrekt. Displayet vil blive brugt som brugergrænseflade til at vise den aktuelle temperatur, indstillet temperatur og anden relevant information. Korrekt tilslutning af displayet er afgørende for klar og præcis visning.

Relæ Modulopsætning

Opsæt relæmodulet, der skal styre varmesystemet baseret på temperaturmålinger og brugerinput. Tilslut relæet til mikrocontrolleren for at sikre, at det kan håndtere belastningen fra varmesystemet. Relæet fungerer som en kontakt, og mikrocontrolleren kan tænde eller slukke det for at regulere temperaturen. Test relæets funktion for at sikre, at det reagerer korrekt på kontrolsignaler fra mikrocontrolleren.

Trin 4: Programmering af termostaten

Hovedloop-funktionen kører kontinuerligt og udfører følgende opgaver:
  1. sender periodisk et heartbeat til serveren.
  2. hvis heartbeat er succesfuld, sætter den sensor-dataanmodningen i kø.
  3. behandler alle ventende anmodninger i køen.
  4. forsøger at genoprette forbindelsen, hvis det er i fallback-tilstand, og der er gået tilstrækkelig tid.
  5. styrer varme-relæet baseret på temperaturen, mens det er i fallback-tilstand.
  6. opdaterer displayet periodisk.
Opsætning af udviklingsmiljøet
Opsæt udviklingsmiljøet på din computer ved at installere den nødvendige software. Hvis du bruger Arduino, skal du downloade og installere Arduino IDE. For Raspberry Pi skal du opsætte det passende udviklingsmiljø. Sørg for, at du har alle de biblioteker, du har brug for til temperatursensoren, LCD-displayet og eventuelle andre komponenter, du bruger. Denne opsætning giver dig de værktøjer, du har brug for til at skrive, uploade og fejlfinde din termostatkode.
 
Uploader kode til Arduino MKR WiFi 1010
Tilslutter Arduino MKR 1010 WiFi
  1. Tilslut boardet: Tilslut Arduino MKR 1010 WiFi til din computer med USB-kablet.
  2. Vælg Motherboard: Gå til Værktøjer->Motherboard og vælg Arduino MKR WiFi 1010.
  3. Vælg Port: Gå til Værktøjer->Port og vælg den port, der svarer til det board, du forbinder til (f.eks. COM3, /dev/ttyUSB0).
Forbereder en Sketch
  1. Åbn Sketch: Åbn Arduino-sketchfilen (.ino) i Arduino IDE.
  2. Konfigurer Sketch: Tilpas sketchen, så den matcher din server-IP, WiFi-legitimationsoplysninger og andre indstillinger.
For at uploade en sketch
  1. Verificer Sketch: Klik på flueben-ikonet øverst til venstre i Arduino IDE for at kompilere og verificere koden. Dette sikrer, at der ikke er syntaksfejl.
  2. Upload Sketch: Klik på højre pil-ikonet ved siden af fluebenet for at uploade koden til Arduino MKR 1010 WiFi. IDE'en vil kompilere koden igen og derefter uploade den til bundkortet.
Overvågning af Serial Output
  1. Tænd for Serial Monitor: Gå til Værktøjer->Serial Monitor for at tænde serial monitor.
  2. Indstil baudrate: Sørg for, at baudraten nederst i serial monitor er sat til 9600 for at matche Serial.begin(9600); indstillingen i koden.
  3. Se output: Du bør se output fra Arduino, som inkluderer debug-beskeder og sensoraflæsninger.
Justering af konfigurationen
Du skal justere WiFi- og serverkonfigurationerne, så de passer til dine indstillinger. Disse konfigurationer skal tilpasses serverens IP-adresse og WiFi-netværk.
Valgfrit: Justering af driftsvariabler
Disse variabler og konstanter styrer driftsstatus, såsom forbindelsesstatus, varme status og tidsintervaller for opgaverne. FALLBACK_TEMPERATURE bruges, når serveren ikke kan nås, og termostaten kører i fallback-tilstand. HEARTBEAT_INTERVAL bestemmer, hvor ofte Arduino sender heartbeats til serveren.
 

Trin 5: Opsætning af database, server og front-end

Database
For at Smart Thermostat-serveren kan fungere korrekt, har den brug for en database. Til dette bruger vi MariaDB.
Find information om, hvordan du opsætter dette her: GitHub Repositories - Database Setup
 
Frontend
Frontend'en er udviklet med Angular17 og giver brugeren mulighed for at se data og konfigurere temperaturindstillinger.
Find information om, hvordan du opsætter dette her: GitHub Repository - Frontend Settings
 
Backend
Udviklet med Node.js og Express, backend'en leverer API'er til sensordata, autentificering og varmekontrol.
Find information om, hvordan du opsætter dette her: GitHub Repository - Backend Setup
 

Trin 6: Test og kalibrering

Indledende test
Tænd for termostaten og udfør en indledende test for at sikre, at alle komponenter fungerer korrekt. Kontroller, at OLED-displayets output er korrekt, og verificer, at temperatursensoren giver nøjagtige aflæsninger. Test relæmodulet ved at indstille forskellige temperaturgrænser og observere, om relæet aktiverer eller deaktiverer varmesystemet i overensstemmelse hermed. Denne indledende testfase er afgørende for at identificere eventuelle problemer tidligt og foretage nødvendige justeringer.
Kalibrering
Kalibrer termostaten for at sikre nøjagtig og pålidelig drift. Sammenlign sensoraflæsninger med et pålideligt termometer for at verificere nøjagtigheden. Juster om nødvendigt koder eller sensorpositioner for bedre at tilnærme de faktiske temperaturer. Sørg for, at relæerne aktiveres og deaktiveres ved den korrekte temperaturindstilling for præcis styring af varmesystemet. Denne kalibreringsproces vil optimere termostatens ydeevne og sikre, at den opfylder dine krav.
Mere information følger: Byg din egen smarte termostat 

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

Sidebjælke

Seneste indlæg

Denne sektion indeholder i øjeblikket ikke noget indhold. Tilføj indhold til denne sektion ved hjælp af sidepanelet.

Tilmeld dig vores nyhedsbrev

Få de seneste oplysninger om vores produkter og særlige tilbud.