/IntelliVase

Projeto vaso inteligente utilizando microcontrolador Mbed LPC1768

Primary LanguageC

Projeto: IntelliVase

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.

Componentes utilizados

  • 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

Integrantes

Nome RA GitHub
Felipe Andrade 15.00175-0 Kaisen-san
Matheus Mandotti 16.00177-0 matheusmf1
Vinícius Pereira 16.03343-4 VinPer

Disposição dos componentes no Mbed

*Pino Mbed -> Pino device

OLED

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)

BLUETOOTH

Pinos fixos:
  P27 -> TX
  P28 -> RX

Declaração BLUETOOTH: Serial(RX, TX)

BOMBA DE ÁGUA

Pinos variáveis (P21 à P26):
  P21 -> IN3 (da ponte H)

Fios:
  Marrom -> VCC (12V)
  Azul -> GND

Declaração BOMBA: PwmOut(IN3)

FITA DE LED

Pinos variáveis (P21 à P26):
  P22 -> IN2 (da ponte H);

Fios:
  Vermelho -> VCC (12V)
  Preto -> GND

Declaração LED: PwmOut(IN2)

LDR

Pinos variáveis (P15 à P20):
  P15 -> AO

Declaração LDR: AnalogIn(A0)

HIGRÔMETRO - Terra

Pinos variáveis (P15 à P20):
  P16 -> AO

Declaração HIGROMETRO: AnalogIn(A0)

HIGRÔMETRO - Água

Pinos variáveis (P15 à P20):
  P17 -> AO

Declaração HIGROMETRO: AnalogIn(A0)

SENSOR DE PRESENÇA

Pinos variáveis (P5 à P30):
  P18 -> OUT

Declaração HIGROMETRO: AnalogIn(OUT)

RTC

Pinos fixos:
  P9 -> SDA
  P10 -> SCL

Declaração RTC: DS1307(SDA, SCL)

Funcionamento do programa

HIGRÔMETRO (ÁGUA) E BOMBA DE ÁGUA

- 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.

HIGRÔMETRO (TERRA)

- 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.

LDR, FITA DE LED E RTC

- 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.

SENSOR DE PRESENÇA

- 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

Fluxos do programa

Principal

--> 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.

Debug

--> Configuração inicial
--> while (true)
----> Exibe os valores lidos de todos os sensores
----> Testa o comportamento dos dispositivos

Processo de montagem

Imp1 Imp2
Processo de impermeabilização Processo de impermeabilização
Circ ApEx1
Circuito interno Aparência externa
LEDs ApEx2
LEDs em funcionamento Aparência externa
EmFunc1 EmFunc2
IntelliVase em funcionamento IntelliVase em funcionamento
EmFunc3 EmFunc4
IntelliVase em funcionamento IntelliVase em funcionamento

Referências

Documentação oficial Mbed OS
Biblioteca Adafruit GFX
Biblioteca DS1307