Inhaltsverzeichnis:

Temperatur-, Feuchtigkeitsmonitor - Arduino Mega + Ethernet W5100 - Gunook
Temperatur-, Feuchtigkeitsmonitor - Arduino Mega + Ethernet W5100 - Gunook

Video: Temperatur-, Feuchtigkeitsmonitor - Arduino Mega + Ethernet W5100 - Gunook

Video: Temperatur-, Feuchtigkeitsmonitor - Arduino Mega + Ethernet W5100 - Gunook
Video: Prusa Clone I3 MKS und + !!! https://www.facebook.com/groups/294265772751398/?ref=share 2024, Juli
Anonim
Temperatur-, Feuchtigkeitsmonitor - Arduino Mega + Ethernet W5100
Temperatur-, Feuchtigkeitsmonitor - Arduino Mega + Ethernet W5100

Modul 1 - FLAT - Hardware:

  • Arduino Mega 2560
  • Wiznet W5100 Ethernet-Abschirmung
  • 8x DS18B20 Temperatursensor am OneWire Bus - aufgeteilt in 4 OneWire Busse (2, 4, 1, 1)
  • 2x digitaler Temperatur- und Feuchtigkeitssensor DHT22 (AM2302)
  • 1x Temperatur- und Feuchtigkeitssensor SENSIRION SHT21 (Si7021)
  • 1x BOSCH BME280 Temperatur- und Feuchtigkeitssensor (und Luftdruck)
  • Sendet Daten von allen Sensoren gleichzeitig in mehreren Minuten (kann geändert werden)

Modul 2 - KESSEL - Hardware:

  • Arduino Mega 2560
  • Wiznet W5100 Ethernet-Abschirmung
  • 16x DS18B20 Temperatursensor am OneWire Bus - aufgeteilt in 7 OneWire Busse (2, 2, 2, 2, 2, 2, 4)
  • 8x digitaler Eingang
  • 8x digitaler Ausgang - für Magnet / Relais
  • Sendet Daten von allen Sensoren gleichzeitig in mehreren Minuten (kann geändert werden)
  • Es liest die Zustände einzelner Ausgänge aus dem Webinterface, wendet sie an Sendet digitale Eingangszustände

Schritt 1: Einführung

Einführung
Einführung
Einführung
Einführung
Einführung
Einführung

Heute stelle ich das letzte realisierte Projekt im Detail vor, welches in Bezug auf Funktionalität, Anzahl der verwendeten Sensoren, Arduino-Boards, verwendete Datenbusse recht komplex ist. Das Projekt besteht aus zwei Modulen. Physikalisch besteht jedes Modul aus einem separaten Arduino Mega 2560, einem Ethernet-Shield W5100 (R3-kompatibel) und den verwendeten Sensoren.

Jedes Modul kommuniziert mit dem Webinterface im Internet über HTTP POST Requests, über die der Webserver Daten verkauft oder einige Daten anfordert, beispielsweise per POST Request (nur Modul 2). Abgerundet wird das Webinterface durch ein Login-System, während sich die ganze Familie mit Namen und Passwort am System anmelden kann. Es handelt sich also um eine Mehrbenutzeranwendung, bei der jedes Familienmitglied einen Überblick über beide Module hat und verschiedene Aktionen ausführen kann - Referenztemperatur einstellen, Thermometer kontrollieren usw. Weboberfläche ist in PHP programmiert, Daten werden in MySQL-Datenbank gespeichert. Jedes der Module hat eine separate Tabelle in der Datenbank für Daten. Betrachten Sie die einzelnen Module genauer.

Schritt 2: Modul 1 - FLAT

Modul 1 - FLAT
Modul 1 - FLAT
Modul 1 - FLAT
Modul 1 - FLAT

Das gesamte Modul 1-FLAT dient nur als Temperaturwächter in einzelnen Räumen, es hat keine andere Funktion. DHT22-Sensoren wurden über eine lange Distanz mit einem geeigneten 10kOhm Pullup-Widerstand verwendet, um die Luftfeuchtigkeit in den Badezimmern zu erfassen. Da BME280 und SHT21 über den I2C-Bus kommunizieren und dieser hinsichtlich der Bustreiberlängen stark eingeschränkt ist, werden Sensoren in der Nähe von Arduino in Räumen eingesetzt.

