Alarme de Segurança IoT: ESP8266 e Sensor PIR Completo

Construir um alarme de segurança com ESP8266 e sensor de movimentoNotificador de eventos em tempo real com ESP8266Notificador de eventos em tempo real com ESP8266Aprenda a construir um notificador de eventos em tempo real com ESP8266, integrando sensor PIR, módulo SIM800L e comunicação via Telegram, SMS ou e-mail. é um projeto acessível para proteger ambientes residenciais ou comerciais. Este guia completo abordará desde a teoria por trás do sensor PIRDetector de intrusão com ESP8266 e notificação via TelegramDetector de intrusão com ESP8266 e notificação via TelegramDescubra como montar um detector de intrusão com ESP8266 e receber alertas via Telegram em tempo real, garantindo segurança para sua residência. até a integração com serviços de notificação em tempo real, como Telegram e SMS. Você aprenderá a montar um sistema IoT completo, com configuração prática, exemplos de código detalhados, otimizações para reduzir falsos alarmes e estratégias para expandir o sistema. Combinando teoria e prática, este artigo oferece profundidade técnica e soluções adaptáveis a diferentes cenários.

Tabela de Conteúdo🔗

1. Componentes Necessários

2. Funcionamento do Sensor de Movimento PIRDetector de movimento com ESP8266 para animais de estimaçãoDetector de movimento com ESP8266 para animais de estimaçãoDescubra como monitorar seus animais de estimação com IoT utilizando ESP8266 e sensores PIR, enviando alertas via Telegram, MQTT e muito mais.

3. Configuração do ESP8266Sistema de automação residencial com ESP8266 e controle de luzesSistema de automação residencial com ESP8266 e controle de luzesEste tutorial aborda a implementação de automação residencial com ESP8266, destacando segurança, eficiência energética, integração MQTT e interface web.

4. Montagem do CircuitoDetector de fumaça com ESP8266 e alarme sonoroDetector de fumaça com ESP8266 e alarme sonoroMonte um detector de fumaça inteligente com ESP8266 e MQ-2. Tutorial que ensina montagem, programação e integração IoT para sistemas residenciais.

5. ProgramaçãoSistema de controle de cortinas automatizadas com ESP8266Sistema de controle de cortinas automatizadas com ESP8266Descubra como automatizar cortinas com ESP8266. Aprenda componentes, montagem, programação e integração IoT para conforto e eficiência energética. e Integração com APIs

6. Testes, Calibração e Redução de Falsos Positivos

7. Melhorias e Expansões Avançadas

8. Considerações Finais

Componentes Necessários🔗

ComponenteDescrição
ESP8266 (NodeMCU)Módulo Wi-Fi para comunicação IoT.
Sensor PIR (HC-SR501)Detecta movimento através de radiação infravermelha passiva.
Buzzer Ativo (5V)Emite alertas sonoros quando movimento é detectado.
LED VermelhoIndicação visual de alarme ativado.
Resistor 220ΩLimita a corrente do LED.
Protoboard e JumpersPara montagem temporária do circuito durante testes.
Fonte de AlimentaçãoUSB ou bateria externa (recomendado 5V/1A).
Módulo GSM (Opcional)Para envio de SMS sem dependência de Wi-Fi.

Funcionamento do Sensor de Movimento PIR🔗

O sensor PIRDetector de intrusão com ESP8266 e notificação via TelegramDetector de intrusão com ESP8266 e notificação via TelegramDescubra como montar um detector de intrusão com ESP8266 e receber alertas via Telegram em tempo real, garantindo segurança para sua residência. (Passive Infrared) detecta variações na radiação infravermelha emitida por corpos em movimento. Sua operação combina física térmica e eletrônica analógica:

Princípio de Detecção

1. Campo Térmico Dual: Dois slots sensíveis a IR comparam a radiação ambiente. Movimentos criam diferenças entre os slots.

2. Processamento de Sinal: Um circuito analógico (BISS0001) filtra ruídos e gera um pulso digital de saída.

Ajustes Técnicos

flowchart LR A[Objeto em Movimento] --> B(Sensor PIR) B --> C{Comparação de IR} C -->|Diferença > Limiar| D["Saída HIGH (3.3V)"] C -->|Estável| E["Saída LOW (0V)"]
  • Potenciômetros:
    • Tx: Controla duração do sinal HIGH (3s a 5min).
    • Sx: Ajusta sensibilidade (até 7m de alcance).

Dicas Críticas

  • Evite instalação próxima a fontes de calor ou correntes de ar.
  • Use lentes Fresnel para focalizar o campo de detecção.

Configuração do ESP8266🔗

Preparação do Ambiente

1. Instalação do Arduino IDESistema de controle de luzes com ESP8266 e temporizadorSistema de controle de luzes com ESP8266 e temporizadorDescubra como montar e programar um sistema inteligente de automação residencial com ESP8266, relê, sensor de luminosidade e RTC DS3231.:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

2. Seleção da Placa:

3. Bibliotecas Essenciais:

  • ESP8266WiFi: Conexão Wi-Fi básica.
  • UniversalTelegramBot: Envio de mensagens via Telegram.
  • WiFiClientSecure: Comunicação HTTPS.

Código Base de Conexão Wi-Fi

#include <ESP8266WiFi.h>
const char* ssid = "SUA_REDE";
const char* password = "SUA_SENHA";
void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nConectado! IP: " + WiFi.localIP());
}
void loop() {
  // Código principal aqui
}

Montagem do Circuito🔗

Diagrama de Conexões

graph TD ESP8266 -->|D1| PIR["PIR OUT"] ESP8266 -->|D2| Buzzer["Buzzer +"] ESP8266 -->|D3| LED["+Resistor 220Ω"] PIR -->|GND| GND["GND"] PIR -->|VCC| V5["5V"] Buzzer -->|–| GND LED -->|–| GND

Boas Práticas

Programação e Integração com APIs🔗

Estrutura Principal do Código

#include <ESP8266WiFi.h>
#include <UniversalTelegramBot.h>
#include <WiFiClientSecure.h>
#define BOT_TOKEN "XXXXXXXXXX"
#define CHAT_ID "123456789"
WiFiClientSecure client;
UniversalTelegramBot bot(BOT_TOKEN, client);
const int pinoPIR = D1;
const int buzzer = D2;
const int led = D3;
void setup() {
  pinMode(pinoPIR, INPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(led, OUTPUT);
  // Conexão Wi-Fi (ver código anterior)
}
void loop() {
  if (digitalRead(pinoPIR) {
    ativarAlarme();
    enviarNotificacao("⚠️ Movimento detectado em casa!");
    delay(10000); // Tempo de alarme ativo
    desativarAlarme();
  }
  delay(200);
}
void ativarAlarme() {
  digitalWrite(buzzer, HIGH);
  digitalWrite(led, HIGH);
}
void desativarAlarme() {
  digitalWrite(buzzer, LOW);
  digitalWrite(led, LOW);
}

Integração com Telegram

void enviarNotificacao(String mensagem) {
  bot.sendMessage(CHAT_ID, mensagem, "");
}

Opção SMS via Twilio

#include <ESP8266HTTPClient.h>
void enviarSMS() {
  HTTPClient http;
  http.begin("http://api.twilio.com/2010-04-01/Accounts/ACCOUNT_SID/Messages");
  http.addHeader("Content-Type", "application/x-www-form-urlencoded");
  String dados = "To=+5511999999999&From=+5511888888888&Body=Alerta! Movimento detectado.";
  int httpCode = http.POST(dados);
  if (httpCode == HTTP_CODE_OK) {
    Serial.println("SMS enviado!");
  } else {
    Serial.println("Falha no envio: " + http.errorToString(httpCode));
  }
  http.end();
}

Comparação de Serviços

ServiçoVantagensDesvantagens
TelegramGratuito, baixa latênciaRequer conexão Wi-Fi
Twilio SMSFunciona sem InternetCusto por SMS, latência >2s

Testes, Calibração e Redução de Falsos Positivos🔗

Procedimentos de Teste

1. Teste Inicial:

  • Cubra o sensor com pano escuro durante 60s para calibrar ambiente.
  • Movimente-se a 2m de distância para verificar detecção.

2. Ajustes de Sensibilidade:

  • Gire Sx no sentido horário para aumentar alcance.
  • Reduza se detectar movimento de pequenos animais.

Técnicas Anti-Falsos Positivos

  • Filtro de Software:
// No loop():
if (digitalRead(pinoPIR) && confirmacaoMovimento()) {
  // Ative alarme
}
bool confirmacaoMovimento() {
  int leiturasConfirmadas = 0;
  for (int i = 0; i < 5; i++) {
    if (digitalRead(pinoPIR)) leiturasConfirmadas++;
    delay(50);
  }
  return (leiturasConfirmadas >= 3);
}
  • Blindagem Física: Encaixe o sensor em tubo PVC para restringir ângulo de detecção.

Melhorias e Expansões Avançadas🔗

Sistema Multi-Sensor

flowchart TD S1[Sensor 1] --> ESP8266 S2[Sensor 2] --> ESP8266 ESP8266 -->|Wi-Fi| Nuvem Nuvem --> Telegram Nuvem --> SMS

Interface Web com ESP8266 Web Server

#include <ESP8266WebServer.h>
ESP8266WebServer server(80);
void setup() {
  server.on("/", []() {
    server.send(200, "text/html",
      "<h1>Status do Alarme</h1><p>" + String(digitalRead(pinoPIR)? "ATIVO" : "INATIVO") + "</p>");
  });
  server.begin();
}
void loop() {
  server.handleClient();
}

Automação Residencial via MQTT

  • Integre com Node-RED para acionar lâmpadas ou câmeras.
  • Use tópicos como casa/seguranca/alarme.

Considerações Finais🔗

Este projeto demonstra como tecnologias acessíveis podem criar soluções robustas de segurança. Customize cada aspecto conforme suas necessidades, desde sensores adicionais até integração com assistentes virtuais como Alexa.

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

  • Documentação Wiki do ESP8266, fornece uma ampla gama de informações técnicas, desde configurações básicas até otimizações avançadas, essencial para desenvolver o tutorial: github.com/esp8266/esp8266-wiki/wiki
  • ESP8266.com Community Forum, um fórum onde usuários discutem projetos e soluções com ESP8266, pode ser útil para tirar dúvidas ou encontrar inspiração para melhorias: www.esp8266.com/viewforum.php?f=5
  • GitHub - ESP8266 Community, contém bibliotecas e exemplos de projetos com ESP8266 no Arduino IDE, útil para a parte de programação do tutorial: github.com/esp8266/Arduino
  • Random Nerd Tutorials, oferece tutoriais e projetos práticos com ESP8266, incluindo integrações com sensores e APIs, relevante para o conteúdo do artigo: randomnerdtutorials.com/projects-esp8266/
  • Site Oficial da Espressif, fornece informações detalhadas sobre o ESP8266, essencial para entender as especificações técnicas do módulo: www.espressif.com/en/products/socs/esp8266

Compartilhar artigo

Artigos Relacionados