Monitoramento Residencial I

by ojrnew in Circuits > Arduino

142 Views, 0 Favorites, 0 Comments

Monitoramento Residencial I

CAPA.png

O objetivo deste primeiro projeto é iniciar os testes para
monitoramento residencial. Nesta primeira fase será utilizarei a placa de desenvolvimento Wemos D1 R32, o sensor de temperatura DHT11 e sensor de movimento Hcsr501 Pir. Para monitoramento dos dados gerados acima iremos utilizar o aplicativo Blynk. .

Step 2 - Diagrama

diagram2a.PNG

Na figura 2 podemos identificar o diagrama proposto para montagem

Step 3 - Recursos Usados

Recursos usados

1x Placa Wemos D1 R32 + Cabo USB

- Tensão de Alimetação: DC 5 V-12 V
- Possui 1 entrada analógica (3.2 V de entrada max)

- Conexão Micro USB

- Compatível com Arduino

- Placa D1 = WiFi + Bluetooth

- 4 MB Flash

1x Sensor de Temperatura e Umidade DHT11
– Faixa de medição de umidade: 20 a 90% UR;

– Faixa de medição de temperatura: 0º a 50ºC;

– Alimentação: 3-5VDC (5,5VDC máximo);

– Corrente: 200uA a 500mA, em stand by de 100uA a 150 uA;

– Precisão de umidade de medição: ± 5,0% UR;

– Precisão de medição de temperatura: ± 2.0 ºC;

– Tempo de resposta: 2s

1 x Sensor de movimento Hcsr501 Pir

- Sensor Infravermelho com controle na placa;
- Sensibilidade e tempo ajustável;

- Tensão de Operação: 4,5-20V;

- Tensão Dados: 3,3V (Alto) - 0V (Baixo);

- Distância detectável: 3-7m (Ajustável);

- Tempo de Delay: 5-200seg (Default: 5seg);

- Tempo de Bloqueio: 2,5seg (Default);

- Trigger: (L)-Não Repetível (H)-Repetível (Default: H);

- Temperatura de Trabalho: -20 ~ +80C;

- Dimensões: 3,2 x 2,4 x 1,8cm;

1x Resistor 10 kΩ

1x Protoboard

Step 4 - Diagrama Elétrico

diagrama.png

Conforme figura abaixo podemos ver o diagrama elétrico:

Step 5 - Montagem

DSC_0098.JPG

Conforme figura abaixo:

Step 6 : Blynk

blynk.png

Na figura acima podemos perceber a configuração realizada no Blynk, Foi configurado de forma que podemos visualizar a temperatura e a umidade medida.

Quando houver movimento no ambiente será detectado pelo sensor e enviado uma mensagem para o aplicativo Blynk.

Quando não houver mais movimentos no ambiente receberemos também outra mensagem informando.

Step 7 - Configuração Do Arduino IDE

configuracao.png

Conforme figura acima podemos ver as configurações para comunicação com a Placa Wemos D1 R32

Step 8 - Código De Programação

#define BLYNK_PRINT Serial

#include < WiFi.h >;

#include < BlynkSimpleEsp32.h >

#include < DHT.h >

char auth[] = "CODIGO DO BLYNK";

const char* ssid = "REDE WIFI";

const char* password = "SENHA";

#define DHTTYPE DHT11

#define DHTPIN 3

BlynkTimer timer;

//temperatura e umidade

const int pino_dht = 3; // pino onde o sensor DHT está conectado

float temperatura; // variável para armazenar o valor de temperatura

float umidade; // variável para armazenar o valor de umidade

DHT dht(pino_dht, DHT11); // define o pino e o tipo de DHT

//movimentos

const int SENSOR_MOV_1 = D4; // SENSOR DE MOVIMENTO INSTALADO NA COZINHA

int sensormov1sc; // estado atual

int sensormov1sp; // estado previo

// valor para o blynk ler

int pirValue;

void sendSensor()

{

float h = dht.readHumidity();

float t = dht.readTemperature();

if (isnan(h) || isnan(t))

{

Serial.println("Falha na leitura do dht!");

return;

}

Blynk.virtualWrite(V6, h);

Blynk.virtualWrite(V5, t);

}

void setup()

{

Serial.begin (115200);

Serial.println();

Serial.print("Conectando a ");

Serial.println(ssid);

WiFi.begin (ssid, password);

Serial.print ("Connecting to WiFi");

while(WiFi.status() != WL_CONNECTED)

{

Serial.print(".");

delay(500);

}

Serial.println("\nConnected to the Wifi network");

Serial.print(" IP address: ");

Serial.println(WiFi.localIP());

pinMode(LED_BUILTIN, OUTPUT);

Blynk.begin(auth, ssid, password);

dht.begin();

timer.setInterval(1000L, sendSensor);

// movimento

pinMode (SENSOR_MOV_1, INPUT); // DEFINE ESTADO DE LEITURA DO SENSOR DE MOVIMENTO

} // FIM VOID SETUP

void loop()

{

if ((WiFi.status() == WL_CONNECTED))

{

Serial.println("Conectado Wifi");

delay (5000);

}

else

{

Serial.println("Perdeu Conexão");

}

digitalWrite(LED_BUILTIN, HIGH);

delay(1000);

digitalWrite(LED_BUILTIN, LOW);

delay(1000);

Blynk.run();

timer.run();

// A leitura da temperatura e umidade

temperatura = dht.readTemperature(); // lê a temperatura em Celsius

umidade = dht.readHumidity(); // lê a umidade

// Se ocorreu alguma falha durante a leitura

if (isnan(umidade) || isnan(temperatura))

{

Serial.println("Falha na leitura do Sensor DHT!");

}

else

{ // Se não

// Imprime o valor de temperatura

Serial.print("Temperatura: ");

Serial.print(temperatura);

Serial.print(" *C ");

Serial.print("\t"); // tabulação

// Imprime o valor de umidade

Serial.print("Umidade: ");

Serial.print(umidade);

Serial.print(" %\t");

Serial.println(); // nova linha

}

// SENSOR DE MOVIMENTO 1

sensormov1sp = sensormov1sc; // Armazena o último estado

sensormov1sc = digitalRead (SENSOR_MOV_1); // leitura do nova estado

if (sensormov1sp == LOW && sensormov1sc == HIGH)

{

Serial.println ("MOVIMENTO DETECTADO NA COZINHA");

Blynk.notify("ALARME DECTECTADO!");

}

else

if (sensormov1sp == HIGH && sensormov1sc == LOW)

{

Serial.println ("SEM MOVIMENTOS NA COZINHA");

Blynk.notify("SEM MOVIMENTOS NA COZINHA");

}

} //FIM DO VOID LOOP

Step 9 - Vídeo

Wemos D1 R32

Conforme vídeo podemos ver o funcionamento.

Link do vídeo: https://www.youtube.com/watch?v=m_7n-wFjcas

Step 10 - Conclusão

A experiência com a programação, trabalho com os sensores e o desenvolvimento de um aplicativo para monitoramento foi bem interessante e motivante. Com isso o projeto de monitoramento continuará...