O projeto visa criar um vaso inteligente que possa automaticamente cuidar de uma planta, provendo água e iluminação para a planta quando necessário, além de apresentar o estado atual da planta a partir de um display LCD e de uma comunicação Bluetooth.
- Sensor de umidade de solo (Higrômetro)
- Sensor de luz (LDR)
- Sensor de presença (HC-SR501)
- Bluetooth (HC08)
- Real Time Clock (DS1307)
- Display OLED (Adafruit SSD1306 128x32)
- Mini bomba de água
- Fita de LEDs
Nome | RA | GitHub |
---|---|---|
Felipe Andrade | 15.00175-0 | Kaisen-san |
Matheus Mandotti | 16.00177-0 | matheusmf1 |
Vinícius Pereira | 16.03343-4 | VinPer |
*Pino Mbed -> Pino device
Pinos fixos:
P5 -> MOSI
P6 -> MISO (display utilizado não possui pino MISO)
P7 -> CLK
Pinos variáveis (P21 à P26):
P23 -> RES
P24 -> DC
P25 -> CS
Declaração SPI: SPI(MOSI, MISO, CLK)
Declaração OLED: Adafruit_SSD1306_Spi(SPI, DC, RES, CS, altura, largura)
Pinos fixos:
P27 -> TX
P28 -> RX
Declaração BLUETOOTH: Serial(RX, TX)
Pinos variáveis (P21 à P26):
P21 -> IN3 (da ponte H)
Fios:
Marrom -> VCC (12V)
Azul -> GND
Declaração BOMBA: PwmOut(IN3)
Pinos variáveis (P21 à P26):
P22 -> IN2 (da ponte H);
Fios:
Vermelho -> VCC (12V)
Preto -> GND
Declaração LED: PwmOut(IN2)
Pinos variáveis (P15 à P20):
P15 -> AO
Declaração LDR: AnalogIn(A0)
Pinos variáveis (P15 à P20):
P16 -> AO
Declaração HIGROMETRO: AnalogIn(A0)
Pinos variáveis (P15 à P20):
P17 -> AO
Declaração HIGROMETRO: AnalogIn(A0)
Pinos variáveis (P5 à P30):
P18 -> OUT
Declaração HIGROMETRO: AnalogIn(OUT)
Pinos fixos:
P9 -> SDA
P10 -> SCL
Declaração RTC: DS1307(SDA, SCL)
- Informa o usuário para reabastecer o reservatório de água, caso o nível de água esteja muito baixo
Lembrando que quanto menor o nível, maior o valor do sensor.
- Rega a planta quando o nível de umidade detectado estiver abaixo do configurado
- Não rega a planta se não tiver decorrido um determinado tempo desde a última irrigação
Lembrando que quanto menor a umidade, maior o valor do sensor.
- Mantem a fita de LED sempre ligada caso o usuário tenha configurado assim
- Caso contrário, liga/desliga a fita de LED se o nível de luz durante o dia estiver muito baixo
- Mantem a luz ligada/desligada durante um determinado tempo desde a última mudança
Lembrando que quanto menor a luminosidade, maior o valor do sensor.
- Reage por meio do display quando detecta presença de alguém
- Não faz nada se não tiver decorrido um determinado tempo desde a última presença detectada
--> Configuração inicial
--> while (true)
----> Atualiza as variáveis
----> Checa e responde aos comandos enviados por Bluetooth
----> if isSleepTime
------> // Entra no estado de sleep
----> else
------> // Entra no estado normal
------> Checa os sensores e age conforme necessário*
*Para maiores detalhes, olhar o Funcionamento do programa.
--> Configuração inicial
--> while (true)
----> Exibe os valores lidos de todos os sensores
----> Testa o comportamento dos dispositivos
Documentação oficial Mbed OS
Biblioteca Adafruit GFX
Biblioteca DS1307