Cuprins:

Monitor de temperatură, umiditate - Arduino Mega + Ethernet W5100: 5 pași
Monitor de temperatură, umiditate - Arduino Mega + Ethernet W5100: 5 pași

Video: Monitor de temperatură, umiditate - Arduino Mega + Ethernet W5100: 5 pași

Video: Monitor de temperatură, umiditate - Arduino Mega + Ethernet W5100: 5 pași
Video: Folosirea senzorului DHT22 cu Arduino MEGA 2560 2024, Iulie
Anonim
Monitor de temperatură, umiditate - Arduino Mega + Ethernet W5100
Monitor de temperatură, umiditate - Arduino Mega + Ethernet W5100

Modulul 1 - FLAT - hardware:

  • Arduino Mega 2560
  • Scut Ethernet Wiznet W5100
  • 8x senzor de temperatură DS18B20 pe magistrala OneWire - împărțit în 4 autobuze OneWire (2, 4, 1, 1)
  • 2x senzor digital de temperatură și umiditate DHT22 (AM2302)
  • 1x senzor de temperatură și umiditate SENSIRION SHT21 (Si7021)
  • 1x senzor de temperatură și umiditate (și presiunea aerului) BOSCH BME280
  • Trimite date de la toți senzorii simultan în câteva minute (poate fi modificat)

Modulul 2 - BOILER - hardware:

  • Arduino Mega 2560
  • Scut Ethernet Wiznet W5100
  • Senzor de temperatură 16x DS18B20 pe magistrala OneWire - împărțit în 7 autobuze OneWire (2, 2, 2, 2, 2, 2, 4)
  • 8x intrare digitală
  • 8x ieșire digitală - pentru solenoid / releu
  • Trimite date de la toți senzorii simultan în câteva minute (poate fi modificat)
  • Citește stările ieșirilor individuale din interfața web, le aplică Trimite stări de intrare digitale

Pasul 1: Introducere

Introducere
Introducere
Introducere
Introducere
Introducere
Introducere

Astăzi voi prezenta în detaliu ultimul proiect realizat, care este destul de complex în ceea ce privește funcționalitatea, numărul de senzori utilizați, plăcile Arduino, autobuzele de date folosite. Proiectul constă din două module. Din punct de vedere fizic, fiecare modul este format dintr-un Arduino Mega 2560 separat, scut Ethernet W5100 (compatibil R3) și senzorii pe care îi folosește.

Fiecare modul comunică cu interfața web de pe Internet prin cereri HTTP POST, prin care serverul web vinde date sau solicită unele date, de exemplu prin cerere POST (numai modulul 2). Interfața web este completată cu un sistem de autentificare, în timp ce întreaga familie se poate înregistra în sistem, fiecare cu numele și parola sa. Prin urmare, este o aplicație multi-utilizator în care fiecare membru al familiei are o imagine de ansamblu asupra ambelor module și poate efectua diferite acțiuni - setarea temperaturii de referință, controlul termometrului etc. Interfața web este programată în PHP, datele sunt stocate în baza de date MySQL. Fiecare dintre module are un tabel separat în baza de date pentru date. Luați în considerare modulele individuale în detaliu.

Pasul 2: Modulul 1 - PLAT

Modulul 1 - PLAT
Modulul 1 - PLAT
Modulul 1 - PLAT
Modulul 1 - PLAT

Întregul modul 1- FLAT servește doar ca monitor de temperatură în camere individuale, nu are alt rol. Senzorii DHT22 au fost utilizați pe o distanță lungă folosind un rezistor de tracțiune adecvat de 10 kohm pentru a înregistra umiditatea în băi. Deoarece BME280 și SHT21 comunică prin magistrala I2C și acest lucru este considerabil limitat în ceea ce privește lungimea șoferului de autobuz, senzorii sunt folosiți în apropierea Arduino în camere.

Senzorii de temperatură DS18B20 au fost împărțiți în 4 autobuze, deoarece sunt folosiți doi senzori externi, ceea ce face mai ușoară conectarea acestora la prizele Arduino separate și, în cazul unei căderi a senzorului, este mai ușor de înlocuit, deoarece nu paralizează funcționalitatea a sistemului.

De exemplu, în cazul unuia dintre aceste autobuze OneWire, pe care sunt indexați 4 senzori. Indexul este legat de adresa fizică a termometrelor, deci dacă unul dintre senzori este schimbat, noul senzor poate apărea pe indexul 0 - inițial, sau chiar 2, 3 sau ultimul. Astfel, prin reducerea numărului de senzori de pe autobuze, putem evita o astfel de complicație care poate apărea atunci când senzorul este înlocuit.

Pasul 3: Modulul 2 - BOILER

Modulul 2 - Cazan
Modulul 2 - Cazan
Modulul 2 - BOILER
Modulul 2 - BOILER
Modulul 2 - Cazan
Modulul 2 - Cazan

Pe lângă funcția de monitorizare, modulul 2 - BOILER are și un rol mai important, și anume controlul solenoizilor sau relei pentru controlul supapelor radiatorului. Modulul funcționează independent de încălzirea casnică. Modulul nu comută încălzirea sau cazanul. Modulul se ocupă de deschiderea, închiderea ventilului radiatorului numai dacă temperatura camerei este mai mică / mai mare decât setul - așa-numitul. temperatura de referință. Fiecărei încăperi unde se controlează supapa radiatorului i se poate atribui un termometru specific din modulul 2. În plus față de aceasta - modul automat, există și un mod manual în care supapa poate fi deschisă / închisă manual de pe interfața web pe termen nelimitat - greu. Intrările digitale pot fi utilizate pentru a verifica dacă solenoidul / releul / supapa a fost deschis / închis la cerere cu Arduina - capacitatea de a compara dacă ieșirea este egală cu intrarea.

Pasul 4: Ce oferă interfața web?

Ce oferă interfața web?
Ce oferă interfața web?
Ce oferă interfața web?
Ce oferă interfața web?

Pentru ambele module există, de asemenea, o reprezentare grafică a unei diagrame liniare pentru dezvoltarea variabilelor individuale - temperatura, umiditatea în 24 de ore, 7 zile. Interfața web oferă, de asemenea, vizualizarea valorii medii maxime / minime în 24 de ore, 7 zile pentru fiecare termometru / higrometru. În modulul 1, a fost luată în considerare inițial o pereche de senzori SHT21, dar din moment ce nu au nicio posibilitate de a schimba adresa I2C, ar fi necesar să se utilizeze un multiplexor pentru o comunicație de magistrală de la doi senzori cu aceeași adresă I2C. În cazul datelor de senzor defecte, numele senzorului este stocat într-un jurnal pe care administratorul de sistem îl poate deschide oricând pentru a deservi magistrala OneWire și înlocui senzorul defect, de exemplu.

Watchdog a fost implementat în programele Arduino, care în caz de inițializare defectuoasă, „înghețare”, o altă eroare repornește în siguranță și la începutul programului oprește toate ieșirile până când se stabilește conexiunea la interfața web, unde este complet sincronizată în termenii rezultatelor, pe care ulterior le aplică.

Mai multe proiecte puteți găsi la: https://arduino.php5.sk?lang=ro Donați pentru mai multe exemple:

Recomandat: