Você está na página 1de 17

Pontifícia Universidade Católica de Minas Gerais

Engenharia Eletrônica e de Telecomunicações

ASPERSOR SUBTERRÂNEO AUTOMÁTICO


CONTROLADO VIA BLUETOOTH

BERNARDO CAMPOS FERREIRA DE FARI A


VINÍCIUS HENRIQUE FERREIRA S ATHLER
EMMANUEL VICTOR OLIVEIRA MELO

Belo Horizonte
11/06/2019
Pontifícia Universidade Católica de Minas Gerais
Engenharia Eletrônica e de Telecomunicações

ASPERSOR SUBTERRÂNEO AUTOMÁTICO


CONTROLADO VIA BLUETOOTH

Relatório apresentado a Pontifícia


Universidade Católica de Minas Gerais,
como parte dos requisitos necessários à
conclusão da disciplina Laboratório de
Sistemas Embutidos Microprocessados.

BERNARDO CAMPOS FERREIRA DE FARI A


VINÍCIUS HENRIQUE FERREIRA S ATHLER
EMMANUEL VICTOR OLIVEIRA MELO

Coordenador de Curso: Selmar Tarcísio Mendes


Professor da Disciplina: Hegler Kelser de Araujo Rocha

Belo Horizonte

11/06/2019

ii
SUMÁRIO

1 INTRODUÇÃO ........................................................................................................ 2

2 OBJETIVO............................................................................................................... 3

3 PROJETO ............................................................................................................... 4

4 FUNCIONAMENTO ................................................................................................. 5

5 MATERIAL UTILIZADO ........................................................................................... 7

5.1 Arduino..................................................................................................................................... 7

5.2 Microcontrolador.................................................................................................................. 7

5.3 Módulo Relé .......................................................................................................................... 8

5.4 Módulo Bluetooth HC-05 ................................................................................................. 8

5.5 MINI BOMBA DE ÁGUA – RS-385 ............................................................................ 9

6 PROGRAMA MAIN.C ............................................................................................ 10

7 CONCLUSÃO........................................................................................................ 14

REFERÊNCIAS BIBLIOGRÁFICAS ......................................................................... 15

iv
1 INTRODUÇÃO
Existem vários tipos de equipamentos responsáveis pela irrigação de variadas
plantações de grande e pequeno porte. Neste projeto, trouxemos o aspersor
subterrâneo, que é um conjunto de irrigadores que se encontram debaixo da terra
localizados entre as raízes das plantas, e pode trazer uma melhoria e economia na
irrigação quando comparada aos irrigadores mais comumente utilizados. O sistema
de aspersor subterrâneo localizado pode ser adaptável em diversos tipos de
plantações. Esse, em especial, funciona de forma automática e de forma manual,
controlado por um aplicativo desenvolvido pelo grupo.

2
2 OBJETIVO
Tinha-se como obrigatório o uso do atmega328p e a água como o tema central
para o projeto, com isso, o grupo focou num sistema de irrigação diferenciado, que
conta com um conjunto de tubulação subterrânea com a vazão controlada de forma
automática e manual.

3
3 PROJETO
O sistema foi montado numa caixa de acrílico de 0,3 m x 0,3 m x 0,08 m, com
um conjunto de quatro tubos exercendo a função dos aspersores. Uma bomba de 12
V e com vazão de 33,3 ml/s tirava a água de um reservatório e mandava para o
sistema. Tudo era controlado pelo microcontrolador ATMEGA328P, que ativava a
bomba a cada 30 minutos de forma automática, e também monitorava a todo o
momento se chegava algum dado serial do módulo Bluetooth mandado via aplicativo
pelo celular.

4
4 FUNCIONAMENTO
O sistema de aspersão funciona de forma independente sem precisar de
intervenção humana. O programa usa da interrupção por meio do temporizador, que
serve para decrementar uma variável, de segundo em segundo, num total de 30
minutos; decorrido esse tempo, a bomba é acionada por um tempo de 2 segundos.
A bomba pode ser acionada remotamente através do aplicativo que conta com
comunicação Bluetooth, no tempo desejado e calculado pelo usuário. Quando
acionada pelo aplicativo, a bomba reseta seu temporizador, fazendo com que acione
novamente em 30 minutos, caso não seja acionada via aplicativo novamente. O
aplicativo foi desenvolvido na plataforma do site MIT App Inventor.

Figura 1 – Diagrama em bloco do funcionamento do sistema.


Fonte: Própria

5
Figura 2 – Diagrama esquemático do sistema.
Fonte: Própria

Figura 3 – Página inicial do aplicativo.


Fonte: Própria

6
5 MATERIAL UTILIZADO

