Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Alerta de Porta Aberta via Gmail com Arduino Uno – Guia para Iniciantes

Componentes Necessários

Componente Quantidade Observações
Arduino UNO R3 1 Placa principal
PHPoC Shield para Arduino 1 Conectividade Ethernet/WiFi + biblioteca de e-mail
Sensor Magnético (Reed Switch) – duas partes 1 conjunto Sensor + ímã para detecção de porta
Cabo Ethernet ou Dongle USB WiFi 1 Para conexão do PHPoC Shield
Jumpers e Protoboard (opcional) Conforme necessário Para conexões de teste

Sobre o Projeto

Este tutorial ensina como detectar a abertura de uma porta e enviar uma notificação automática por e-mail (Gmail) usando Arduino Uno. Ideal para iniciantes, o projeto combina um sensor magnético simples com a capacidade de conectividade do PHPoC Shield para criar um sistema de alerta de segurança básico.

Detecção do Evento de Porta Aberta

O sensor magnético (reed switch) possui duas partes:

Funcionamento:

Instalação: fixe o sensor no batente da porta e o ímã na folha da porta (ou vice-versa), alinhados quando a porta está fechada. Conecte a saída do sensor ao pino A0 do Arduino (configurado como entrada digital com pull-up interno).

Tratamento do Evento

Quando a porta abre (transição HIGH→LOW no pino A0), o Arduino:

  1. Conecta ao servidor SMTP do Gmail (smtp.gmail.com:587)
  2. Autentica com credenciais da conta Google
  3. Envia e-mail para destinatário configurado
  4. Reporta sucesso/falha no Monitor Serial

Bibliotecas Necessárias

Instalação PHPoC: Sketch → Incluir Biblioteca → Gerenciar Bibliotecas → "PHPoC" ou GitHub

Referências de Funções Utilizadas

Esquemático de Ligação

Montagem do Hardware

  1. Encaixe o PHPoC Shield sobre o Arduino UNO
  2. Conecte cabo Ethernet no shield OU dongle USB WiFi na porta USB do shield
  3. Ligação do sensor magnético:
    • Pino 1 (vermelho) → 5V do Arduino
    • Pino 2 (preto) → Pino A0 do Arduino
  4. Opcional: resistor pull-down 10kΩ entre A0 e GND para estabilidade (o código usa pull-up interno)

Código Fonte

#include <Phpoc.h>
#include <ezButton.h>

PhpocEmail email;
ezButton button(A0);  // Sensor no pino A0 com debounce

void setup() {
  Serial.begin(9600);
  Phpoc.begin(PF_LOG_SPI | PF_LOG_NET | PF_LOG_APP);
  // Phpoc.beginIP6(); // Descomente para IPv6
  
  button.setDebounceTime(100); // 100ms debounce
}

void loop() {
  button.loop(); // Obrigatório chamar primeiro
  
  if (button.isPressed()) { // Porta aberta (transição para LOW)
    // Configuração do e-mail
    email.setOutgoingServer("smtp.gmail.com", 587);
    email.setOutgoingLogin("SEU_GMAIL@gmail.com", "SUA_SENHA_APP");
    email.setFrom("SEU_GMAIL@gmail.com", "Arduino Security");
    email.setTo("DESTINATARIO@email.com", "Proprietário");
    email.setSubject("Alerta: Porta Aberta! [#905]");
    
    // Corpo do e-mail
    email.beginMessage();
    email.println("#905");
    email.println("");
    email.println("A porta foi aberta.");
    email.endMessage();
    
    // Envio
    if (email.send() > 0) {
      Serial.println("E-mail enviado com sucesso!");
    } else {
      Serial.println("Falha no envio do e-mail.");
    }
  } 
  else if (button.isReleased()) { // Porta fechada (transição para HIGH)
    // Código similar para notificação de porta fechada
    // email.setSubject("Porta Fechada");
    // email.println("A porta foi fechada.");
    // email.send();
  }
}

Configuração Importante: Senha de App do Gmail

O Gmail não permite mais uso de senha principal em apps de terceiros. Você deve:

  1. Ativar Verificação em 2 etapas na conta Google
  2. Gerar Senha de App: Conta Google → Segurança → Senhas de app → "Mail" → "Dispositivo outro" → Gerar
  3. Usar essa senha de 16 caracteres no campo setOutgoingLogin()

Como Funciona a Biblioteca PHPoC

O PHPoC Shield possui um interpretador PHP embutido e stack TCP/IP completa. A biblioteca Arduino (Phpoc.h) comunica-se via SPI com o shield, que por sua vez gerencia:

Isso remove a complexidade de implementar TCP/SSL/SMTP no limitado Arduino Uno.

Teste e Validação

  1. Carregue o código no Arduino
  2. Abra o Monitor Serial (9600 baud)
  3. Aguarde mensagem "WiFi connected" ou "Ethernet connected"
  4. Abra a porta → deve aparecer "E-mail enviado com sucesso!"
  5. Verifique a caixa de entrada do destinatário (inclua spam)

Possíveis Problemas e Soluções

Problema Causa Provável Solução
Falha na conexão WiFi Credenciais incorretas / sinal fraco Verifique SSID/senha; use cabo Ethernet para teste
Autenticação SMTP falha Senha errada / 2FA não configurado Use Senha de App; verifique 2FA ativo
E-mail não chega Filtro de spam / limite de envio Verifique pasta spam; Gmail limita ~500/dia
Sensor detecta falso positivo Ruído elétrico / vibração Aumente debounce para 200-500ms; adicione capacitor 0.1µF
PHPoC não inicia Firmware desatualizado Atualize firmware via exemplo WiFi101 → FirmwareUpdater

Expansões Sugeridas

Processo de manufatura

  1. Sensor K30 CO₂: Monitoramento de Qualidade do Ar Interno em Tempo Real
  2. Construa um Estadiómetro Digital: Acompanhe a Altura com Arduino e Sensor a Laser
  3. Integrando Sensor de Impressão Digital Capacitivo DFRobot com Arduino ou ESP8266
  4. Construa uma Torre de Sensores com Arduino Cloud: Monitoramento de Temperatura, Movimento e Gás
  5. Pistola de Água Inteligente com Detecção de Movimento usando Arduino Nano
  6. Portão de Triagem de Temperatura Sem Contato para Monitoramento Rápido e Preciso
  7. Arduino UNO com Shield WiFi: Exibição de Temperatura em Tempo Real na Web via Serial
  8. Sistema Inteligente de Monitoramento de Temperatura para Escolas: Preciso, Tempo Real e Seguro
  9. Sistema Radar Compacto com Arduino Nano, Sensor HC-SR04 e Display 1.8"
  10. Chave LED por Toque Capacitivo com Arduino UNO – Projeto DIY Fácil