This shows you the differences between two versions of the page.
pm:prj2023:drtranca:sistemiotirigare [2023/05/20 11:51] petre.stegarus [Introducere] |
pm:prj2023:drtranca:sistemiotirigare [2023/05/20 13:40] (current) petre.stegarus [Hardware Design] |
||
---|---|---|---|
Line 8: | Line 8: | ||
===== Descriere generală ===== | ===== 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 ==== | ||
{{:pm:prj2023:drtranca:diagramapm.drawio.png?300|}} | {{:pm:prj2023:drtranca:diagramapm.drawio.png?300|}} | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 16: | Line 25: | ||
* Senzor umiditate sol | * Senzor umiditate sol | ||
* Releu | * Releu | ||
- | * Acumulatori | + | * Acumulatori 18650 |
+ | * Circuit de protectie acumulatori 4.2V | ||
* Fire de legatura | * Fire de legatura | ||
+ | |||
+ | === Design circuit === | ||
+ | {{:pm:prj2023:drtranca:iot-irrigation-circuit.png?650|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | ==== Mediu de dezvoltare ==== | ||
+ | * Flash: Arduino IDE | ||
+ | * Cod: VS Code | ||
+ | * Schema bloc: diagrams.net | ||
+ | * Design circuit: Tinkercad | ||
- | <note tip> | + | ==== Biblioteci folosite ==== |
- | Descrierea codului aplicaţiei (firmware): | + | * FS - pentru salvarea datelor persistente pe memoria de stocare flash |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * ESP8266WiFi - pentru deschiderea unui access point si conexiunea wifi |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * ESP8266WebServer - pentru rularea Serverului local la care utilizatorul se conecteaza pentru setarea credentialelor wifi |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | * ESP8266HTTPClient - pentru trimiterea de cereri catre Serverul la distanta |
- | * (etapa 3) surse şi funcţii implementate | + | * ArduinoJson - pentru serializarea si deserializarea valorilor rezultate din comunicarea cu Serverul la distanta |
- | </note> | + | |
+ | ==== 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: | ||
+ | * {{:pm:prj2023:drtranca:iot-irrigation-setup.png?200|}} | ||
+ | - 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 ===== | ===== Rezultate Obţinute ===== | ||
Line 39: | Line 70: | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | [[https://github.com/PeterStegarus/iot-smart-irrigation|github.com/PeterStegarus/iot-smart-irrigation]] |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | |
- | + | ||
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | |
- | </note> | + | |
===== Jurnal ===== | ===== Jurnal ===== | ||
- | <note tip> | + | 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 |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
- | </note> | + | |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | + | * https://www.espressif.com/sites/default/files/documentation/esp8266-technical_reference_en.pdf | |
- | <note> | + | * https://links2004.github.io/Arduino/dd/d8d/class_h_t_t_p_client.html |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * https://links2004.github.io/Arduino/d3/d58/class_e_s_p8266_web_server.html |
- | </note> | + | * https://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/readme.html |
- | + | * https://arduino-esp8266.readthedocs.io/en/latest/filesystem.html | |
- | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | + | * https://arduinojson.org/v6/doc/ |