Inhoudsopgave:

Temperatuur-, vochtigheidsmonitor - Arduino Mega + Ethernet W5100 - Ajarnpa
Temperatuur-, vochtigheidsmonitor - Arduino Mega + Ethernet W5100 - Ajarnpa

Video: Temperatuur-, vochtigheidsmonitor - Arduino Mega + Ethernet W5100 - Ajarnpa

Video: Temperatuur-, vochtigheidsmonitor - Arduino Mega + Ethernet W5100 - Ajarnpa
Video: Ecobee Sensoren: Maximaliseer comfort en minimaliseer de energierekening VS! 2024, Juli-
Anonim
Temperatuur-, vochtigheidsmonitor - Arduino Mega + Ethernet W5100
Temperatuur-, vochtigheidsmonitor - Arduino Mega + Ethernet W5100

Module 1 - VLAK - hardware:

  • Arduino Mega 2560
  • Wiznet W5100 Ethernet-schild
  • 8x DS18B20 temperatuursensor op OneWire bus - verdeeld in 4 OneWire bussen (2, 4, 1, 1)
  • 2x digitale temperatuur- en vochtigheidssensor DHT22 (AM2302)
  • 1x temperatuur- en vochtigheidssensor SENSIRION SHT21 (Si7021)
  • 1x BOSCH BME280 temperatuur- en vochtigheids- (en luchtdruk) sensor
  • Verzendt gegevens van alle sensoren tegelijk in enkele minuten (kan worden gewijzigd)

Module 2 - KETEL - hardware:

  • Arduino Mega 2560
  • Wiznet W5100 Ethernet-schild
  • 16x DS18B20 temperatuursensor op OneWire bus - verdeeld in 7 OneWire bussen (2, 2, 2, 2, 2, 2, 4)
  • 8x digitale ingang
  • 8x digitale uitgang - voor solenoïde / relais
  • Verzendt gegevens van alle sensoren tegelijk in enkele minuten (kan worden gewijzigd)
  • Het leest de toestanden van individuele uitgangen van de webinterface, past ze toe Verstuurt digitale ingangstoestanden

Stap 1: Inleiding

Invoering
Invoering
Invoering
Invoering
Invoering
Invoering

Vandaag zal ik in detail het laatst gerealiseerde project presenteren, dat vrij complex is qua functionaliteit, aantal gebruikte sensoren, Arduino-boards, gebruikte databussen. Het project bestaat uit twee modules. Fysiek bestaat elke module uit een afzonderlijke Arduino Mega 2560, Ethernet-schild W5100 (R3-compatibel) en de sensoren die het gebruikt.

Elke module communiceert met de webinterface op internet via HTTP POST-verzoeken, waarbij de webserver gegevens verkoopt of bepaalde gegevens opvraagt, bijvoorbeeld via POST-verzoek (alleen module 2). De webinterface wordt aangevuld met een inlogsysteem, terwijl het hele gezin zich bij het systeem kan registreren, elk met zijn naam en wachtwoord. Het is dus een applicatie voor meerdere gebruikers waarbij elk gezinslid een overzicht heeft van beide modules en verschillende acties kan uitvoeren - het instellen van de referentietemperatuur, controlethermometer, enz. Webinterface is geprogrammeerd in PHP, gegevens worden opgeslagen in MySQL-database. Elk van de modules heeft een aparte tabel in de database voor gegevens. Overweeg de afzonderlijke modules in meer detail.

Stap 2: Module 1 - FLAT

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

De hele module 1-FLAT dient alleen als temperatuurmonitor in individuele kamers, het heeft geen andere rol. DHT22-sensoren werden over een lange afstand gebruikt met een geschikte optrekweerstand van 10 kohm om de vochtigheid in de badkamers te registreren. Omdat de BME280 en SHT21 communiceren via de I2C-bus en dit aanzienlijk beperkt is in termen van busdriverlengtes, worden sensoren in de buurt van Arduino in kamers gebruikt.

De DS18B20-temperatuursensoren zijn verdeeld in 4 bussen, omdat er twee externe sensoren worden gebruikt, waardoor ze gemakkelijker kunnen worden aangesloten op afzonderlijke Arduino-uitgangen en, in het geval van een sensorverlies, is het gemakkelijker te vervangen omdat het de functionaliteit niet verlamt van het systeem.

Bijvoorbeeld in het geval van een van deze OneWire-bussen, waarop 4 sensoren zijn geïndexeerd. De index is gekoppeld aan het fysieke adres van de thermometers, dus als een van de sensoren wordt verwisseld, kan de nieuwe sensor op de index 0 verschijnen - aanvankelijk, of zelfs 2, 3 of laatste. Door het aantal sensoren op de bussen te verminderen, kunnen we een dergelijke complicatie vermijden die kan optreden wanneer de sensor wordt vervangen.

Stap 3: Module 2 - KETEL

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

Naast de monitorfunctie heeft de module 2 - BOILER ook een belangrijkere rol, namelijk de aansturing van elektromagneten of relais voor de aansturing van radiatorkranen. De module werkt onafhankelijk van de verwarming van woningen. Module schakelt verwarming of ketel niet om. De module zorgt alleen voor het openen, sluiten van de radiatorkraan, als de kamertemperatuur lager/hoger is dan de set - zogenaamd. referentie temperatuur. Elke ruimte waar de radiatorkraan wordt aangestuurd, kan vanuit module 2 een specifieke thermometer worden toegewezen. Naast deze - automatische modus is er ook een handmatige modus waarbij de klep voor onbepaalde tijd handmatig kan worden geopend / gesloten vanuit de webinterface - hard. De digitale ingangen kunnen worden gebruikt om te controleren of de solenoïde / relais / klep is geopend / gesloten op aanvraag bij Arduina - de mogelijkheid om te vergelijken of de uitgang gelijk is aan de ingang.

Stap 4: Welke webinterface biedt?

Welke webinterface biedt?
Welke webinterface biedt?
Welke webinterface biedt?
Welke webinterface biedt?

Voor beide modules is er ook een grafische weergave van een lijndiagram voor de ontwikkeling van individuele variabelen - temperatuur, vochtigheid in 24 uur, 7 dagen. De webinterface biedt ook het bekijken van maximale / minimale, gemiddelde waarde in 24 uur, 7 dagen voor elke thermometer / hygrometer. In module 1 werd aanvankelijk gedacht aan een paar SHT21-sensoren, maar aangezien ze geen mogelijkheid hebben om het I2C-adres te wijzigen, zou het nodig zijn om een multiplexer te gebruiken voor één buscommunicatie van twee sensoren met hetzelfde I2C-adres. In het geval van defecte sensorgegevens wordt de sensornaam opgeslagen in een logboek dat de systeembeheerder op elk moment kan openen om bijvoorbeeld de OneWire-bus te onderhouden en de defecte sensor te vervangen.

Watchdog is geïmplementeerd in Arduino-programma's, die in geval van foutieve initialisatie, "bevriezen", een andere fout veilig opnieuw start en aan het begin van het programma alle uitgangen uitschakelt totdat de verbinding met de webinterface tot stand is gebracht, waar deze volledig is gesynchroniseerd in outputvoorwaarden, die het vervolgens toepast.

Meer projecten kunt u vinden op: https://arduino.php5.sk?lang=en Doneer voor meer voorbeelden:

Aanbevolen: