Jak zrobić własny inteligentny termostat

 

Smart Thermostat to zaawansowane urządzenie do kontroli temperatury przeznaczone do użytku w domach i środowiskach komercyjnych. Użytkownicy mogą regulować ustawienia temperatury w dowolnym czasie i miejscu oraz zarządzać nimi zdalnie za pomocą aplikacji na smartfona lub interfejsu internetowego. Celem tego projektu jest stworzenie łatwego w użyciu, przyjaznego dla użytkownika i otwartego Smart Thermostatu, który można dostosować do swoich indywidualnych potrzeb.
 

Komponenty sprzętowe:

  1. Mikrokontroler: Arduino MKR WiFi 1010 (Mikrokontroler do przetwarzania danych z czujników i sterowania systemem grzewczym. Posiada funkcje WiFi i Bluetooth).
  2. Czujniki: Czujnik wilgotności i temperatury: Czujniki wilgotności, ciśnienia i temperatury BME280
  3. Wyświetlacz OLED: Wyświetlacz OLED SSD1306 0,96 cala I2C 128 x 64 piksele
  4. Moduł przekaźnika: Moduł przekaźnika 5V/12V, używany jako przełącznik do sterowania systemem grzewczym.
  5. Zegar czasu rzeczywistego: Zegar czasu rzeczywistego RTC DS3231 I2C (do śledzenia dokładnego czasu)
  6. zasilacz: zasilacz 5V/2A
  7. obudowa: drukowana w 3D (zobacz szkic w tej notatce) lub skrzynka do modernizacji, aby pomieścić komponenty
  8. płyta obwodów drukowanych
  9. płytka stykowa i przewody połączeniowe (jeśli chcesz uruchomić to jako prototyp i ewentualnie rozbudować)
  10. niestandardowa drukowana płytka obwodów (zaprojektuj ją za pomocą KiCad EDA i wydrukuj ją za pomocą Eurocircuits)

Wymagania dotyczące oprogramowania:

  1. IDE: Arduino IDE (możesz użyć dowolnego IDE, które pozwala na przesyłanie kodu do Arduino)
  2. Programowanie: Wystarczy podstawowa znajomość asemblera i dostrajania konfiguracji. Jeśli chcesz rozbudować projekt, przydatne może być pewne doświadczenie z powyższymi technologiami.
  3. Arduino: C++
  4. Baza danych: SQL (MariaDB)
  5. Front-end: TypeScript (front-end Angular17)
  6. Backend: TypeScript (Node.js, Express)
W większości systemów grzewczych termostat steruje grzejnikiem, zamykając (zwierając) styki, aby zamknąć obwód i aktywować grzejnik. Ten termostat działa na tej samej zasadzie, wykorzystując przekaźnik do zamknięcia obwodu, a jeśli Twój obecny termostat działa w ten sposób, możesz również użyć tego termostatu.

Krok 1: Obudowa wydrukowana w 3D  

Zaprojektowaliśmy prostą obudowę, aby termostat wyglądał bardziej wyrafinowanie i bardziej jak typowy termostat. Możesz pobrać nasz plik STL i zaimportować go do Tinkercad lub innego oprogramowania do modelowania 3D. Możesz go dostosować według własnych upodobań, a następnie wydrukować w 3D. Nasz projekt jest bardzo podstawowy i może być używany jako prototyp, dzięki czemu możesz go ulepszać i dostosowywać w razie potrzeby.
 
Jeśli chcesz użyć PCB (które zaprojektowaliśmy), aby idealnie pasowało do obudowy, możesz wyeksportować układ PCB z KiCad jako plik SVG i zaimportować go do swojego oprogramowania do modelowania 3D. W ten sposób możesz zaprojektować obudowę wokół PCB i upewnić się, że wszystko pasuje. Thermostat_Case.stl
 

Krok 2: Wydrukuj PCB


Krok 3: Montaż sprzętu i konfiguracja mikrokontrolera


Konfiguracja mikrokontrolera

