Innehållsförteckning:

Temperatur, fuktighetsmonitor - Arduino Mega + Ethernet W5100: 5 steg
Temperatur, fuktighetsmonitor - Arduino Mega + Ethernet W5100: 5 steg

Video: Temperatur, fuktighetsmonitor - Arduino Mega + Ethernet W5100: 5 steg

Video: Temperatur, fuktighetsmonitor - Arduino Mega + Ethernet W5100: 5 steg
Video: Multilayers soil moisture temperature EC Salinity NPK sensor with LORAWAN 2024, Juli
Anonim
Temperatur, fuktighetsmonitor - Arduino Mega + Ethernet W5100
Temperatur, fuktighetsmonitor - Arduino Mega + Ethernet W5100

Modul 1 - FLAT - hårdvara:

  • Arduino Mega 2560
  • Wiznet W5100 Ethernet -sköld
  • 8x DS18B20 temperaturgivare på OneWire -buss - uppdelad i 4 OneWire -bussar (2, 4, 1, 1)
  • 2x digital temperatur- och luftfuktighetssensor DHT22 (AM2302)
  • 1x temperatur- och fuktsensor SENSIRION SHT21 (Si7021)
  • 1x BOSCH BME280 temperatur och luftfuktighet (och lufttryck) sensor
  • Skickar data från alla sensorer samtidigt på flera minuter (kan ändras)

Modul 2 - Panna - hårdvara:

  • Arduino Mega 2560
  • Wiznet W5100 Ethernet -sköld
  • 16x DS18B20 temperaturgivare på OneWire -buss - uppdelad i 7 OneWire -bussar (2, 2, 2, 2, 2, 2, 4)
  • 8x digital ingång
  • 8x digital utgång - för magnetventil / relä
  • Skickar data från alla sensorer samtidigt på flera minuter (kan ändras)
  • Den läser tillstånden för enskilda utdata från webbgränssnittet, tillämpar dem Skickar digitala ingångstillstånd

Steg 1: Introduktion

Introduktion
Introduktion
Introduktion
Introduktion
Introduktion
Introduktion

Idag kommer jag att presentera i detalj det senaste genomförda projektet, som är ganska komplext när det gäller funktionalitet, antal sensorer som används, Arduino -kort, använda databussar. Projektet består av två moduler. Fysiskt består varje modul av en separat Arduino Mega 2560, Ethernet -sköld W5100 (R3 -kompatibel) och de sensorer den använder.

Varje modul kommunicerar med webbgränssnittet på Internet med HTTP POST -förfrågningar, genom vilka webbservern säljer data eller begär vissa data, till exempel via POST -begäran (endast modul 2). Webbgränssnittet kompletteras med ett inloggningssystem, medan hela familjen kan registrera sig i systemet, var och en med sitt namn och lösenord. Det är därför en fleranvändarapplikation där varje familjemedlem har en överblick över båda modulerna och kan utföra olika åtgärder - inställning av referenstemperatur, styrtermometer, etc. Webbgränssnitt är programmerat i PHP, data lagras i MySQL -databas. Var och en av modulerna har en separat tabell i databasen för data. Tänk närmare på de enskilda modulerna.

Steg 2: Modul 1 - FLAT

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

Hela modulen 1- FLAT fungerar bara som en temperaturmätare i enskilda rum, den har ingen annan roll. DHT22 -sensorer användes över en lång sträcka med hjälp av ett lämpligt 10kohm pullup -motstånd för att registrera luftfuktighet i badrummen. Eftersom BME280 och SHT21 kommunicerar över I2C -bussen och detta är avsevärt begränsat när det gäller bussförarlängder, används sensorer nära Arduino i rum.

DS18B20 temperaturgivare har delats upp i 4 bussar, eftersom två externa sensorer används, vilket gör det lättare att ansluta dem till separata Arduino -uttag och vid en sensorfall är det lättare att byta eftersom det inte förlamar funktionaliteten av systemet.

Till exempel, när det gäller en av dessa OneWire -bussar, på vilka 4 sensorer är indexerade. Indexet är kopplat till termometrarnas fysiska adress, så om en av sensorerna byts kan den nya sensorn visas på index 0 - initial, eller till och med 2, 3 eller sista. Genom att minska antalet sensorer på bussarna kan vi således undvika en sådan komplikation som kan uppstå när sensorn byts ut.

Steg 3: Modul 2 - Panna

Modul 2 - Panna
Modul 2 - Panna
Modul 2 - Panna
Modul 2 - Panna
Modul 2 - Panna
Modul 2 - Panna

Förutom monitorfunktionen har modul 2 - BOILER också en viktigare roll, nämligen styrning av solenoider eller reläer för styrning av radiatorventiler. Modulen fungerar oberoende av hushållsvärme. Modulen byter inte värme eller panna. Modulen tar bara hand om att öppna, stänga kylarventilen, om rumstemperaturen är lägre / högre än den inställda - sk. referens temperatur. Varje rum där kylarventilen styrs kan tilldelas en specifik termometer från modul 2. Utöver detta - automatiskt läge finns det också ett manuellt läge där ventilen kan öppnas / stängas manuellt från webbgränssnittet på obestämd tid - hårt. De digitala ingångarna kan användas för att verifiera att solenoiden / reläet / ventilen har öppnats / stängts på begäran med Arduina - möjligheten att jämföra om utgången är lika med ingången.

Steg 4: Vilket webbgränssnitt erbjuder?

Vilka webbgränssnitt erbjuder?
Vilka webbgränssnitt erbjuder?
Vilka webbgränssnitt erbjuder?
Vilka webbgränssnitt erbjuder?

För båda modulerna finns också en grafisk framställning av ett linjediagram för utveckling av individuella variabler - temperatur, luftfuktighet på 24 timmar, 7 dagar. Webbgränssnittet erbjuder också visning av max / minimum, medelvärde på 24 timmar, 7 dagar för varje termometer / hygrometer. I modul 1 övervägdes initialt ett par SHT21 -sensorer, men eftersom de inte har någon möjlighet att ändra I2C -adressen skulle det vara nödvändigt att använda en multiplexer för en busskommunikation från två sensorer med samma I2C -adress. Vid felaktig sensordata lagras sensornamnet i en logg som systemadministratören kan öppna när som helst för att serva OneWire -bussen och byta ut den felaktiga sensorn, till exempel.

Watchdog har implementerats i Arduino -program, som vid felaktig initialisering, "frysning", startar ett annat fel säkert och i början av programmet stänger av alla utgångar tills anslutningen till webbgränssnittet upprättas, där det är helt synkroniserat i villkor för utdata, som den sedan tillämpar.

Fler projekt hittar du på: https://arduino.php5.sk?lang=en Donera för fler exempel:

Rekommenderad: