Cuprins
- 1. Enunt tema proiect 3
- 2. Descrierea detaliata a aplicatiei 4
- 2.1. Resursele microcontroler-ului utilizate in aplicatie si modul lor de programare
- 2.1.1. Resurse utilizate 4
- 2.1.2. Setari implicite 4
- 2.1.3. Descrierea functilor in limbaj C 5
- 3. Codul comentat 11
- 4. Schema sistem irigare. 23
- 5. Poze 24
- 6. Datasheet 27
- 6.1. Wemos Micro - WiFi cu ESP8266. 27
- 6.2. Ecran LCD (16x2) 28
- 6.3. Modul RTC DS3231. 29
- 6.4. Tastatura 4x4. 29
- 6.5. Multiplexor MCP23017. 30
- 7. Plan dezvoltare. 31
Extras din proiect
1. Enuntul temei proiectului
Tema 1
La apăsarea butonului se pornește/ oprește sistemul și se aprinde LED-ul roșu/ verde.
În funcție de umiditatea măsurată la un interval de timp se citește valoarea senzorului de umiditate și se afișează pe ecranul LCD. Dacă senzorul de umiditate citește o valoare peste un prag prestabilit udarea nu are loc în ziua curentă și se aprinde RGB de culoare albastră. Pentru ciclul de udare se ține cont și de ora curentă pentru a evita udarea plantelor pe timpul zilei sau în anumite ore prestabilite. Folosind tastatura se vor crea diverse profile de udare.
Aplicatiile propuse se implementeaza in limbaj C, in mediul de dezvoltare Arduino, cu microcontroler Wemos Micro - Placa de dezvoltare WiFi cu ESP8266 si CH340G .
Compilarea programului se face prin simulare in mediul de dezvoltare Arduino.
2. Descrierea detaliata a aplicatiei
2.1 Resursele microcontroler-ului utilizate in aplicatie si modul lor de programare
2.1.1. Resursele utilizate sunt:
- Wemos Micro - WiFi cu ESP8266 si CH340G
- LED RGB
- 2 LED-uri roșu și verde
- Modul cu senzor de umiditate a solului
- Ecran LCD (16x2)
- Buton brick
- Modul RTC DS3231
- Tastatura 4x4
- Multiplexor MCP23017
- Protocol de comunicare I2C
- Rezistori (330 Ω și 4,7 kΩ)
2.1.2. Setări implicite:
- LED rosu - HIGH, la conectarea sistemului la curent, led-ul este pornit, indicand faptul ca sistemul este oprit
- Senzor umiditate - LOW, la conectarea sistemului la curent, senzorul nu trimite date catre NodeMCU.
- La primul upload a softului se seteaza data si ora curenta modulului RTC, dupa care acest cod va fi comentat. Data si ora setate vor fi memorate in acest modul, astfel chiar daca sistemul va fi deconectat de la curent, acestea se vor incrementa datorita faptului ca modulul RTC are baterie.
Cod:
RtcDateTime currentTime;
currentTime = RtcDateTime(19, 3, 22, 15, 37, 0); rtcObject.SetDateTime(currentTime);
- Se porneste LCD-ul si se initializeaza
- Se seteaza culoarea de start a LED-ului RGB ca fiind rosu
2.1.3. Descrierea functiilor in limbaj C:
1. void printDateTime() - aceasta functie are scopul de a seta, la primul upload al codului, data si ora curenta sau orice data doreste programatorul.
void printDateTime() {
currentTime = rtcObject.GetDateTime(); char str[20];
sprintf(str, "%d/%d/%d %d:%d:%d", currentTime.Year(), currentTime.Month(), currentTime.Day(), currentTime.Hour(), currentTime.Minute(), currentTime.Second()
);
if (DEBUG) Serial.println(str);
Preview document
Conținut arhivă zip
- Proiect sincretic - Sistem Irigare.docx