Alarme de Intrusão Instantâneo com Alertas SMS – Guia DIY com Arduino Yun
Componentes e Materiais
| Componente | Quantidade |
|---|---|
| Arduino Yun | 1 |
| Bateria 9V (genérica) | 1 |
| Jumpers (genéricos) | 1 |
| Sensor de Distância HC-SR04 (ultrassônico) | 1 |
Aplicativos e Serviços Online
- Temboo (plataforma Choreos para APIs)
- Twilio SMS Messaging API
Sobre o Projeto
Crie um alarme de intrusão que envia SMS quando detecta movimento. Sem solda, ideal para iniciantes. Funcionamento: sensor HC-SR04 detecta mudança de distância → Arduino Yun chama Temboo via Wi-Fi → Temboo aciona Twilio API → SMS enviado para seu celular.
Tempo estimado: 45 min. Custo: ~$80-90 (Amazon) ou ~$50 (AliExpress). O Arduino Yun (ou Leonardo + Wi-Fi Shield) é o item mais caro, mas reaproveitável.
Peças Necessárias
- Sensor ultrassônico HC-SR04
- Arduino Yun (ou Leonardo + Wi-Fi Shield)
- 4 Jumpers
- Mini protoboard (opcional)
- Bateria 9V + suporte com plug barrel e chave liga/desliga
Passo 1: Conexões e Teste do Sensor
Ligue o HC-SR04: VCC→5V, GND→GND, Trig→D2, Echo→D4. Carregue o código de teste (ver seção Código), abra Monitor Serial (9600 baud). Verá distâncias em polegadas. Se diferença grande entre leituras → "Intruder Detected".
Passo 2: Conectar Yun ao Wi-Fi
Siga guia oficial: Arduino Yun WiFi Setup. Teste com scan de rede (ex: LanScan no Mac).
Passo 3: Funcionalidade SMS (Temboo + Twilio)
- Crie sketch novo no Arduino IDE.
- Cole o código completo (segundo bloco).
- Crie aba
TembooAccount.h(seta para baixo → New Tab) e cole o header (terceiro bloco). - Crie contas no Temboo e Twilio.
Passo 4: Inserir Credenciais
- Twilio: Account SID, Auth Token (clique no cadeado), número "From" (comprado no Twilio), número "To" (seu celular). Formato:
+1XXXXXXXXXX. - Temboo: No header
TembooAccount.h, insira: TEMBOO_ACCOUNT, TEMBOO_APP_KEY_NAME, TEMBOO_APP_KEY (em Applications no site Temboo).
Salve, faça upload, alimente com bateria 9V, monitore Serial. Conecta em ~20s.
Passo 5: Ajuste e Uso
Se disparos falsos, ajuste os limites no if (inches < 20 || inches > 1100). Teste antes com o código de teste (sem SMS) para não gastar créditos gratuitos do Temboo/Twilio (limitados). O código já limita a 10 envios por ciclo de energia.
Código
Código de Teste (sem SMS)
// TESTE
#include <SoftwareSerial.h>
int trigPin = 2, echoPin = 4;
long duration, inches;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
delay(5000);
Serial.println("Patrol Mode Initiated...");
}
void loop() {
digitalWrite(trigPin, LOW); delayMicroseconds(1);
digitalWrite(trigPin, HIGH); delayMicroseconds(2);
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
inches = (duration / 2) / 74;
Serial.println(inches);
if (inches < 20 || inches > 1000) {
Serial.println("Intruder Detected!");
Serial.println("Sending text Notification...");
delay(5000);
Serial.println("Patrol Mode Initiated...");
}
}
Código Completo (com SMS via Temboo/Twilio)
#include <Bridge.h>
#include <Temboo.h>
#include "TembooAccount.h"
#include <SoftwareSerial.h>
int numRuns = 1, maxRuns = 5;
int trigPin = 2, echoPin = 4;
long duration, inches;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT);
delay(5000);
Bridge.begin();
Serial.println("Patrol Mode Initiated...");
}
void loop() {
digitalWrite(trigPin, LOW); delayMicroseconds(1);
digitalWrite(trigPin, HIGH); delayMicroseconds(2);
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
inches = (duration / 2) / 74;
Serial.println(inches);
if (inches < 20 || inches > 1100) {
Serial.println("Intruder Detected!");
Serial.println("Sending text Notification...");
if (numRuns <= maxRuns) {
Serial.println("Running SendSMS - Run #" + String(numRuns++));
TembooChoreo SendSMSChoreo;
SendSMSChoreo.begin();
SendSMSChoreo.setAccountName(TEMBOO_ACCOUNT);
SendSMSChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
SendSMSChoreo.setAppKey(TEMBOO_APP_KEY);
SendSMSChoreo.addInput("AuthToken", "SEU_AUTH_TOKEN");
SendSMSChoreo.addInput("To", "+1SEU_NUMERO");
SendSMSChoreo.addInput("From", "+1NUMERO_TWILIO");
SendSMSChoreo.addInput("Body", "Intruder Detected!!!!!!");
SendSMSChoreo.addInput("AccountSID", "SEU_ACCOUNT_SID");
SendSMSChoreo.setChoreo("/Library/Twilio/SMSMessages/SendSMS");
SendSMSChoreo.run();
while(SendSMSChoreo.available()) { char c = SendSMSChoreo.read(); Serial.print(c); }
SendSMSChoreo.close();
}
Serial.println("Waiting...");
delay(10000);
Serial.println("Patrol Mode Initiated...");
}
}
Importante: Substitua os placeholders (AuthToken, To, From, AccountSID) pelas suas credenciais reais. O header TembooAccount.h deve conter as definições TEMBOO_ACCOUNT, TEMBOO_APP_KEY_NAME, TEMBOO_APP_KEY.
Esquemáticos
Diagrama de ligação do HC-SR04 ao Arduino Yun disponível na imagem do projeto.
Processo de manufatura
- Integração de Dados de Sensores no Raspberry Pi: Guia Prático
- Sensor de Rastreamento de Linha com Raspberry Pi – Detector KY‑033 Simples para Porta/Linha
- Construa API Robusta de Temperatura e Sensores no Raspberry Pi com Módulo GY‑91
- Monitoramento Residencial Seguro com Home Assistant no Raspberry Pi: Movimento, Alarme e Captura de Vídeo
- Construa um Alarme de Água Headless para Raspberry Pi 2 com Adafruit T-Cobbler Plus
- Conectando Sensor Ultrassônico HC-SR04 ao Raspberry Pi – Guia Prático
- Construa um Sistema Aeropônico Automatizado com Raspberry Pi e Sensor de Umidade
- Domine GPIO do Raspberry Pi: Interface com Sensor PIR de Movimento no B+/Modelo 2
- Integrando Radar Pulsado Acconeer A111 com Raspberry Pi: Guia Prático
- Como Conectar, Calibrar e Programar Sensor PIR HC‑SR501 com Raspberry Pi