Nesta prática você vai aprender a controlar uma lâmpada através…
Cuide de sua plantinha com o Arduino
Você nunca mais vai deixar sua plantinha morrer por falta d’água. Com esse tutorial você vai aprender a criar um protótipo de monitoramento de umidade do solo usando o Sensor Capacitivo de Umidade do Solo junto ao Arduino . Assim, você poderá analisar se está na hora de dar água à sua plantinha ou não.
Antes de tudo, quero que você conheça o sensor principal da prática: o Sensor Capacitivo de Umidade do Solo.
O Sensor Capacitivo de Umidade do Solo é um dispositivo eletrônico desenvolvido com a finalidade de detectar / medir variações de umidade do solo. Para medir a variação da umidade no solo, utiliza-se o pino analógico disponível no sensor em conjunto com um microcontrolador que possua conversor analógico digital. Seu princípio de funcionamento é simples: a leitura é feita por detecção capacitiva, ou seja, a capacitância é variada com base no teor de água presente no solo. A capacitância é convertida em nível de tensão basicamente de 1,2 V a 3,0 V no máximo.
O grande diferencial do Sensor Capacitivo de Umidade do Solo em relação aos sensores de solo convencionais é que o mesmo é capacitivo e não resistivo. Logo, este sensor tem uma resistência a corrosão e consequentemente possui uma vida útil maior se comparado aos demais. É por isso que ele foi escolhido para a prática.
O segundo componente utilizado nesta prática foi um Display LCD com adaptador I2C. O Display LCD 16×2 com Adaptador I2C possui 16 colunas e 2 linhas. Ele pode ser utilizado em projetos onde será necessário exibir informações em tempo real, tais como temperatura, umidade, valor de tensão ou corrente, mensagens de erro e muitas outras finalidades. O grande diferencial do display usado nesta prática é que o mesmo possui um adaptador I2C, cuja a finalidade é simplificar a conexão do display a plataforma microcontrolada.
– Principio de funcionamento da prática
Vamos falar a verdade aqui: Quem nunca deixou uma planta morrer por não colocar água?
Isso certamente já aconteceu com você ou com seus pais, etc.
E para que isso não aconteça, quero te ensinar a criar um protótipo de monitoramento de umidade de solo. Assim, você saberá se sua plantinha precisa ou não ser regada.
A lógica é simples: o Sensor Capacitivo de Umidade do Solo mandará a leitura do solo para o Arduino e a plataforma converterá esta leitura em % para ser mostrado ao Display Lcd. Assim, você terá ciência se o solo está seco ou úmido.
Bora codar?
– O que vamos precisar para a prática
Para o desenvolvimento desta prática, vamos usar:
– 1 Placa ATmega328p com Cabo USB A/B (Compatível com Arduino Uno R3);
– 1 Sensor Capacitivo de Umidade do Solo;
– 1 Adaptador i2C para display (em nossa Loja Virtual você encontra o display Display LCD 16×2 com Adaptador I2C já soldado a ele. Clique aqui e confira)
Você encontra todos esses produtos e muito mais em nossa Loja Virtual. Utilize o cupom VIMDOBLOG e ganhe desconto na sua compra. Aproveite!!
– Esquema de ligação
– Tutorial de instalação e configuração do ambiente de programação do Arduino:
Se seu IDE ainda não está configurado para iniciar suas programações, execute o tutorial Arduino – Instalação e Configuração da IDE no Windows antes de dar prosseguimento na prática.
– Código da prática:
Após seu IDE estar configurado e pronto, copie o código abaixo e cole no seu IDE.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
#include <Wire.h> //INCLUSÃO DE BIBLIOTECA #include <LiquidCrystal_I2C.h> //INCLUSÃO DE BIBLIOTECA LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE); //ENDEREÇO DO I2C E DEMAIS INFORMAÇÕES //ESTA VARIÁVEL É RESPONSAVEL PELA LEITURA DO AR NO SOLO. O LIMITE SETADO FOI 600, PORTANTO O VALOR LIDO PELO SENSOR ABAIXO DE 600 MOSTRARÁ UMA DEFASAGEM DE AR NO SOLO. VOCÊ PODE COLOCAR O VALOR QUE PREFERIR const int AirValue = 600; //ESTA VARIÁVEL É RESPONSAVEL PELA LEITURA DE ÁGUA NO SOLO. O LIMITE SETADO FOI 350, PORTANTO O VALOR LIDO PELO SENSOR ABAIXO DE 350 MOSTRARÁ POUCA QUANTIDADE DE ÁGUA NO SOLO. VOCÊ PODE COLOCAR O VALOR QUE PREFERIR const int WaterValue = 350; // A CAPACITÂNCIA DO SENSOR É LIDA EM TENSÃO ( DE 1,2 V a 3,0 V). É ASSIM QUE O ARDUINO ENTENDERÁ A LEITURA DO SENSOR int soilMoistureValue = 0; // VARIÁVEL QUE ARMAZENARÁ A TENSÃO LIDA CONVERTIDA EM % int soilmoisturepercent=0; void setup(){ Serial.begin(9600); // INICIA A SERAL lcd.begin (16,2); //SETA A QUANTIDADE DE COLUNAS(16) E O NÚMERO DE LINHAS(2) DO DISPLAY lcd.setBacklight(HIGH); //LIGA O BACKLIGHT (LUZ DE FUNDO) } void loop() { soilMoistureValue = analogRead(A0); //A VARIÁVEL RECEBE O VALOR LIDO PELA ENTRADA ANALÓGICA ONDE FOI CONECRTADO O SENSOR Serial.println(soilMoistureValue);// IMPRIME O TEXTO NO MONITOR SERIAL soilmoisturepercent = map(soilMoistureValue, AirValue, WaterValue, 0, 100); //EXECUTA A FUNÇÃO "map" CONVERTENDO A LEITURA ANALÓGICA EM PORCENTAGEM if(soilmoisturepercent >= 100)// SE A PORCENTAGEM LIDA FOR MAIOR OU IGUAL A 100 { // Serial.println("100 %"); lcd.setCursor(0, 0); //POSICIONAMENTO DO CURSOR NO DISPLAY PARA APARECIMENTO DAS INFORMAÇÕES lcd.print("Umidade"); // MOSTRA O TÍTULO NA TELA lcd.setCursor(0, 1);//POSICIONAMENTO DO CURSOR NO DISPLAY PARA APARECIMENTO DAS INFORMAÇÕES lcd.print("100 %");//MOSTRA A PORCENTAGEM NA TELA delay(250); //INTERVALO lcd.clear(); //LIMPA A TELA DO DISPLAY } else if(soilmoisturepercent <=0) // SE A PORCENTAGEM LIDA FOR MAIOR OU IGUAL A 0 { // Serial.println("0 %"); lcd.setCursor(0, 0); //POSICIONAMENTO DO CURSOR NO DISPLAY PARA APARECIMENTO DAS INFORMAÇÕES lcd.print("Umidade"); // MOSTRA O TÍTULO NA TELA lcd.setCursor(0, 1); //POSICIONAMENTO DO CURSOR NO DISPLAY PARA APARECIMENTO DAS INFORMAÇÕES lcd.print("0 %"); //MOSTRA A PORCENTAGEM NA TELA delay(250); //INTERVALO lcd.clear(); //LIMPA A TELA DO DISPLAY } else if(soilmoisturepercent >0 && soilmoisturepercent < 100)// ESTE ELSE IF É O BLOCO RESPONSÁVEL POR MOSTRAR NA TELA A PORCENTAGEM LIDA SE ESTIVER ENTRE 0 E 100 { Serial.print(soilmoisturepercent); Serial.println("%"); lcd.setCursor(0, 0); //POSICIONAMENTO DO CURSOR NO DISPLAY PARA APARECIMENTO DAS INFORMAÇÕES lcd.print("Umidade");// MOSTRA O TÍTULO NA TELA lcd.setCursor(0, 1); //POSICIONAMENTO DO CURSOR NO DISPLAY PARA APARECIMENTO DAS INFORMAÇÕES lcd.print(soilmoisturepercent); //MOSTRA A PORCENTAGEM NA TELA lcd.print(" %"); delay(250); //INTERVALO lcd.clear();//LIMPA A TELA DO DISPLAY } } |
– Resultado Final
Você pode conferir o resultado desta prática no vídeo abaixo.
Torne essa prática mais interessante. Desafio você a implementar este projeto, de forma que, quando a porcentagem de umidade bater 10%, emita um sinal sonoro (espécie de alarme) para te lembrar de regar sua plantinha. Deu certo? Então faz um vídeo e marque o perfil @blogmasterwalkershop no seu instagram.
Gostou do resultado final? Então deixe seu feedback nos comentários. Estou ansiosa para saber se você desenvolveu esta prática!!!
Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop
Página no Instagram: https://www.instagram.com/blogmasterwalkershop/
Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.
Espero ter contribuído com seu aprendizado. Até a próxima!!
Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo
Postagem anterior: Explorando diferentes placas Arduino
Próxima postagem: Módulo GPS GY-NEO6MV2 – Guia completo de como usá-lo com o Arduino