This is an old revision of the document!
Proiectul constă în realizarea unei stații meteorologice inteligente avansate care:
Schemă bloc a proiectului:
Listă de piese:
1. Placă Arduino Wemos R32 (cu modul wi-fi implementat): 2. Senzor de temperatură și umiditate: DHT11 3. Senzor de calitate a aerului: MQ135 4. Breadboard 5. Display 16x2 7. Fire de conexiune 10. Modul RTC (Real Time Clock)
In schema de pe thinkercad nu am inclus modulul RTC, de asemenea senzorul de calitatea aerului a fost reprezentat printr-un senzor de gaz.
Librării utilizate în acest proiect:
Wire.h: O bibliotecă care oferă comunicare I2C, utilizată pentru interacțiunea cu display-ul LCD și cu RTC.
LiquidCrystal_I2C.h: Biblioteca care controlează display-ul LCD.
DHT.h: Biblioteca utilizată pentru a comunica cu senzorul DHT11.
MQ135.h: Biblioteca folosită pentru a comunica cu senzorul de calitate a aerului MQ135.
RTClib.h: O bibliotecă pentru a lucra cu Real-Time Clock.
WiFi.h: O bibliotecă care permite conectarea la o rețea WiFi și comunicarea prin aceasta.
HTTPClient.h: Biblioteca pentru efectuarea de cereri HTTP (POST, în cazul nostru).
Structura codului este simplă și se bazează pe două funcții principale ale Arduino IDE:
setup(): Aceasta este funcția unde toate modulele hardware sunt inițializate. Se inițializează modulul LCD, senzorul de temperatură și umiditate (DHT11), senzorul de calitate a aerului (MQ135) și Real Time Clock (RTC).
De asemenea, se inițializează modulul WiFi și se conectează la rețeaua specificată prin SSID și parola. În cazul în care conexiunea la WiFi nu reușește, Arduino începe un proces de reîncercare la fiecare secundă. După ce s-a realizat conexiunea, adresa IP alocată modulului WiFi este afișată pe LCD.
loop(): Aceasta este funcția unde se realizează citirea datelor de la senzorii conectați, afișarea lor pe LCD și trimiterea lor pe server.
La începutul funcției loop, se inițializează clientul HTTP care va fi folosit pentru a trimite cereri HTTP la serverul nostru. Se adaugă apoi un header pentru a specifica că tipul de conținut care va fi trimis va fi text.
Se creează apoi trei șiruri de caractere, unul pentru fiecare dată pe care dorim să o trimitem la server: temperatura, umiditatea și calitatea aerului.
Următoarea buclă for trece prin toate aceste șiruri de caractere și pentru fiecare dintre ele, actualizează display-ul LCD cu ora curentă și cu valoarea datelor, apoi trimite o cerere HTTP POST către server cu datele. Această buclă se repetă la fiecare secundă.
După ce toate datele au fost trimise la server, se închide clientul HTTP. De asemenea, există funcții auxiliare pentru conversia datelor de la senzori în șiruri de caractere, pentru afișarea timpului și pentru ștergerea unui rând de pe display.
07.05 - Creat pagina de proiect și adăugat documentația inițială