5.1 Arduino
No projeto, o arduino foi utilizado apenas como um programador do
ATMEGA328P (Microcontrolador) via ambiente de desenvolvimento da Atmel, Atmel
Studio 7; utilizamos também os pinos integrados do microcontrolador à placa do
Arduino.

Figura 4 – Arduino UNO.


FONTE: http://www.megaeshop.com.br

5.2 Microcontrolador
O microcontrolador utilizado foi o ATMEGA328P, que vem integrado ao
Arduino Uno; utilizamos a comunicação Serial USART do microcontrolador, nos
pinos PD0 e PD1 (Rx e Tx, respectivamente) para receber os dados via serial do
módulo Bluetooth; também utilizamos o Timer 1 para fazer o controle do modo
automático junto de algumas interrupções e outras noções ensinadas na aula teórica
da disciplina.

Figura 5 – Microcontrolador.
FONTE: https://www.webtronico.com

7
5.3 Módulo Relé
Um módulo de Relé de 5V, utilizado no projeto para poder completar o circuito
da bomba e realizar o ligamento ou desligamento da mesma; com os pinos
devidamente descrito na imagem, o controle é bem simples. Ao aplicar um sinal de
nível Alto no pingo “SIG”, o contato “NO” do relé se fechava, completando o circuito
da bomba.

Figura 6 – Módulo relé.


FONTE: https://www.robotshop.com

5.4 Módulo Bluetooth HC-05


O módulo Bluetooth HC-05 é um módulo que transforma dados recebidos via
Bluetooth para Serial (USART) e vice-versa; no projeto, foi utilizado apenas o pino
“TX” do módulo para enviar a informação do celular para o arduino. Normalmente e
necessário um circuito divisor de tensão para trabalhar com todos os pinos do
módulo, mas como somente as funções de “envio” do módulo e de “recebimento” do
arduino foram utilizadas, ligamos apenas o pino “TX” do módulo ao pino PD0 (RX)
do microcontrolador.

Figura 7 – Módulo Bluetooth.


FONTE: http://mundoprojetado.com.br

8
5.5 Mini Bomba De Água – RS-385
A bomba foi utilizada para realizar o processo de irrigação subterrânea,
acionada automaticamente a cada 30 minutos e controlada manualmente via
Bluetooth pelo celular com um tempo especificado pelo usuário em segundos. Sua
alimentação era uma fonte de 12V e consumia aproximadamente 0,5~0,7A, tendo
seu circuito completado pelo módulo de relé.

Figura 8 – Mini Bomba de Água RS-385


FONTE: https://www.usinainfo.com.br

9
6 PROGRAMA MAIN.C
/*
* Irrigador_FIC.c
*
* Created: 23/05/2019
*/

#define F_CPU 16000000UL

#define BAUD 9600


#define UBRR ((F_CPU/16/BAUD) - 1)

#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>
#include <string.h>
#include <avr/interrupt.h>

#define FALSE 0
#define TRUE 1
#define TIMER1_MODULE 62500

void inicio_USART();
unsigned char recebe_USART();

char dado [] = "00";


int segundos = 0 ;
int Timeout = 1800; // Reseta o temporizador do modo automático em 30 min
int FlagTimeout = FALSE;

10
int main(void)
{
TCCR1A = 0x00; // Desabilita o Timer1A
TCCR1B = _BV(WGM12); // Configura o Timer1B no modo CTC e compara com o OCR1A
TIMSK1 = _BV(OCIE1A); // Interrupção pelo Timer quando TCNT1 = OCR1A
OCR1A = TIMER1_MODULE; // Definindo o valor de OCR1A como 62500
TCCR1B |= _BV(CS12); // Define o Preescaler do Timer1B para 256 e Inicia o Timer1B
sei(); // Habilita interrupcoes externas
inicio_USART(); // configura a comunicacao USART
UDR0 = 0; // Zera quaisquer informacoes no registrador UDR0 (RX ou TX)
DDRB |= _BV(PORTB0) | _BV(PORTB5); // Configura os pinos PB0 e PB5 como saida
while (1) // Loop infinito
{
for (int i = 0; i<3; i++)
{
dado[i] = recebe_USART(); // Loop para receber o dado via USART (um ou dois digitos)
}

TCCR1B &= ~_BV(CS12); // Encerra o Timer1B


segundos = atoi(&dado); // Transforma o vetor dado em números inteiros (um ou dois digitos)

if (segundos == 0) // Se segundos == 0, volta para o começo do loop infinito


{
continue;
}

while(segundos > 0) // A bomba liga por X segundos, sendo X o enviado pelo Celular
{
PORTB |= _BV(PORTB0); // Nivel alto no pino PB0
_delay_ms(1000); // Delay de 1 Segundo
segundos--;
}

PORTB &= ~(_BV(PORTB0)); // Nivel Baixo no pino PB0


FlagTimeout = FALSE;
Timeout = 1800; // Reseta o temporizador do modo automatico em 30 min
TCCR1B |= _BV(CS12); // Reinicia o Timer1B
segundos=0; // limpa a variavel
}
}

