Spisu treści:

Monitor temperatury i wilgotności - Arduino Mega + Ethernet W5100: 5 kroków
Monitor temperatury i wilgotności - Arduino Mega + Ethernet W5100: 5 kroków

Wideo: Monitor temperatury i wilgotności - Arduino Mega + Ethernet W5100: 5 kroków

Wideo: Monitor temperatury i wilgotności - Arduino Mega + Ethernet W5100: 5 kroków
Wideo: Termostat na Arduino sterowany przez www - LabFun 2024, Lipiec
Anonim
Monitor temperatury i wilgotności - Arduino Mega + Ethernet W5100
Monitor temperatury i wilgotności - Arduino Mega + Ethernet W5100

Moduł 1 - PŁASKI - sprzęt:

  • Arduino Mega 2560
  • Osłona Wiznet W5100 Ethernet
  • 8x czujnik temperatury DS18B20 na magistrali OneWire - podzielony na 4 magistrale OneWire (2, 4, 1, 1)
  • 2x cyfrowy czujnik temperatury i wilgotności DHT22 (AM2302)
  • 1x czujnik temperatury i wilgotności SENSIRION SHT21 (Si7021)
  • 1x czujnik temperatury i wilgotności (oraz ciśnienia powietrza) BOSCH BME280
  • Wysyła dane ze wszystkich czujników jednocześnie w ciągu kilku minut (można modyfikować)

Moduł 2 - KOCIOŁ - sprzęt:

  • Arduino Mega 2560
  • Osłona Wiznet W5100 Ethernet
  • 16x czujnik temperatury DS18B20 na magistrali OneWire - podzielony na 7 magistral OneWire (2, 2, 2, 2, 2, 2, 4)
  • 8x wejście cyfrowe
  • 8x wyjście cyfrowe - dla solenoidu / przekaźnika
  • Wysyła dane ze wszystkich czujników jednocześnie w kilka minut (można modyfikować)
  • Odczytuje stany poszczególnych wyjść z interfejsu WWW, stosuje je Wysyła stany wejść cyfrowych

Krok 1: Wprowadzenie

Wstęp
Wstęp
Wstęp
Wstęp
Wstęp
Wstęp

Dzisiaj przedstawię szczegółowo ostatni zrealizowany projekt, który jest dość skomplikowany pod względem funkcjonalności, ilości użytych czujników, płytek Arduino, użytych magistral danych. Projekt składa się z dwóch modułów. Fizycznie każdy moduł składa się z oddzielnego Arduino Mega 2560, nakładki Ethernet W5100 (kompatybilny z R3) i czujników, z których korzysta.

Każdy moduł komunikuje się z interfejsem WWW w Internecie za pomocą żądań HTTP POST, za pomocą których serwer sieciowy sprzedaje dane lub żąda niektórych danych, na przykład za pomocą żądania POST (tylko moduł 2). Interfejs sieciowy jest uzupełniony systemem logowania, podczas gdy cała rodzina może zarejestrować się w systemie, każdy z nazwą i hasłem. Jest to więc aplikacja wieloużytkownikowa, w której każdy członek rodziny ma przegląd obu modułów i może wykonywać różne czynności - ustawianie temperatury odniesienia, termometr kontrolny itp. Interfejs webowy jest zaprogramowany w PHP, dane przechowywane są w bazie danych MySQL. Każdy z modułów posiada osobną tabelę w bazie danych. Rozważ bardziej szczegółowo poszczególne moduły.

Krok 2: Moduł 1 - PŁASKI

Moduł 1 - PŁASKI
Moduł 1 - PŁASKI
Moduł 1 - PŁASKI
Moduł 1 - PŁASKI

Cały moduł 1-FLAT pełni jedynie funkcję monitora temperatury w poszczególnych pomieszczeniach, nie pełni innej roli. Czujniki DHT22 były używane na dużą odległość za pomocą odpowiedniego rezystora podciągającego 10kohm do rejestrowania wilgotności w łazienkach. Ponieważ BME280 i SHT21 komunikują się przez magistralę I2C, co jest znacznie ograniczone pod względem długości sterowników magistrali, czujniki są używane w pobliżu Arduino w pomieszczeniach.

