This shows you the differences between two versions of the page.
|
pm:prj2021:abasoc:smartwatering [2021/05/02 23:47] nicolae_iulian.nitu |
pm:prj2021:abasoc:smartwatering [2021/06/03 03:49] (current) nicolae_iulian.nitu |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Smart Watering -====== | + | ====== Smart Watering ====== |
| <note tip>**Autor:** \\ | <note tip>**Autor:** \\ | ||
| Line 12: | Line 12: | ||
| Smart Watering își propune sa fie un sistem care udă automat plantele, în funcție de nivelul de umiditate din sol. | Smart Watering își propune sa fie un sistem care udă automat plantele, în funcție de nivelul de umiditate din sol. | ||
| - | Smart Watering va notifica utilizatorul printr-un buzzer atunci cand rezervorul de apa este aproape gol. | + | Smart Watering va notifica utilizatorul printr-un buzzer atunci când rezervorul de apa este aproape gol. |
| - | Datele furnizate de senzorul de umiditate vor fi prelucrate pe Arduino, iar intre anumite valori se va actiona automat o mini pompa de apa. | + | Datele furnizate de senzorul de umiditate vor fi prelucrate pe Arduino, iar intre anumite valori se va acționa automat o mini pompa de apă. |
| Cu ajutorul modulului ESP8266 de pe plăcuță, utilizatorul va putea acționa pompa de pe telefonul mobil printr-o singură apăsare. | Cu ajutorul modulului ESP8266 de pe plăcuță, utilizatorul va putea acționa pompa de pe telefonul mobil printr-o singură apăsare. | ||
| Line 22: | Line 22: | ||
| \\ | \\ | ||
| - | **Diagrama bloc corespunzatoare proiectului:** \\ | + | **Diagrama bloc corespunzătoare proiectului:** \\ |
| {{ :pm:prj2021:abasoc:diagramabloc_Nic.jpeg?700}} \\ | {{ :pm:prj2021:abasoc:diagramabloc_Nic.jpeg?700}} \\ | ||
| Line 31: | Line 31: | ||
| ^Componentă ^Număr ^ | ^Componentă ^Număr ^ | ||
| |Arduino Uno |1 | | |Arduino Uno |1 | | ||
| - | |Plusivo Micro ESP8266 |1 | | + | |NodeMCU Lua ESP8266 Wifi |1 | |
| - | |Breadboard |2 | | + | |Breadboard |1 | |
| |Mini pompă de apa |1 | | |Mini pompă de apa |1 | | ||
| |Modul senzor umiditate sol |1 | | | |Modul senzor umiditate sol |1 | | | ||
| |Modul senzor nivel apa |1 | | | |Modul senzor nivel apa |1 | | | ||
| |Buzzer |1 | | |Buzzer |1 | | ||
| - | |Baterie 9V |1 | | ||
| - | |Rezistență 10k |1 | | ||
| |Rezistență 1k |1 | | |Rezistență 1k |1 | | ||
| |Mini tub |1 | | | |Mini tub |1 | | | ||
| Line 45: | Line 43: | ||
| \\ | \\ | ||
| - | **Diagrama electrică corespunzatoare proiectului:** \\ | + | **Diagrama electrică corespunzătoare proiectului:** \\ |
| - | {{ :pm:prj2021:abasoc:}} \\ | + | {{ :pm:prj2021:abasoc:schemaElectrica_Nic.png?700}} \\ |
| \\ | \\ | ||
| ====== Software Design ====== | ====== Software Design ====== | ||
| + | |||
| + | * Mediu de dezvoltare: Arduino IDE | ||
| + | |||
| + | |||
| + | ===== Arduino Uno ===== | ||
| + | |||
| + | ==== Funcționare ==== | ||
| + | Pentru a calibra senzorii, am testat situații diverse si am salvat valorile obținute in câteva constante. | ||
| + | În setup() setez pin-ul folosit de pompa de apă să fie de OUTPUT. | ||
| + | |||
| + | În loop() citesc valorile de la senzorul de umiditate si de la senzorul de nivelul apei. Apoi transform acele valori in procente de la 0 la 100% si le printez Serial. | ||
| + | Daca nivelul de apa din rezervor este sub un anumit prag, atunci se va activa buzzerul. | ||
| + | Daca procentul de umiditate este sub un anumit prag, iar nivelul de apa din rezervor este suficiente, atunci se va activa automat pompa de apă. | ||
| + | |||
| + | Apoi cu ajutorul bibliotecii "SoftwareSerial" realizez o comunicare seriala intre Arduino Uno si NodeMCU Lua ESP8266. Astfel Arduino este receptorul si primește comenzi prin Wifi pentru a porni/opri pompa de apă. | ||
| + | |||
| + | ===== NodeMCU Lua ESP8266 ===== | ||
| + | |||
| + | ==== Funcționare ==== | ||
| + | În setup() Prin intermediul bibliotecii "ESP8266WiFi", mă conectez la rețeaua WiFi din casă cu ssid si parolă | ||
| + | Atunci când conexiunea se realizează cu succes, voi inițializa serverul pe portul 80 și printez serial IP-ul folosit de către server. | ||
| + | |||
| + | În loop() atunci când se conectează un nou client la server printez mesaje corespunzătoare. | ||
| + | |||
| + | Apoi aștept clientul să trimită niște date. În caz afirmativ, citesc Requestul de tip GET și încerc să ii fac match. | ||
| + | |||
| + | Dacă requestul conține string-ul "waterPump=ON", atunci trimit un mesaj către Arduino pentru a porni pompa. | ||
| + | Dacă requestul conține string-ul "waterPump=OFF", atunci trimit un mesaj către Arduino pentru a opri pompa. | ||
| + | |||
| + | De asemenea, am realizat renderea website ului cu ajutorul unui HTML clasic. | ||
| ====== Rezultate Obţinute ====== | ====== Rezultate Obţinute ====== | ||
| + | {{ :pm:prj2021:abasoc:succes_nic.jpeg?700}} \\ | ||
| + | |||
| + | ===== Demo ===== | ||
| + | |||
| + | * Link Demo: https://drive.google.com/file/d/19w2IABsdjAw6slr_jkf_FzLSHeoTKEP-/view | ||
| ====== Concluzii ====== | ====== Concluzii ====== | ||
| + | Mi-a făcut plăcere să sa îmbin hardwareul cu softwareul și consider că am înțeles mai bine anumite concepte. | ||
| + | |||
| + | Doresc să extind acest proiect pentru a realiza o seră complet autonomă. | ||
| + | |||
| + | Am întâmpinat dificultăți cu afișarea mesajelor pe LCD. Maybe l-am stricat atunci când am lipit pinii. | ||
| ====== Download ====== | ====== Download ====== | ||
| + | * Cod sursă: {{ :pm:prj2021:abasoc:SmartWatering_codSursa.zip }} | ||
| ====== Jurnal ====== | ====== Jurnal ====== | ||
| + | |||
| + | * **29/04/2021** - Realizarea schemei bloc | ||
| + | * **30/04/2021** - Publicarea paginii | ||
| + | * **30/04/2021** - Realizarea schemei electrice | ||
| + | * **10/05/2021** - Calibrarea senzorilor de umiditate și nivelul apei | ||
| + | * **20/05/2021** - Am reușit să activez pompa de apă automat | ||
| + | * **21/05/2021** - NodeMCU Lua ESP8266 se conectează cu succes la Wifi și permite activarea/oprirea pompei de pe telefonul mobil | ||
| + | * **22/05/2021** - Se testează proiectul în condiții variate de umiditate si totul este conform așteptărilor | ||
| + | |||
| ====== Bibliografie/Resurse ====== | ====== Bibliografie/Resurse ====== | ||
| [[ https://ocw.cs.pub.ro/courses/pm/prj2021/abasoc/smartwatering?do=export_pdf| Export PDF ]] | [[ https://ocw.cs.pub.ro/courses/pm/prj2021/abasoc/smartwatering?do=export_pdf| Export PDF ]] | ||
| + | * https://ocw.cs.pub.ro/courses/pm/lab/lab1-2021 | ||
| + | * https://ocw.cs.pub.ro/courses/pm/lab/lab2-2021 | ||
| + | * https://github.com/esp8266/Arduino | ||
| + | * https://lastminuteengineers.com/soil-moisture-sensor-arduino-tutorial/ | ||
| + | * https://lastminuteengineers.com/water-level-sensor-arduino-tutorial/ | ||
| + | * https://www.cuidevices.com/blog/buzzer-basics-technologies-tones-and-driving-circuits | ||