Rozpocznij proces montażu od ustawienia mikrokontrolera. Zamontuj go na płytce stykowej, aby można było łatwiej prototypować i łączyć. Podłącz mikrokontroler do źródła zasilania, upewniając się, że otrzymuje stabilne zasilanie 5V/2A. To początkowe ustawienie stanowi podstawę termostatu, zapewniając niezbędną kontrolę i moc przetwarzania dla pozostałych komponentów.

Integracja czujnika

Następnie zintegruj czujniki temperatury i wilgotności z mikrokontrolerem. W zależności od wybranego typu czujnika, postępuj zgodnie z odpowiednim schematem połączeń, aby je prawidłowo podłączyć. Dla czujnika Adafruit wymienionego powyżej, możesz znaleźć schemat na ich stronie internetowej. Czujnik będzie dostarczał dane w czasie rzeczywistym o temperaturze i wilgotności otoczenia, które mikrokontroler wykorzysta do regulacji systemu grzewczego. Zamocuj czujnik w miejscu, gdzie będzie mógł dokładnie mierzyć temperaturę w pomieszczeniu.

Połączenie wyświetlacza OLED

Podłącz wyświetlacz OLED do mikrokontrolera, upewniając się, że piny są poprawnie skonfigurowane. Wyświetlacz będzie używany jako interfejs użytkownika do pokazywania aktualnej temperatury, ustawionej temperatury oraz innych istotnych informacji. Prawidłowe podłączenie wyświetlacza jest kluczowe dla wyraźnego i dokładnego wyświetlania danych.

Przekaźnik Konfiguracja modułu

Skonfiguruj moduł przekaźnika, który będzie sterował systemem grzewczym na podstawie odczytów temperatury i danych wejściowych od użytkownika. Podłącz przekaźnik do mikrokontrolera, aby zapewnić, że może on obsłużyć obciążenie systemu grzewczego. Przekaźnik działa jako przełącznik, a mikrokontroler może go włączać lub wyłączać, aby regulować temperaturę. Przetestuj działanie przekaźnika, aby upewnić się, że reaguje poprawnie na sygnały sterujące z mikrokontrolera.

Krok 4: Programowanie termostatu

Główna funkcja pętli działa nieprzerwanie i wykonuje następujące zadania:
  1. okresowo wysyła sygnał kontrolny do serwera.
  2. jeśli sygnał jest poprawny, umieszcza żądanie danych czujnika w kolejce.
  3. przetwarza wszystkie oczekujące żądania w kolejce.
  4. próbuje ponownie połączyć się, jeśli jest w trybie awaryjnym i upłynął wystarczający czas.
  5. steruje przekaźnikiem grzewczym na podstawie temperatury podczas trybu awaryjnego.
  6. aktualizuj wyświetlacz okresowo.
Konfigurowanie środowiska programistycznego
Skonfiguruj środowisko programistyczne na swoim komputerze, instalując niezbędne oprogramowanie. Jeśli używasz Arduino, pobierz i zainstaluj Arduino IDE. Dla Raspberry Pi skonfiguruj odpowiednie środowisko programistyczne. Upewnij się, że masz wszystkie potrzebne biblioteki do czujnika temperatury, wyświetlacza LCD oraz innych używanych komponentów. Ta konfiguracja zapewni narzędzia potrzebne do pisania, przesyłania i debugowania kodu termostatu.
 
Przesyłanie kodu do Arduino MKR WiFi 1010
Łączenie Arduino MKR 1010 WiFi
  1. Podłącz płytkę: Podłącz Arduino MKR 1010 WiFi do komputera za pomocą kabla USB.
  2. Wybierz płytę główną: Przejdź do Narzędzia->Płyta główna i wybierz Arduino MKR WiFi 1010.
  3. Wybierz port: Przejdź do Narzędzia->Porty i wybierz port odpowiadający podłączonej płytce (np. COM3, /dev/ttyUSB0).
Przygotowywanie szkicu
  1. Otwórz szkic: Otwórz plik szkicu Arduino (.ino) w Arduino IDE.
  2. Skonfiguruj szkic: zmodyfikuj szkic, aby dopasować go do adresu IP serwera, danych logowania WiFi i innych ustawień.