Die Temperatursensoren DS18B20 wurden in 4 Busse aufgeteilt, da zwei externe Sensoren verwendet werden, was den Anschluss an separate Arduino-Ausgänge erleichtert und im Falle eines Sensorausfalls einfacher zu ersetzen ist, da die Funktionalität nicht lähmt vom System.

Zum Beispiel bei einem dieser OneWire-Busse, auf dem 4 Sensoren indiziert sind. Der Index ist mit der physikalischen Adresse des Thermometers verknüpft. Wenn also einer der Sensoren ausgetauscht wird, kann der neue Sensor auf dem Index 0 erscheinen - anfänglich oder sogar 2, 3 oder letzter. Durch die Reduzierung der Anzahl der Sensoren in den Bussen können wir eine solche Komplikation vermeiden, die beim Austausch des Sensors auftreten kann.

Schritt 3: Modul 2 - KESSEL

Modul 2 - KESSEL
Modul 2 - KESSEL
Modul 2 - KESSEL
Modul 2 - KESSEL
Modul 2 - KESSEL
Modul 2 - KESSEL

Neben der Überwachungsfunktion hat das Modul 2 - BOILER noch eine wichtigere Funktion, nämlich die Ansteuerung von Magneten oder Relais zur Ansteuerung von Heizkörperventilen. Das Modul arbeitet unabhängig von der Hausheizung. Modul schaltet weder Heizung noch Boiler. Das Modul sorgt nur für das Öffnen und Schließen des Heizkörperventils, wenn die Raumtemperatur niedriger / höher als die eingestellte ist - sog. Referenztemperatur. Jedem Raum, in dem das Heizkörperventil gesteuert wird, kann ab Modul 2 ein bestimmtes Thermometer zugewiesen werden. Zusätzlich zu diesem - Automatikmodus - gibt es auch einen manuellen Modus, bei dem das Ventil über das Webinterface manuell auf unbestimmte Zeit geöffnet / geschlossen werden kann - hart. Die digitalen Eingänge können verwendet werden, um auf Anfrage mit Arduina zu überprüfen, ob der Magnet / das Relais / das Ventil geöffnet / geschlossen wurde - die Möglichkeit, zu vergleichen, ob der Ausgang gleich dem Eingang ist.

Schritt 4: Was bietet das Webinterface?

Was bietet das Webinterface?
Was bietet das Webinterface?
Was bietet das Webinterface?
Was bietet das Webinterface?

Für beide Module gibt es zusätzlich eine grafische Darstellung eines Liniendiagramms zur Entwicklung der einzelnen Variablen - Temperatur, Luftfeuchtigkeit in 24 Stunden, 7 Tagen. Das Webinterface bietet auch die Anzeige des maximalen / minimalen, durchschnittlichen Wertes in 24 Stunden, 7 Tagen für jedes Thermometer / Hygrometer. In Modul 1 wurde zunächst ein Paar SHT21-Sensoren betrachtet, da diese jedoch keine Möglichkeit zur Änderung der I2C-Adresse haben, wäre es notwendig, einen Multiplexer für eine Buskommunikation von zwei Sensoren mit gleicher I2C-Adresse zu verwenden. Bei fehlerhaften Sensordaten wird der Sensorname in einem Protokoll gespeichert, das der Systemadministrator jederzeit öffnen kann, um beispielsweise den OneWire-Bus zu warten und den fehlerhaften Sensor auszutauschen.

In Arduino-Programmen wurde ein Watchdog implementiert, der bei fehlerhafter Initialisierung, "Einfrieren", einen weiteren Fehler sicher neu startet und zu Beginn des Programms alle Ausgänge abschaltet, bis die Verbindung zum Webinterface hergestellt ist, wo es vollständig synchronisiert wird Leistungsbedingungen, die sie anschließend anwendet.

Weitere Projekte finden Sie unter: https://arduino.php5.sk?lang=en Spenden Sie für weitere Beispiele:

Empfohlen: