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:

  • Sonda: citeste nivelul de umiditate al solului si trimite valoarea catre server
  • Actuator: citeste valoarea de la server pe baza careia actioneaza o pompa de apa

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

  • 2 x ESP8266 NodeMCU
  • Pompa de apa 3-6V
  • Senzor umiditate sol
  • Releu
  • Acumulatori 18650
  • Circuit de protectie acumulatori 4.2V
  • Fire de legatura

Design circuit

Software Design

Mediu de dezvoltare

  • Flash: Arduino IDE
  • Cod: VS Code
  • Schema bloc: diagrams.net
  • Design circuit: Tinkercad

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

  1. La prima pornire a unui Nod, este deschis un access point cu nume unic la care te poti conecta de pe pc/telefon
  2. 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:
  3. 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
  4. Timerul produce intreruperi la fiecare 5 secunde - marcheaza ca se poate trimitere o cerere catre Serverul la distanta:
    • Sonda
      1. Citeste umiditatea solului de la senzorul analogic
      2. Trimite cererea post catre Serverul la distanta printr-o cerere HTTP Post
    • Actuatorul
      1. Citeste umiditatea solului de la Serverul la distanta printr-o cerere HTTP Get
      2. 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

pm/prj2023/drtranca/sistemiotirigare.txt · Last modified: 2023/05/20 13:40 by petre.stegarus
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0