Aby przesłać szkic
  1. Zweryfikuj szkic: Kliknij ikonę znaku wyboru w lewym górnym rogu Arduino IDE, aby skompilować i zweryfikować kod. Zapewnia to brak błędów składniowych.
  2. Prześlij szkic: Kliknij ikonę prawej strzałki obok znaku wyboru, aby przesłać kod do Arduino MKR 1010 WiFi. IDE ponownie skompiluje kod, a następnie prześle go do płyty głównej.
Monitorowanie portu szeregowego Wynik
  1. Włącz Monitor Szeregowy: Przejdź do Narzędzia->Monitor Szeregowy, aby włączyć monitor szeregowy.
  2. Ustaw prędkość transmisji: Upewnij się, że prędkość transmisji na dole monitora szeregowego jest ustawiona na 9600, aby pasowała do ustawienia Serial.begin(9600); w kodzie.
  3. Wyświetl wynik: Powinieneś zobaczyć dane wyjściowe z Arduino, które zawierają komunikaty debugowania i odczyty czujników.
Dostosowywanie konfiguracji
Będziesz musiał dostosować konfiguracje WiFi i serwera, aby odpowiadały Twoim ustawieniom. Te konfiguracje muszą być dostosowane do adresu IP serwera i sieci WiFi.
Opcjonalnie: Regulacja zmiennych operacyjnych
Te zmienne i stałe zarządzają stanem operacyjnym, takim jak status połączenia, status ogrzewania oraz interwały czasowe dla zadań. FALLBACK_TEMPERATURE jest używana, gdy serwer jest niedostępny, a termostat działa w trybie awaryjnym. HEARTBEAT_INTERVAL określa, jak często Arduino wysyła sygnały kontrolne do serwera.
 

Krok 5: Konfiguracja bazy danych, serwera i front-endu

Baza danych
Aby serwer Smart Thermostat działał prawidłowo, potrzebuje bazy danych. Do tego celu używamy MariaDB.
Znajdź informacje, jak to skonfigurować tutaj: GitHub Repositories - Database Setup
 
Frontend
Frontend został opracowany przy użyciu Angular17 i pozwala użytkownikowi na przeglądanie danych oraz konfigurowanie ustawień temperatury.
Znajdź informacje, jak to skonfigurować tutaj: Repozytorium GitHub - Ustawienia Frontendu
 
Backend
Opracowany przy użyciu Node.js i Express, backend zapewnia interfejsy API do danych z czujników, uwierzytelniania i sterowania ogrzewaniem.
Znajdź informacje, jak to skonfigurować tutaj: Repozytorium GitHub - Konfiguracja Backend
 

Krok 6: Testowanie i kalibracja

Test wstępny
Włącz termostat i przeprowadź wstępny test, aby upewnić się, że wszystkie komponenty działają prawidłowo. Sprawdź, czy wyświetlacz OLED pokazuje poprawne dane oraz zweryfikuj, czy czujnik temperatury dostarcza dokładne odczyty. Przetestuj moduł przekaźnika, ustawiając różne progi temperatury i obserwując, czy przekaźnik odpowiednio włącza lub wyłącza system grzewczy. Ta faza wstępnego testu jest kluczowa, aby wcześnie zidentyfikować ewentualne problemy i wprowadzić niezbędne korekty.
Kalibracja
Skalibruj termostat, aby zapewnić dokładne i niezawodne działanie. Porównaj odczyty czujnika z wiarygodnym termometrem, aby zweryfikować dokładność. W razie potrzeby dostosuj kody lub pozycje czujników, aby lepiej odzwierciedlały rzeczywiste temperatury. Upewnij się, że przekaźniki są aktywowane i dezaktywowane przy właściwej ustawionej temperaturze, co pozwoli na precyzyjną kontrolę systemu grzewczego. Ten proces kalibracji zoptymalizuje działanie termostatu i zapewni spełnienie wymaganych specyfikacji.
Więcej informacji wkrótce: Zbuduj własny inteligentny termostat 

Zostaw komentarz

Twój adres e-mail nie będzie opublikowany. Wymagane pola są oznaczone *

Zarejestruj się do naszego newslettera

Uzyskaj najnowsze informacje o naszych produktach i specjalnych ofertach.