Spisu treści:
- Krok 1: Opis termostatu Ethernet
- Krok 2: Interfejs sieciowy
- Krok 3: Strony HTML działające na serwerze WWW, schematy, kod źródłowy
Wideo: Termostat pokojowy - Arduino + Ethernet: 3 stopnie
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
Pod względem sprzętowym projekt wykorzystuje:
- Arduino Uno / Mega 2560
- Osłona Ethernet Wiznet W5100 / Moduł Ethernet Wiznet W5200-W5500
- Czujnik temperatury DS18B20 na magistrali OneWire
- Przekaźnik SRD-5VDC-SL-C używany do przełączania kotła
Krok 1: Opis termostatu Ethernet
Arduino to poręczna platforma do wbudowania, którą można wykorzystać np. do zbudowania termostatu pokojowego, który pokażemy dzisiaj. Termostat jest dostępny z sieci LAN, w której się znajduje, natomiast wyposażony jest w interfejs webowy, który służy do konfiguracji wszystkich elementów termostatu. Interfejs WWW działa bezpośrednio na Arduino w trybie serwera WWW. Serwer WWW umożliwia uruchomienie kilku niezależnych stron HTML, które mogą mieć charakter informacyjny, a nawet funkcjonalny. Serwer WWW działa na porcie 80 -
Zastosowany w projekcie przekaźnik elektromagnetyczny SRD-5VDC-SL-C umożliwia przełączanie do 10A przy 230V - moc 2300W. W przypadku przełączania obwodu DC (obciążenia) możliwe jest przełączenie 300W (10A przy 30V DC). Alternatywnie przekaźnik OMRON G3MB-202P SSR jest w pełni kompatybilny ze schematem okablowania, który jest odpowiedni tylko dla obciążeń nieindukcyjnych i wyłącznie dla obwodów prądu przemiennego. Maksymalna moc przełączania 460W (230V, 2A). Pobór Arduino z nakładką Ethernet i innymi peryferiami jest na poziomie 100-120mA przy otwartym przekaźniku. Po zamknięciu poniżej 200mA przy zasilaniu 5V.
Krok 2: Interfejs sieciowy
Interfejs sieciowy termostatu umożliwia:
- Zobacz temperaturę w czasie rzeczywistym z czujnika DS18B20
- Zobacz stan przekaźnika w czasie rzeczywistym z dynamiczną zmianą wyjścia na stronie
- Modyfikuj temperaturę docelową (referencyjną) w zakresie od 5 do 50°C z krokiem 0,25°C
- Zmodyfikuj histerezę w zakresie od 0 do 10°C z krokiem 0,25°C
Interfejs sieciowy został zaprojektowany z myślą o większych i mniejszych ekranach. Jest responsywny, obsługuje szerokoekranowe ekrany o wysokiej rozdzielczości, ale także urządzenia mobilne. Interfejs wykorzystuje importowane style CSS frameworka Bootstrap z zewnętrznego serwera CDN, który ładuje urządzenie po stronie klienta podczas otwierania strony działającej na Arduino. Ponieważ Arduino Uno ma ograniczoną pamięć, może uruchamiać tylko strony o rozmiarze kilku kB. Importowanie stylów CSS z zewnętrznego serwera zmniejszy wydajność i obciążenie pamięci Arduino. Implementacja oprogramowania (dla Arduine Uno) wykorzystuje 70% pamięci flash (32kB - 4kB Bootloader) i 44% pamięci RAM (2kB).
Statyczne części strony internetowej (nagłówek i stopka dokumentu HTML, łączenie Bootstrap CSS, metatagi, nagłówek odpowiedzi HTTP, typ treści, formularz i inne) są przechowywane bezpośrednio w pamięci flash Arduino, co może znacznie zmniejszyć ilość pamięci RAM używanej przez użytkownika -treść generowana. Serwer WWW jest dzięki temu bardziej stabilny i może obsługiwać wielokrotne łączenie kilku urządzeń w sieci jednocześnie.
W celu zachowania ustawionych wartości nawet po zaniku zasilania są one zapisywane w pamięci EEPROM Arduino. Temperatura odniesienia do offsetu 10, histereza do offsetu 100. Każda z wartości zajmuje maksymalnie 5B w pamięci EEPROM. Limit transkrypcji EEPROM jest na poziomie 100 000 transkryptów. Dane są nadpisywane dopiero po przesłaniu formularza HTML. W przypadku, gdy urządzenie nie ma nic zapisanego we wspomnianych offsetach EEPROM przy pierwszym uruchomieniu, zostanie wykonany automatyczny zapis z wartościami domyślnymi - odniesienie: 20,25, histereza 0,25°C
Metatag Refresh odświeża całą stronę Arduino co 10 sekund. Do tego czasu konieczne jest wpisanie zmiany dla termostatu, w przeciwnym razie okna wprowadzania zostaną zresetowane po odświeżeniu strony. Ponieważ biblioteka Ethernet nie obejmuje użycia asynchronicznego serwera WWW, należy przepisać całą stronę. Zmieniającymi się głównie danymi dynamicznymi jest aktualna wartość wyjścia - Wł./Wył.
Krok 3: Strony HTML działające na serwerze WWW, schematy, kod źródłowy
Strony HTML działające na Arduino:
- / - strona główna zawierająca formularz, aktualną listę wyjść logicznych dla przekaźnika, temperaturę
- /action.html - przetwarza wartości z formularza, zapisuje je do pamięci EEPROM, przekierowuje użytkownika z powrotem do strony głównej
- /get_data/ - przesyła dane o aktualnej temperaturze, temperaturze odniesienia i histerezie do strony trzeciej (komputer, mikrokontroler, inny klient…) w formacie JSON
Istnieje również rozszerzona wersja tego termostatu, która zawiera:
- Tryb ręczny dla przekaźników (nieograniczony czas, hard ON/OFF)
- Zegar nadzoru
- Dostępnych więcej czujników, np.: SHT21, SHT31, DHT22, BME280, BMP280 i inne
- Tryb chłodzenia
- Sterowanie i konfiguracja przez RS232/UART niezależnie od Ethernetu
- Regulacja temperatury PID dla termostatu
- Możliwość zastosowania platform ESP8266, ESP32 pod termostat
Implementacja programu dla projektu znajduje się pod adresem: https://github.com/martinius96/termostat-ethernet/ Implementacja zawiera programy dla statycznego/dynamicznego adresu IPv4 przypisanego do osłony Ethernet.
Termostat jest przeznaczony tylko do temperatur wewnętrznych! (powyżej 0°C), do którego przystosowana jest logika systemu. Istnieje możliwość zastąpienia istniejącego termostatu pokojowego termostatem, możliwa jest chwilowa wymiana termostatu w lodówce, utrzymanie stałej temperatury w terrarium i tym podobne.
Zalecana:
Skonfiguruj Raspberry Pi 4 przez laptopa/komputer za pomocą kabla Ethernet (bez monitora, bez Wi-Fi): 8 kroków
Skonfiguruj Raspberry Pi 4 przez laptopa/komputer za pomocą kabla Ethernet (bez monitora, bez Wi-Fi): W tym celu będziemy pracować z Raspberry Pi 4 Model-B z 1 GB pamięci RAM. Raspberry-Pi to komputer jednopłytkowy wykorzystywany do celów edukacyjnych i projektów DIY w przystępnej cenie, wymaga zasilania 5V 3A.Systemy operacyjne takie jak
Jak zrobić kabel Ethernet: 5 kroków
Jak zrobić kabel Ethernet: Witam! Dzisiaj nauczymy się, jak stworzyć własny kabel Ethernet, który jest standardem branżowym! Który pozwoli Ci zaoszczędzić pieniądze, jeśli chodzi o potrzebę kabli! Dlaczego więc mam kwalifikacje, aby Cię uczyć? Cóż, jestem informatykiem, spędziłem ostatnie 2
Zrób to sam 10/100M Ethernet PoE Injector: 6 kroków
DIY 10/100M Ethernet PoE Injector: Tutaj zrobimy prosty iniektor PoE odpowiedni dla 10/100M Ethernet, może być również zasilany bezpośrednio bateriami
MCP23017 Sterowanie GPIO przez Ethernet: 5 kroków
MCP23017 Sterowanie GPIO przez Ethernet: Sterowanie MCP23017 IO-extender przez Ethernet za pomocą mostka Sensor Bridge i karty rozszerzeń MCP23017. Polecenia wysyłane przez skrypty Pythona, adresy URL przeglądarki lub dowolny system zdolny do komunikacji HTTP. Może być zintegrowany z Home Assistant w celu automatyzacji domu.Przewody są
Odczytywanie wilgotności za pomocą czujnika Ethernet: 3 kroki
Odczyt wilgotności za pomocą czujnika Ethernet: Celem projektu było umożliwienie odczytu odczytów wilgotności i temperatury przez sieć Ethernet, aby wyniki mogły być wykorzystane do automatyki domowej (asystent domowy itp.). Czujnik T9602 miał najlepszy współczynnik kształtu, z doskonałym wydajność na ar