11
/*
* Funcao: inicio_USART
*
* Execucao: esta funcao eh responsavel por configurar os registradores da comunicacao USART e inicializa o monitoramento
* nos pinos PD0(RX) e PD1(TX)
*/

void inicio_USART()
{
UBRR0H = (UBRR >> 8); // Registradores de definicao do Baud Rate da comunicacao USART
UBRR0L = UBRR;

UCSR0A &= ~(_BV(U2X0)); // Divisor do baudrate em 16

UCSR0B = _BV(TXEN0) | _BV(RXEN0); // Habilita o tx e o rx, desabilita as interrupcoes, caractere de 8 bits

UCSR0C = _BV(UCSZ01) | _BV(UCSZ00); // Modo asincrono, sem paridade, 1 stop bit, caracter de 8 bits

}
/*
* Funcao: recebe_USART
*
* Execucao: esta funcao eh responsavel por verificar se tem algum dado para ser recebido no RX; enquanto nao receber nada,
* o processador fica "preso" dentro do loop, executando (quando a variavel Flagtimeout esta em nivel alto) a funcao automatica
* da bomba, ligada a cada 30 min.
*/
unsigned char recebe_USART()
{
while ((!(UCSR0A & _BV(RXC0)))) // Enquanto nao terminou de ler o dado, fica "preso"
{
while(FlagTimeout) // Quando o temporizador completa 30 min, executa o loop
{
PORTB |= _BV(PORTB0); // Nivel alto no pino PB0
_delay_ms(2000);
PORTB &= ~(_BV(PORTB0)); // Nivel baixo no pino PB0
Timeout = 1800; // Reseta o temporizador do modo automatico em 30 min
TCCR1B |= _BV(CS12); // Reinicia o Timer1B
FlagTimeout = FALSE;
}
}
return UDR0;
}

12
/*
* Interrupcao: TIMER1_COMPA_vect
*
* Execucao: a cada 1 seg, o programa principal eh interrompido para decrementar o temporizador de 30 min do modo
* automatico; o LED "built In" da placa do arduino eh piscado por 1000 us (1 ms) para verificar se a interrupcao estah ocorrendo
* corretamente.
*/
ISR(TIMER1_COMPA_vect)
{
PORTB |= _BV(PORTB5); // Nivel alto no pino PB5 (led "built In" da placa do arduino)
_delay_us(1000);
PORTB &= ~(_BV(PORTB5)); // Nivel baixo no pino PB5

if (!(--Timeout)) // Decrementa o temporizador de 30 min em um seg


{
TCCR1B &= ~_BV(CS12); // Encerra o Timer1B
FlagTimeout = TRUE;
}
}

13
7 CONCLUSÃO
Este relatório abordou o funcionamento de um aspersor subterrâneo
automático controlado via Bluetooth, que teve como obrigatoriedade o uso do
arduino como apenas um sistema embarcado. Devido à obrigatoriedade
especificada, foram encontradas dificuldades ao enviar os dados seriais do módulo
Bluetooth para o microcontrolador ATMEGA328P.
Teve-se a oportunidade de desenvolver técnicas de programação e aplicar o
que foi ensinado nas aulas teóricas.
O projeto realizado atendeu as expectativas no que diz respeito ao
cumprimento das especificações e tendo em vista o pleno e perfeito funcionamento
do projeto em todo o momento das apresentações.

14
REFERÊNCIAS BIBLIOGRÁFICAS

[1] Módulo Bluetooth – Comunicando c/ Arduino – Parte 1. Disponível


em: <http://mundoprojetado.com.br/modulo-bluetooth-comunicando-c-arduino-parte-
1/>. Acesso em: 06 maio 2019.
[2] Módulo Bluetooth – Criando aplicativo – Parte 2. Disponível em:
<http://mundoprojetado.com.br/modulo-bluetooth-criando-aplicativo-parte-2/>.
Acesso em: 06 maio 2019.
[3] UART With ATMEGA328P. Disponível em:
<https://www.avrfreaks.net/forum/uart-atmega328p> Acesso em: 12 maio 2019.
[4] ATmega328P Datasheet. Disponível em:
<http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-
Microcontrollers-ATmega328P_Datasheet.pdf>. Acesso em: 12 maio 2019.

15

Você também pode gostar