INHOUDSOPGAWE:

Temperatuur, humiditeitsmonitor - Arduino Mega + Ethernet W5100: 5 stappe
Temperatuur, humiditeitsmonitor - Arduino Mega + Ethernet W5100: 5 stappe

Video: Temperatuur, humiditeitsmonitor - Arduino Mega + Ethernet W5100: 5 stappe

Video: Temperatuur, humiditeitsmonitor - Arduino Mega + Ethernet W5100: 5 stappe
Video: Arduino Ethernet Shield Webserver 2024, November
Anonim
Temperatuur-, humiditeitsmonitor - Arduino Mega + Ethernet W5100
Temperatuur-, humiditeitsmonitor - Arduino Mega + Ethernet W5100

Module 1 - FLAT - hardeware:

  • Arduino Mega 2560
  • Wiznet W5100 Ethernet -skild
  • 8x DS18B20 temperatuursensor op OneWire -bus - verdeel in 4 OneWire -busse (2, 4, 1, 1)
  • 2x digitale temperatuur- en humiditeitsensor DHT22 (AM2302)
  • 1x temperatuur- en humiditeitsensor SENSIRION SHT21 (Si7021)
  • 1x BOSCH BME280 temperatuur- en humiditeits- (en lugdruk) sensor
  • Stuur data van alle sensors tegelyk in 'n paar minute (kan aangepas word)

Module 2 - KETEL - hardeware:

  • Arduino Mega 2560
  • Wiznet W5100 Ethernet -skild
  • 16x DS18B20 temperatuursensor op OneWire -bus - verdeel in 7 OneWire -busse (2, 2, 2, 2, 2, 2, 4)
  • 8x digitale ingang
  • 8x digitale uitgang - vir solenoïde / relais
  • Stuur data van alle sensors tegelyk in 'n paar minute (kan aangepas word)
  • Dit lees die toestande van individuele uitsette vanaf die webkoppelvlak, pas dit toe Stuur digitale invoertoestande

Stap 1: Inleiding

Inleiding
Inleiding
Inleiding
Inleiding
Inleiding
Inleiding

Vandag bied ek die laaste gerealiseerde projek in detail aan, wat taamlik kompleks is in terme van funksionaliteit, aantal sensors wat gebruik word, Arduino -borde, gebruikte databusse. Die projek bestaan uit twee modules. Elke module bestaan fisies uit 'n aparte Arduino Mega 2560, Ethernet -skild W5100 (R3 -versoenbaar) en die sensors wat dit gebruik.

Elke module kommunikeer met die webkoppelvlak op die internet deur HTTP POST -versoeke, waardeur die webbediener data verkoop of data versoek, byvoorbeeld via POST -versoek (slegs module 2). Die webkoppelvlak word voltooi met 'n aanmeldstelsel, terwyl die hele gesin by die stelsel kan registreer, elk met sy naam en wagwoord. Dit is dus 'n veelgebruiker -toepassing waar elke familielid 'n oorsig van albei modules het en verskillende aksies kan uitvoer - die stel van die verwysingstemperatuur, kontroletermometer, ens. Webkoppelvlak word in PHP geprogrammeer, data word in MySQL -databasis gestoor. Elke module het 'n aparte tabel in die databasis vir data. Beskou die individuele modules in meer besonderhede.

Stap 2: Module 1 - VLAK

Module 1 - VLAK
Module 1 - VLAK
Module 1 - VLAK
Module 1 - VLAK

Die hele module 1- FLAT dien slegs as 'n temperatuurmonitor in individuele kamers; dit speel geen ander rol nie. DHT22 -sensors is oor 'n lang afstand gebruik met 'n geskikte 10kohm pullup -weerstand om humiditeit in die badkamers op te teken. Aangesien die BME280 en SHT21 oor die I2C -bus kommunikeer en dit aansienlik beperk is in terme van busbestuurderlengtes, word sensors naby Arduino in kamers gebruik.

Die DS18B20 temperatuursensors is in 4 busse verdeel, aangesien twee eksterne sensors gebruik word, wat dit makliker maak om dit aan aparte Arduino -afsetpunte te koppel, en as dit 'n sensor val, is dit makliker om te vervang, aangesien dit nie die funksionaliteit verlam nie van die stelsel.

Byvoorbeeld, in die geval van een van hierdie OneWire -busse, waarop 4 sensors geïndekseer is. Die indeks is gekoppel aan die fisiese adres van die termometers, dus as een van die sensors uitgeruil word, kan die nuwe sensor op die indeks 0 verskyn - aanvanklik, of selfs 2, 3 of laaste. Deur die aantal sensors op die busse te verminder, kan ons so 'n komplikasie vermy wat kan voorkom as die sensor vervang word.

Stap 3: Module 2 - KETEL

Module 2 - KETEL
Module 2 - KETEL
Module 2 - KETEL
Module 2 - KETEL
Module 2 - KETEL
Module 2 - KETEL

Benewens die monitorfunksie, speel die module 2 - BOILER ook 'n belangriker rol, naamlik die beheer van solenoïdes of relais vir die beheer van radiatorkleppe. Die module werk onafhanklik van huishoudelike verwarming. Die module skakel nie verwarming of ketel oor nie. Die module sorg slegs vir die opening en sluiting van die radiatorklep as die kamertemperatuur laer / hoër is as die stel - sg. verwysingstemperatuur. Elke kamer waar die radiatorklep beheer word, kan 'n spesifieke termometer van module 2 toegewys word. Benewens hierdie - outomatiese modus, is daar ook 'n handmatige modus waar die klep onbepaald met die hand oopgemaak / toegemaak kan word - hard. Die digitale insette kan gebruik word om te verifieer dat die solenoïde / relais / klep op aanvraag met Arduina oopgemaak / gesluit is - die vermoë om te vergelyk of die uitset gelyk is aan die inset.

Stap 4: Watter webkoppelvlak bied?

Watter webkoppelvlak bied aan?
Watter webkoppelvlak bied aan?
Watter webkoppelvlak bied aan?
Watter webkoppelvlak bied aan?

Vir beide modules is daar ook 'n grafiese voorstelling van 'n lyngrafiek vir die ontwikkeling van individuele veranderlikes - temperatuur, humiditeit in 24 uur, 7 dae. Die webkoppelvlak bied ook die maksimum / minimum gemiddelde waarde in 24 uur, 7 dae vir elke termometer / higrometer. In module 1 is aanvanklik 'n paar SHT21 -sensors oorweeg, maar omdat hulle nie die I2C -adres kan verander nie, sou dit nodig wees om 'n multiplexer te gebruik vir een buskommunikasie van twee sensors met dieselfde I2C -adres. In die geval van foutiewe sensordata, word die sensornaam gestoor in 'n log wat die stelseladministrateur te eniger tyd kan oopmaak om die OneWire -bus te onderhou en byvoorbeeld die foutiewe sensor te vervang.

Watchdog is geïmplementeer in Arduino -programme, wat in geval van foutiewe inisialisering, "vries", weer 'n fout weer begin en aan die begin van die program alle uitsette uitskakel totdat die verbinding met die webkoppelvlak tot stand gebring is, waar dit volledig gesinkroniseer is terme van uitsette wat dit vervolgens toepas.

Meer projekte wat u kan vind by: https://arduino.php5.sk?lang=af Skenk vir meer voorbeelde:

Aanbeveel: