Hur du gör din egen smarta termostat

 

Smart Termostat är en avancerad temperaturkontrollenhet för användning i hem och kommersiella miljöer. Användare kan justera temperaturinställningarna när som helst, var som helst och hantera den på distans via en smartphone-app eller webbgränssnitt. Målet med detta projekt är att skapa en lättanvänd, användarvänlig och öppen källkod Smart Termostat som du kan skapa efter dina specifika behov.
 

Hårdvarukomponenter:

  1. Mikrokontroller: Arduino MKR WiFi 1010 (Mikrokontroller för att bearbeta sensordata och styra värmesystemet. Den har WiFi- och Bluetooth-funktioner).
  2. Sensorer: Fukt- och temperatursensor: BME280 fukttryck temperatur-sensorer
  3. OLED-skärm: 0,96 tum OLED SSD1306-skärm I2C 128 x 64 pixlar
  4. Relämodul: 5V/12V relämodul, används som en strömbrytare för att styra värmesystemet.
  5. Real Time Clock: Real Time Clock RTC DS3231 I2C realtidsklocka (för att hålla exakt tid)
  6. strömförsörjning: 5V/2A strömadapter
  7. hölje: 3D-printat (se utkast i denna anteckning) eller eftermonteringslåda för att rymma komponenter
  8. kretskort
  9. kopplingsdäck och hopkopplingskablar (om du vill köra det som en prototyp och eventuellt utöka det)
  10. anpassad tryckt kretskort (designa det med KiCad EDA och tryck det med Eurocircuits)

Mjukvarukrav:

  1. IDE: Arduino IDE (du kan använda vilken IDE du vill så länge du kan ladda upp kod till Arduino)
  2. Programmering: Du behöver bara grundläggande kunskaper i assembly och konfigurationsjustering. Om du vill utöka projektet kan viss erfarenhet av ovanstående teknologier vara till hjälp.
  3. Arduino: C++
  4. Databas: SQL (MariaDB)
  5. Front-end: TypeScript (Angular17 front-end)
  6. Backend: TypeScript (Node.js, Express)
I de flesta värmesystem styr termostaten värmaren genom att stänga (kortsluta) kontakterna för att slutföra kretsen och aktivera värmaren. Denna termostat fungerar på samma princip, med hjälp av ett relä för att stänga kretsen, och om din nuvarande termostat fungerar på detta sätt kan du använda denna termostat också.

Steg 1: 3D-printat hölje  

Vi designade ett enkelt hölje för att få termostaten att se mer sofistikerad ut och mer som en typisk termostat. Du kan ladda ner vår STL-fil och importera den till Tinkercad eller någon annan 3D-modelleringsprogramvara. Du kan justera den efter din smak och sedan 3D-printa den. Vår design är mycket grundläggande och kan användas som en prototyp så att du kan förbättra och anpassa den efter behov.
 
Om du vill använda PCB:n (vi designade) för att passa exakt i höljet kan du exportera PCB-layouten från KiCad som en SVG-fil och importera den till din 3D-modelleringsprogramvara. På så sätt kan du designa höljet runt PCB:n och se till att allt passar. Thermostat_Case.stl
 

Steg 2: Skriv ut PCB


Steg 3: Montera hårdvara och inställning av mikrokontroller


Inställning av mikrokontroller

Starta monteringsprocessen genom att ställa in mikrokontrollern. Montera den på ett kopplingsdäck så att den kan prototypas och anslutas enklare. Anslut mikrokontrollern till en strömkälla och se till att den får en stabil 5V/2A strömförsörjning. Denna initiala inställning utgör grunden för termostaten och ger nödvändig kontroll och processorkraft för de återstående komponenterna.

Sensorintegration

Integrera sedan temperatur- och fuktighetssensorerna med mikrokontrollern. Beroende på vilken typ av sensor du väljer, följ den specifika kopplingsschemat för att ansluta dem korrekt. För Adafruit-sensorn som nämns ovan kan du hitta den på deras webbplats. Sensorn kommer att ge realtidsdata om omgivningens temperatur och luftfuktighet, vilket mikrokontrollern använder för att justera värmesystemet. Fäst sensorn på en plats där den kan mäta rumstemperaturen noggrant.

Anslutning av OLED-skärm

Anslut OLED-skärmen till mikrokontrollern och se till att stiften är korrekt konfigurerade. Skärmen kommer att användas som ett användargränssnitt för att visa aktuell temperatur, inställd temperatur och annan relevant information. Korrekt anslutning av skärmen är avgörande för en tydlig och korrekt visning.

Relä Modulinställning

Ställ in relämodulen som ska styra värmesystemet baserat på temperaturavläsningar och användarinmatningar. Anslut reläet till mikrokontrollern för att säkerställa att det kan hantera belastningen från värmesystemet. Reläet fungerar som en strömbrytare och mikrokontrollern kan slå på eller av det för att reglera temperaturen. Testa reläets funktion för att säkerställa att det svarar korrekt på styrsignaler från mikrokontrollern.

Steg 4: Programmera termostaten