Czujniki temperatury DS18B20 zostały podzielone na 4 magistrale, ponieważ zastosowano dwa czujniki zewnętrzne, co ułatwia podłączenie ich do oddzielnych gniazd Arduino, a w przypadku upadku czujnika łatwiej jest wymienić, ponieważ nie paraliżuje to funkcjonalności systemu.

Na przykład w przypadku jednej z tych magistral OneWire, na której indeksowane są 4 czujniki. Indeks jest powiązany z fizycznym adresem termometrów, więc w przypadku wymiany jednego z czujników nowy czujnik może pojawić się na indeksie 0 - początkowym, a nawet 2, 3 lub ostatnim. W ten sposób, zmniejszając liczbę czujników w autobusach, możemy uniknąć takiej komplikacji, która może wystąpić przy wymianie czujnika.

Krok 3: Moduł 2 - KOCIOŁ

Moduł 2 - KOCIOŁ
Moduł 2 - KOCIOŁ
Moduł 2 - KOCIOŁ
Moduł 2 - KOCIOŁ
Moduł 2 - KOCIOŁ
Moduł 2 - KOCIOŁ

Oprócz funkcji monitorującej ważniejszą rolę pełni również moduł 2 - KOCIOŁ, a mianowicie sterowanie elektrozaworami lub przekaźnikami do sterowania zaworami grzejnikowymi. Moduł działa niezależnie od ogrzewania domu. Moduł nie załącza ogrzewania ani kotła. Moduł zajmuje się tylko otwieraniem, zamykaniem zaworu grzejnikowego, jeśli temperatura w pomieszczeniu jest niższa/wyższa od ustawionej – tzw. temperatura odniesienia. Każdemu pomieszczeniu, w którym sterowany jest zawór grzejnikowy, można przypisać określony termometr z modułu 2. Oprócz tego - tryb automatyczny, istnieje również tryb ręczny, w którym zawór można otwierać/zamykać ręcznie z poziomu interfejsu internetowego w nieskończoność - ciężko. Wejścia cyfrowe mogą służyć do weryfikacji, czy elektrozawór/przekaźnik/zawór został otwarty/zamknięty na żądanie Arduina – możliwość porównania, czy wyjście jest równe wejściu.

Krok 4: Co oferuje interfejs sieciowy?

Co oferuje interfejs sieciowy?
Co oferuje interfejs sieciowy?
Co oferuje interfejs sieciowy?
Co oferuje interfejs sieciowy?

Dla obu modułów dostępna jest również graficzna reprezentacja wykresu liniowego dla rozwoju poszczególnych zmiennych - temperatura, wilgotność w ciągu doby, 7 dni. Interfejs sieciowy oferuje również podgląd maksymalnej / minimalnej, średniej wartości w ciągu 24 godzin, 7 dni dla każdego termometru / higrometru. W module 1 początkowo rozważano parę czujników SHT21, ale ponieważ nie mają one możliwości zmiany adresu I2C, konieczne byłoby zastosowanie multipleksera do komunikacji jednej magistrali z dwóch czujników o tym samym adresie I2C. W przypadku wadliwych danych czujnika nazwa czujnika jest zapisywana w dzienniku, który administrator systemu może otworzyć w dowolnym momencie, aby na przykład serwisować magistralę OneWire i wymienić uszkodzony czujnik.

W programach Arduino został zaimplementowany Watchdog, który w przypadku błędnej inicjalizacji, „zawieszenia się”, kolejnego błędu bezpiecznie zrestartuje się i na początku programu wyłączy wszystkie wyjścia do momentu nawiązania połączenia z interfejsem WWW, gdzie jest w pełni zsynchronizowane w warunki produktów, które następnie stosuje.

Więcej projektów można znaleźć na: https://arduino.php5.sk?lang=en Więcej przykładów:

Zalecana: