Hoe je je eigen slimme thermostaat maakt
Hardwarecomponenten:
- Microcontroller: Arduino MKR WiFi 1010 (Microcontroller om sensordata te verwerken en het verwarmingssysteem te regelen. Heeft WiFi- en Bluetooth-mogelijkheden).
- Sensoren: Vochtigheids- en temperatuursensor: BME280 Vochtigheidsdruk Temperatuursensoren
- OLED-scherm: 0,96 inch OLED SSD1306-scherm I2C 128 x 64 pixels
- Relaismodule: 5V/12V-relaismodule , wordt gebruikt als schakelaar om het verwarmingssysteem te regelen.
- Real Time Clock: Real Time Clock RTC DS3231 I2C real time clock (voor het nauwkeurig bijhouden van de tijd)
- voeding: 5V/2A voedingsadapter
- behuizing: 3D-geprint (zie ontwerp in deze notitie) of retrofit-doos om componenten te huisvesten
- printplaat
- breadboard en jumpers (als je het als prototype wilt gebruiken en eventueel wilt uitbreiden)
- op maat gemaakte printplaat (ontwerp deze met KiCad EDA en print deze met Eurocircuits)
Softwarevereisten:
-
IDE: Arduino IDE (je kunt elke IDE gebruiken die je leuk vindt, zolang je maar code naar Arduino kunt uploaden)
-
Programmeren: U heeft alleen een basiskennis van montage en configuratie-tuning nodig. Als u het project wilt uitbreiden, kan enige ervaring met de bovenstaande technologieën nuttig zijn.
-
Arduino: C++
-
Database: SQL (MariaDB)
-
Front-end: TypeScript (Angular17 front-end)
-
Backend: TypeScript (Node.js, Express)
Stap 1: 3D-geprinte behuizing
Stap 2: Print de PCB
Stap 3: Monteer de hardware en microcontrollerinstallatie
Microcontroller Configuratie
Start het assemblageproces door de microcontroller in te stellen. Monteer het op een breadboard, zodat er een prototype van kan worden gemaakt en gemakkelijker kan worden aangesloten. Sluit de microcontroller aan op een stroombron en zorg ervoor dat deze een stabiele 5V/2A-voeding ontvangt. Deze initiële opstelling vormt de basis van de thermostaat en levert de nodige regel- en verwerkingskracht voor de overige componenten.
Sensorintegratie
Integreer vervolgens de temperatuur- en vochtigheidssensoren met de microcontroller. Afhankelijk van het type sensor dat u kiest, volgt u het specifieke bedradingsschema om ze correct aan te sluiten. Voor de hierboven genoemde Adafruit-sensor kun je deze vinden op hun website. De sensor levert realtime gegevens over de omgevingstemperatuur en luchtvochtigheid, die de microcontroller zal gebruiken om het verwarmingssysteem aan te passen. Bevestig de sensor op een plaats waar deze de kamertemperatuur nauwkeurig kan meten.
OLED-displayverbinding
Sluit het OLED-display aan op de microcontroller en zorg ervoor dat de pinnen correct zijn geconfigureerd. Het display zal worden gebruikt als gebruikersinterface om de huidige temperatuur, ingestelde temperatuur en andere relevante informatie weer te geven. Een juiste aansluiting van het display is van cruciaal belang voor een duidelijke en nauwkeurige weergave.
Relay Module-instelling
Stel de relaismodule in die het verwarmingssysteem regelt op basis van temperatuurmetingen en gebruikersinvoer. Sluit het relais aan op de microcontroller om ervoor te zorgen dat deze de belasting van het verwarmingssysteem aankan. Het relais fungeert als schakelaar en de microcontroller kan het in- of uitschakelen om de temperatuur te regelen. Test de werking van het relais om er zeker van te zijn dat deze correct reageert op besturingssignalen van de microcontroller.
Stap 4: De thermostaat programmeren
-
stuurt periodiek een hartslag naar de server.
-
Als de hartslag succesvol is, wordt het verzoek om sensorgegevens in de wachtrij geplaatst.
-
verwerkt alle openstaande aanvragen in de wachtrij.
-
probeert opnieuw verbinding te maken als het zich in de fallback-modus bevindt en er voldoende tijd is verstreken.
-
regelt het verwarmingsrelais op basis van de temperatuur in de fallback-modus.
-
werk de weergave periodiek bij.
-
Sluit het bord aan: Sluit de Arduino MKR 1010 WiFi aan op uw computer met behulp van de USB-kabel.
-
Selecteer Moederbord: Ga naar Extra->Moederbord en selecteer Arduino MKR WiFi 1010.
-
Selecteer Poort: Ga naar Extra->Poorten en selecteer de poort die overeenkomt met het bord waarmee u verbinding maakt (bijvoorbeeld COM3, /dev/ttyUSB0).
-
Open Sketch: Open het Arduino-schetsbestand (.ino) in de Arduino IDE.
-
Schets configureren: Pas de schets aan zodat deze overeenkomt met uw server-IP, WiFi-inloggegevens en andere instellingen.
-
Controleer de schets: Klik op het vinkje in de linkerbovenhoek van de Arduino IDE om de code te compileren en te verifiëren. Dit zorgt ervoor dat er geen syntaxisfouten optreden.
-
Schets uploaden: Klik op het pijltje naar rechts naast het vinkje om de code naar de Arduino MKR 1010 WiFi te uploaden. de IDE compileert de code opnieuw en uploadt deze vervolgens naar het moederbord.
-
Seriële monitor inschakelen: Ga naar Extra->Seriële monitor om de seriële monitor in te schakelen.
-
Baudrate instellen: Zorg ervoor dat de baudrate aan de onderkant van de seriële monitor is ingesteld op 9600, zodat deze overeenkomt met Serial.begin(9600); instelling in de code.
-
Uitvoer bekijken: U zou uitvoer van de Arduino moeten zien, inclusief foutopsporingsberichten en sensormetingen.
Stap 5: Het opzetten van de database, server en front-end
Stap 6: Testen en Kalibratie