Huvudloopfunktionen körs kontinuerligt och utför följande uppgifter:
  1. skickar periodiskt en hjärtslagssignal till servern.
  2. om heartbeat är framgångsrik, lägger till sensor-dataförfrågan i kön.
  3. bearbetar alla väntande förfrågningar i kön.
  4. försöker återansluta om fallback-läge är aktivt och tillräcklig tid har förflutit.
  5. styr värmereläet baserat på temperaturen när fallback-läge är aktivt.
  6. uppdaterar displayen periodiskt.
Ställer in utvecklingsmiljön
Ställ in utvecklingsmiljön på din dator genom att installera nödvändig programvara. Om du använder Arduino, ladda ner och installera Arduino IDE. För Raspberry Pi, konfigurera lämplig utvecklingsmiljö. Se till att du har alla bibliotek du behöver för temperatursensorn, LCD-skärmen och andra komponenter du använder. Denna setup ger dig verktygen för att skriva, ladda upp och felsöka din termostatkod.
 
Laddar upp kod till Arduino MKR WiFi 1010
Ansluter Arduino MKR 1010 WiFi
  1. Anslut kortet: Anslut Arduino MKR 1010 WiFi till din dator med USB-kabeln.
  2. Välj Moderkort: Gå till Verktyg->Moderkort och välj Arduino MKR WiFi 1010.
  3. Välj Port: Gå till Verktyg->Portar och välj den port som motsvarar den anslutna enheten (t.ex. COM3, /dev/ttyUSB0).
Förbereder en Sketch
  1. Öppna Sketch: Öppna Arduino-skissfilen (.ino) i Arduino IDE.
  2. Konfigurera Sketch: Ändra skissen för att matcha din server-IP, WiFi-uppgifter och andra inställningar.
För att ladda upp en skiss
  1. Verifiera skissen: Klicka på bockmarkeringen i det övre vänstra hörnet av Arduino IDE för att kompilera och verifiera koden. Detta säkerställer att det inte finns några syntaxfel.
  2. Ladda upp skiss: Klicka på högerpilen bredvid bockmarkeringen för att ladda upp koden till Arduino MKR 1010 WiFi. IDE:n kommer att kompilera koden igen och sedan ladda upp den till moderkortet.
Övervaka serien Utdata
  1. Slå på seriemonitor: Gå till Verktyg->Seriemonitor för att slå på seriemonitorn.
  2. Ställ in Baud Rate: Se till att baudraten längst ner i seriemonitorn är inställd på 9600 för att matcha Serial.begin(9600); inställningen i koden.
  3. Visa utdata: Du bör se utdata från Arduino, som inkluderar felsökningsmeddelanden och sensormätningar.
Justera konfigurationen
Du behöver justera WiFi- och serverkonfigurationerna för att matcha dina inställningar. Dessa konfigurationer måste anpassas till serverns IP-adress och WiFi-nätverk.
Valfritt: Justering av driftvariabler
Dessa variabler och konstanter hanterar driftstatus, såsom anslutningsstatus, värmestatus och tidsintervaller för uppgifterna. FALLBACK_TEMPERATURE används när servern är otillgänglig och termostaten körs i fallback-läge. HEARTBEAT_INTERVAL bestämmer hur ofta Arduino skickar hjärtslag till servern.
 

Steg 5: Ställa in databasen, servern och front-end

Databas
För att Smart Thermostat-servern ska fungera korrekt behöver den en databas. För detta använder vi MariaDB.
Hitta information om hur du ställer in detta här: GitHub Repositories - Databasinställning
 
Frontend
Frontend utvecklades med Angular17 och låter användaren visa data och konfigurera temperaturinställningar.
Hitta information om hur du ställer in detta här: GitHub Repository - Frontend Settings
 
Backend
Utvecklad med Node.js och Express, tillhandahåller backend API:er för sensordata, autentisering och värmestyrning.
Hitta information om hur du ställer in detta här: GitHub Repository - Backend Setup
 

Steg 6: Testning och kalibrering

Initialtest
Slå på termostaten och utför ett initialt test för att säkerställa att alla komponenter fungerar korrekt. Kontrollera att OLED-displayens utdata är korrekt och verifiera att temperatursensorn ger exakta avläsningar. Testa relämodulen genom att ställa in olika temperaturgränser och observera om reläet aktiverar eller avaktiverar värmesystemet därefter. Denna initiala testfas är avgörande för att tidigt identifiera eventuella problem och göra nödvändiga justeringar.
Kalibrering
Kalibrera termostaten för att säkerställa noggrann och pålitlig funktion. Jämför sensorns avläsningar med en pålitlig termometer för att verifiera noggrannheten. Justera vid behov koder eller sensorpositioner för att bättre motsvara faktiska temperaturer. Se till att reläerna aktiveras och avaktiveras vid rätt temperaturinställning för exakt styrning av värmesystemet. Denna kalibreringsprocess optimerar termostatens prestanda och säkerställer att den uppfyller dina krav.
Mer information kommer att följa: Bygg din egen smarta termostat 

Lämna en kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade *

Sidopanel

Senaste inlägg

Denna sektion innehåller för närvarande inget innehåll. Lägg till innehåll i denna sektion med hjälp av sidofältet.

Registrera dig för vårt nyhetsbrev

Få den senaste informationen om våra produkter och specialerbjudanden.