Innholdsfortegnelse:

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

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

Video: Temperatur, fuktighetsmonitor - Arduino Mega + Ethernet W5100: 5 trinn
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 - maskinvare:

  • Arduino Mega 2560
  • Wiznet W5100 Ethernet -skjerm
  • 8x DS18B20 temperatursensor på OneWire -buss - delt inn i 4 OneWire -busser (2, 4, 1, 1)
  • 2x digital temperatur- og fuktighetssensor DHT22 (AM2302)
  • 1x temperatur- og fuktighetssensor SENSIRION SHT21 (Si7021)
  • 1x BOSCH BME280 temperatur og fuktighet (og lufttrykk) sensor
  • Sender data fra alle sensorer samtidig på flere minutter (kan endres)

Modul 2 - KJELE - maskinvare:

  • Arduino Mega 2560
  • Wiznet W5100 Ethernet -skjerm
  • 16x DS18B20 temperatursensor på OneWire -buss - delt inn i 7 OneWire -busser (2, 2, 2, 2, 2, 2, 4)
  • 8x digital inngang
  • 8x digital utgang - for magnetventil / relé
  • Sender data fra alle sensorer samtidig på flere minutter (kan endres)
  • Den leser tilstandene til individuelle utganger fra webgrensesnittet, bruker dem Sender digitale inngangstilstander

Trinn 1: Introduksjon

Introduksjon
Introduksjon
Introduksjon
Introduksjon
Introduksjon
Introduksjon

I dag vil jeg presentere i detalj det siste realiserte prosjektet, som er ganske komplekst når det gjelder funksjonalitet, antall sensorer som brukes, Arduino -kort, brukte databusser. Prosjektet består av to moduler. Fysisk består hver modul av en separat Arduino Mega 2560, Ethernet -skjerm W5100 (R3 -kompatibel) og sensorene den bruker.

Hver modul kommuniserer med webgrensesnittet på Internett ved hjelp av HTTP POST -forespørsler, der webserveren selger data eller ber om noen data, for eksempel via POST -forespørsel (bare modul 2). Nettgrensesnittet kompletteres med et påloggingssystem, mens hele familien kan registrere seg til systemet, hver med navn og passord. Det er derfor en flerbrukerapplikasjon der hvert familiemedlem har oversikt over begge modulene og kan utføre forskjellige handlinger - angi referansetemperatur, kontrolltermometer, etc. Webgrensesnitt er programmert i PHP, data lagres i MySQL -database. Hver av modulene har en egen tabell i databasen for data. Vurder de enkelte modulene mer detaljert.

Trinn 2: Modul 1 - FLAT

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

Hele modulen 1- FLAT fungerer bare som en temperaturmåler i individuelle rom, den har ingen annen rolle. DHT22 -sensorer ble brukt over en lang avstand ved bruk av en passende 10 kOhm pullup -motstand for å registrere fuktighet på badene. Siden BME280 og SHT21 kommuniserer over I2C -bussen og dette er betydelig begrenset når det gjelder busslengder, brukes sensorer i nærheten av Arduino i rom.

DS18B20 temperatursensorer har blitt delt inn i 4 busser, da to eksterne sensorer brukes, noe som gjør det lettere å koble dem til separate Arduino -uttak, og i tilfelle sensorfall faller, er det lettere å bytte ut, da det ikke lammer funksjonaliteten av systemet.

For eksempel når det gjelder en av disse OneWire -bussene, der 4 sensorer er indeksert. Indeksen er knyttet til den fysiske adressen til termometrene, så hvis en av sensorene byttes ut, kan den nye sensoren vises på indeksen 0 - initial, eller til og med 2, 3 eller siste. Dermed kan vi ved å redusere antall sensorer på bussene unngå en slik komplikasjon som kan oppstå når sensoren skiftes ut.

Trinn 3: Modul 2 - KJELE

Modul 2 - KJELE
Modul 2 - KJELE
Modul 2 - KJELE
Modul 2 - KJELE
Modul 2 - KJELE
Modul 2 - KJELE

I tillegg til monitorfunksjonen har modul 2 - BOILER også en viktigere rolle, nemlig styring av solenoider eller reléer for styring av radiatorventiler. Modulen fungerer uavhengig av husholdningsoppvarming. Modulen bytter ikke varme eller kjele. Modulen tar seg bare av å åpne, lukke radiatorventilen, hvis romtemperaturen er lavere / høyere enn settet - såkalt. referansetemperatur. Hvert rom der radiatorventilen styres kan tildeles et spesifikt termometer fra modul 2. I tillegg til denne - automatisk modus, er det også en manuell modus der ventilen kan åpnes / lukkes manuelt fra webgrensesnittet på ubestemt tid - hardt. De digitale inngangene kan brukes til å bekrefte at magnetventilen / reléet / ventilen har blitt åpnet / lukket på forespørsel med Arduina - muligheten til å sammenligne om utgangen er lik inngangen.

Trinn 4: Hvilket webgrensesnitt tilbyr?

Hvilke webgrensesnitt tilbyr?
Hvilke webgrensesnitt tilbyr?
Hvilke webgrensesnitt tilbyr?
Hvilke webgrensesnitt tilbyr?

For begge modulene er det også en grafisk fremstilling av et linjediagram for utvikling av individuelle variabler - temperatur, fuktighet på 24 timer, 7 dager. Nettgrensesnittet tilbyr også visning av maksimum / minimum, gjennomsnittlig verdi på 24 timer, 7 dager for hvert termometer / hygrometer. I modul 1 ble det først vurdert et par SHT21 -sensorer, men siden de ikke har mulighet til å endre I2C -adressen, ville det være nødvendig å bruke en multiplexer for en busskommunikasjon fra to sensorer med samme I2C -adresse. Ved defekte sensordata lagres sensornavnet i en logg som systemadministratoren når som helst kan åpne for å utføre service på OneWire -bussen og erstatte den defekte sensoren, for eksempel.

Watchdog er implementert i Arduino -programmer, som i tilfelle feilaktig initialisering, "frysing", en annen feil trygt starter på nytt og i begynnelsen av programmet slår av alle utganger til tilkoblingen til webgrensesnittet er etablert, hvor den er fullstendig synkronisert i vilkår for utdata, som den senere gjelder.

Flere prosjekter finner du på: https://arduino.php5.sk?lang=en Doner for flere eksempler:

Anbefalt: