This shows you the differences between two versions of the page.
pm:prj2023:fstancu:vlad.dumitru1305 [2023/05/07 19:26] vlad.dumitru1305 [Descriere generală] |
pm:prj2023:fstancu:vlad.dumitru1305 [2023/05/30 00:03] (current) vlad.dumitru1305 |
||
---|---|---|---|
Line 2: | Line 2: | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | Proiectul ales consta intr-o statie de monitorizare meteo. Sistemul capteaza date atat online (OpenWeather), cat si fizic (senzor de temperatura). Astfel se vor afisa (pe un LCD) detalii precum temperatura si umiditatea sprecifice localitatii si pozitiei curente (interior / exterior). | + | Proiectul ales consta intr-o statie de monitorizare meteo. Sistemul capteaza date atat online (OpenWeather), cat si fizic (senzor de temperatura). Astfel se vor afisa (pe un LCD) detalii precum temperatura si umiditatea sprecifice localitatii si pozitiei curente (interior / exterior). Acest sitem are scopul de a usura accesul utilizatorului la datele meteo de interes (locale). |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
Line 9: | Line 9: | ||
==== Schema bloc ==== | ==== Schema bloc ==== | ||
- | {{:pm:prj2023:fstancu:schema_bloc.png?nolink|}} | + | {{:pm:prj2023:fstancu:schema_bloc.png?nolink&600|}} |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 21: | Line 21: | ||
* Fire conexiune | * Fire conexiune | ||
* Rezistente | * Rezistente | ||
+ | |||
+ | ==== Scheme hardware ==== | ||
+ | |||
+ | {{:pm:prj2023:fstancu:dumitru_vlad_tinker.png?nolink&600|}} | ||
+ | |||
+ | {{:pm:prj2023:fstancu:dumitru_vlad_tinker2.png?nolink&600|}} | ||
+ | |||
===== Software Design ===== | ===== Software Design ===== | ||
+ | ==== Mediu de dezvoltare ==== | ||
+ | [[https://support.arduino.cc/hc/en-us/articles/360019833020-Download-and-install-Arduino-IDE | Arduino IDE]] | ||
+ | ==== Librarii si surse 3rd-party ==== | ||
- | ===== Rezultate Obţinute ===== | + | * [[https://github.com/arduino-libraries/Arduino_JSON | Arduino_JSON]] |
+ | * [[https://github.com/RobTillaart/DHTlib | DHTlib]] | ||
+ | * [[https://github.com/johnrickman/LiquidCrystal_I2C | LiquidCrystal_I2C]] | ||
- | ===== Concluzii ===== | + | * [[https://arduino.esp8266.com/stable/package_esp8266com_index.json | ESP8266 Package]] |
- | ===== Download ===== | + | ==== Surse si functii implementate ==== |
+ | === ESP8266.ino === | ||
+ | * <code c++> connectToWiFi() </code> | ||
+ | * Realizeaza conectarea la reteaua WiFi si asteapta o conexiune stabila. | ||
+ | * <code c++> httpGETRequest(const char* path) </code> | ||
+ | * Realizeaza conexiunea HTTP catre //path// dat ca argument. | ||
+ | * Realizeaza cerere HTTP de tip GET si returneaza rezultatul. | ||
+ | * <code c++> sendData() </code> | ||
+ | * Construieste pachetul de date - delimitat de caracterele //<// si //>//. | ||
+ | * Trimite pachetul catre dispozitivul conectat, prin interfata seriala USART. | ||
+ | * <code c++> setup(void) </code> | ||
+ | * Seteaza BAUD rate-ul. | ||
+ | * Apeleaza functia //connectToWiFi()//. | ||
+ | * <code c++> loop() </code> | ||
+ | * La intervale de 10 minute, este apelata functia //httpGETRequest(const char* path)//. | ||
+ | * Se prelucreaza rezultatul (intors sub forma de JSON) si se inregistreaza temperatura si umiditatea curente. | ||
+ | * In cazul in care conexiunea WiFi a fost intrerupta, se va incerca reconectarea. | ||
+ | * Datele inregistrate se trimit constant, actualizandu-se doar dupa intervalul de 10 minute. | ||
- | ===== Jurnal ===== | + | === Arduino.ino === |
+ | * <code c++> printLCD(int temp, int humidity, int location) </code> | ||
+ | * Scrie pe LCD datele primite ca argument (impreuna cu simboluri expresive). | ||
+ | * <code c++> printDHT() </code> | ||
+ | * Inregistreaza datele citite de catre senzorul DHT. | ||
+ | * Apeleza functia //printLCD(int temp, int humidity, int location)// cu datele citite. | ||
+ | * <code c++> printWiFi() </code> | ||
+ | * Daca exista date disponibile pentru a fi citite, se vor inregistra, prelucra si afisa (asemenea DHT). | ||
+ | * <code c++> setup(void) </code> | ||
+ | * Seteaza BAUD rate-ul. | ||
+ | * Initializeaza LCD-ul. | ||
+ | * Construieste simbolurile folosite in afisare. | ||
+ | * <code c++> loop() </code> | ||
+ | * Apeleaza functiile //printDHT()// si //printWiFi()// cu o pauza de 5 secunde intre ele. | ||
+ | |||
+ | ===== Rezultate Obţinute ===== | ||
+ | |||
+ | {{:pm:prj2023:fstancu:local.jpeg?nolink&600|}} | ||
+ | {{:pm:prj2023:fstancu:city.jpeg?nolink&600|}} | ||
+ | |||
+ | |||
+ | ===== Concluzii ===== | ||
+ | |||
+ | * Proiectul poate deveni chiar folositor daca i se imbunatateste portabilitatea + folosirea unui cadru pentru piese. | ||
+ | * A fost interesant procesul de realizare a proiectului - de la alegerea pieselor la scrierea codului. | ||
+ | * Nu cred ca voi refolosi piesele utilizate. | ||
+ | ===== Download ===== | ||
+ | |||
+ | {{:pm:prj2023:fstancu:surse_meteo.7z|}} | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
+ | ==== Resurse Software / Hardware ==== | ||
+ | |||
+ | * [[https://www.circuitbasics.com/how-to-set-up-the-dht11-humidity-sensor-on-an-arduino/]] | ||
+ | * [[https://lastminuteengineers.com/i2c-lcd-arduino-tutorial/]] | ||
+ | * [[https://www.hackster.io/jacoslabbert99/arduino-lcd-icons-custom-characters-548f38]] | ||
+ | * [[https://www.instructables.com/IoT-ESP8266-Series-1-Connect-to-WIFI-Router/]] | ||
+ | * [[https://randomnerdtutorials.com/esp8266-nodemcu-http-get-post-arduino/]] | ||
+ | * [[https://robotic-controls.com/learn/arduino/arduino-arduino-serial-communication]] | ||