Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Neste tutorial, vou mostrar como detectar o evento de abertura de porta e enviar uma notificação via Gmail usando o Arduino Uno.
Se você é um iniciante, pode aprender sobre wi-fi e sensor nos tutoriais Arduino - WiFi e Arduino - Sensor de porta.
Vamos começar!
O sensor EventMagnetic de detecção de abertura de porta que usei inclui duas partes: sensor e ímã. Quando duas partes estão próximas, o pino de saída do sensor é ALTO, caso contrário, o pino de saída é BAIXO. Aproveitando esse recurso, instalei uma parte do sensor na folha da porta e a outra na moldura da porta. Ao verificar o estado do pino de saída, podemos detectar quando a porta é aberta e, em seguida, fazer um alerta ou enviar uma notificação.
Manipulação de evento
Quando ocorre o evento de abertura de porta, uma notificação é enviada via Gmail.
Etapa 1: coisas que precisamos
1. Arduino UNO ou Genuino UNO
2. PHPoC Shield para Arduino
3. Sensor Magnético
Etapa 2: Montagem
1. Empilhe PHPoC Shield no Arduino.
2. Conecte o cabo LAN à blindagem para Ethernet.
3. Pino de fiação entre o Arduino e o sensor.
---- 5v -------- pino vermelho.
---- A0 ------- pino preto.
Etapa 3: Instale este conjunto na porta
1. Anexe a parte do sensor, conjunto Arduino (incluindo a blindagem PHPoC) à moldura da porta
2. Fixe a peça magnética na folha da porta.
3. Power Arduino
4. Conecte-se à Internet via cabo LAN ou USB Wifi Dongle.
Etapa 4: Baixe e instale a biblioteca no Arduino
Instale o PHPoC e a biblioteca ezButton
Etapa 5: Código Arduino
#incluir
#include PhpocEmail email; Botão ezButton (A0); // cria o objeto Botão que se conecta ao pino A0; void setup () {Serial.begin (9600); Phpoc.begin (PF_LOG_SPI | PF_LOG_NET | PF_LOG_APP); //Phpoc.beginIP6 (); descomente esta linha se for usar o botão IPv6.setDebounceTime (100); // define o tempo de debounce para 100 milissegundos} void loop () {button.loop (); // DEVE chamar a função loop () primeiro if (button.isPressed ()) {// se a porta for aberta … email.setOutgoingServer ("smtp.gmail.com", 587); email.setOutgoingLogin ("ID do Google", "Senha do Google"); email.setFrom ("endereço do Gmail", "Nome do remetente"); email.setTo ("Endereço de e-mail do destinatário", "Nome do destinatário"); email.setSubject ("A porta está aberta. [# 905]"); // Assunto do email // Conteúdo do email email.beginMessage (); email.println ("# 905"); email.println (""); email.println ("A porta está aberta."); email.endMessage (); if (email.send ()> 0) // Enviar e-mail Serial.println ("Seu e-mail foi enviado com sucesso"); else Serial.println ("Seu e-mail não foi enviado"); } else if (button.isReleased ()) {// se a porta estiver fechada… // Escreva os códigos da mesma maneira}}
Etapa 6: referências de função
- ciclo()
- configurar()
- Serial.begin ()
- Serial.println ()
- atraso()
- para loop
- loop while
- se mais
- String.toInt ()