Sistem IoT de irigare
Introducere
Sistem IoT de irigare compus din doua tipuri de componente cu conexiune la internet prin wifi si un REST API Server la distanta:
Descriere generală
Sistemul poate contine oricate Noduri (Sonde/Actuatori).
Orice Nod poate fi accesat la orice moment, prin access point (sau reteaua wifi la care este conectat daca este cazul), pentru a i se seta numele, zona si credentialele pentru wifi. Aceste date sunt salvate in memoria de stocare flash si sunt persistente la repornirea Nodului, deci nu este nevoie setarea lor de fiecare data cand porneste sistemul.
Sondele sunt modulele cu senzor. Citesc umiditatea solului printr-un senzor analogic si trimit datele printr-o cerere HTTP Post catre Serverul la distanta.
Actuatorii sunt modulele cu pompa de apa. Citesc valorile de pe Server prin cereri HTTP Get si trimit un semnal catre releul ce porneste pompa de apa, alimentata de la un acumulator 18650 cu circuit de protectie.
Schema bloc
Hardware Design
Lista piese
Design circuit
Software Design
Mediu de dezvoltare
Biblioteci folosite
FS - pentru salvarea datelor persistente pe memoria de stocare flash
ESP8266WiFi - pentru deschiderea unui access point si conexiunea wifi
ESP8266WebServer - pentru rularea Serverului local la care utilizatorul se conecteaza pentru setarea credentialelor wifi
ESP8266HTTPClient - pentru trimiterea de cereri catre Serverul la distanta
ArduinoJson - pentru serializarea si deserializarea valorilor rezultate din comunicarea cu Serverul la distanta
Descriere functionalitate
La prima pornire a unui Nod, este deschis un access point cu nume unic la care te poti conecta de pe pc/telefon
Este pornit un web server care poate fi accesat la 192.168.4.1
si serveste pagina unde pot fi setate credentialele wifi, numele, zona si tipul nodului:
Dupa setarea credentialelor:
Se incearca conectarea la reteaua wifi primita. Daca nu merge, se afiseaza un mesaj de eroare in clientul conectat la web server care a initiat conectarea si se incearca din nou
Dupa conectarea la wifi, se trimite o cerere de autentificare catre Serverul la distanta si este primit un token de acces care se salveaza si va fi inclus in toate cererile urmatoare catre Serverul la distanta
Timerul produce intreruperi la fiecare 5 secunde - marcheaza ca se poate trimitere o cerere catre Serverul la distanta:
Sonda
Citeste umiditatea solului de la senzorul analogic
Trimite cererea post catre Serverul la distanta printr-o cerere HTTP Post
Actuatorul
Citeste umiditatea solului de la Serverul la distanta printr-o cerere HTTP Get
Trimite semnalul de pornire/oprire catre releul conectat la pompa de apa
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
Jurnal
Voiam sa controlez pompa de apa prin PWM cu un modul cu mosfet, dar ce am comandat eu merge pe minim 4V (pe optimusdigital scrie ca poate fi comandat si cu 3.3v dar nu e cazul), iar esp8266 are iesiri doar pe 3.3v. In schimb, releul a mers si cu 3.3v
Bibliografie/Resurse