Il Kit di ESPertino: un semplice antifurto SMS per proteggere la casa

Con lo STARTER KIT di ESPertino si possono realizzare un'infinità di progetti. In questo breve articolo scopriamo come approntare un semplice antifurto per la casa, sfruttando proficuamente un numero importante di componenti in esso contenuto.

Introduzione

Il progetto che andiamo a presentare è un semplice sistema di allarme realizzato con un buzzer, un diodo LED, un sensore di prossimità e qualche componente passivo accessorio, il tutto assemblato, volendo, sulla breadboard a corredo dello STARTER KIT. L'antifurto si innesca quando la distanza misurata dal sensore a ultrasuoni scende sotto un determinato valore, attivando il cicalino, il diodo Led e inviando un messaggio SMS, tramite linea WiFi.

Le connessioni elettriche

La figura 1 mostra il cablaggio della scheda ESPertino verso gli altri dispositivi esterni. Il buzzer è collegato alla porta 13 e preceduto da una resistenza di limitazione. Il diodo Led è connesso alla porta 0 (zero) tramite una resistenza di 220 ohm. Il sensore a ultrasuoni ha il pin Trigger collegato alla porta 17 e il pin Echo alla porta 16. Il partitore resistivo ha la funzione di abbassare la tensione di uscita da 5V a 3.3, compatibile con quella di ESPertino. Occorrono, come si vede, poche connessioni e il sistema può essere approntato anche sulla breadboard.

Figura 1: le connessioni elettriche dell'antifurto

Figura 1: le connessioni elettriche dell'antifurto

Lo sketch

Il programma è molto semplice. E' composto da tanti blocchi logici, ognuno dei quali esegue una funzione ben precisa:

  • definisce i pin da utilizzare per il progetto e le credenziali del WiFi;
  • definisce il verso delle porte e inizializza la rete;
  • effettua le misurazioni della distanza di un oggetto davanti il sensore;
  • se scopre la presenza di un intruso:
    • invia un SMS al numero preimpostato, tramite servizio Aruba;
    • fa lampeggiare un diodo Led;
    • aziona il buzzer ad una cadenza pulsante.
#define PIN_ECHO 16    // Pin per gli impulsi dell'eco
#define PIN_TRIG 17    // Pin per l'invio del segnale di Trigger
#define PIN_LED 0      // Pin per il diodo Led
#define PIN_BUZZER 13  // Pin per il buzzer
#include <WiFi.h>
char* ssid            = "NETGEAR-gio22";
const char* password  = "miapassword";
const char* host      = "adminsms.aruba.it";
void setup()
{
  pinMode(PIN_ECHO, INPUT);       // Il pin di echo e' in ingresso sulla MCU
  pinMode(PIN_TRIG, OUTPUT);      // Il pin di trigger e' in uscita sulla MCU
  pinMode(PIN_LED,OUTPUT);        // Porta logica in uscita
  digitalWrite(PIN_LED,LOW);
  pinMode(PIN_BUZZER,OUTPUT);     // Porta logica in uscita
  digitalWrite(PIN_BUZZER,LOW);
  //----------Aspetta 10 secondi per sincronizzare il WiFi----------
  WiFi.begin(ssid, password); 
  delay(10000);
}
void loop()
{
  //--------- Invio del segnale iniziale di trigger della lunghezza di 10us (Low, High, Low)
  digitalWrite(PIN_TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(PIN_TRIG, HIGH);     // Impulso effettivo di Trigger
  delayMicroseconds(10);
  digitalWrite(PIN_TRIG, LOW);
  //--------- Calcolo della distanza
  float distanza = pulseIn(PIN_ECHO, HIGH);   // Misura la lunghezza dell'impulso di eco in microsecondi
  distanza=distanza/58; // Calcolo di conversione da tempo a distanza
  delay(250);
  //---Se c'è un intruso suona Buzzer, led lampeggia e manda SMS-----------
  if(distanza<200) {
    WiFiClient client;               // Crea oggetto client
    client.connect(host, 80);        // Si collega all'host
    String url = "/Aruba/SENDSMS?login=sms99999&password=miapassword&message_type=LL&recipient=%2b393289999999&message=Attenzione+Attivazione+Allarme";
    client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n");    // Invia stringa GET per protocollo HTTP
    client.stop();      
    while(1) {
      digitalWrite(PIN_LED,HIGH);
      digitalWrite(PIN_BUZZER,HIGH);      
      delay(1000);
      digitalWrite(PIN_LED,LOW);
      digitalWrite(PIN_BUZZER,LOW);      
      delay(1000);
    }
  }
}

Conclusioni

Con la configurazione adottata, in caso di allarme occorre far ripartire il sistema con il reset della scheda. Lo STARTER KIT di ESPertino è realmente utile e i suoi componenti possono essere utilizzati in tanti progetti. Il prototipo proposto nell'articolo (vedi figura 2) costituisce una versione generica da cui poter espandere le finalità dei sistemi realizzati in un passo successivo.

Figura 2: l'antifurto realizzato interamente con lo STARTER KIT di ESPertino

Figura 2: l'antifurto realizzato interamente con lo STARTER KIT di ESPertino

 

7 Commenti

  1. Doc77 Doc77 27 dicembre 2017
  2. Giovanni Di Maria Giovanni Di Maria 27 dicembre 2017
  3. Danilo Polso 20 gennaio 2018
  4. migreco 25 febbraio 2018
    • Giovanni Di Maria Giovanni Di Maria 26 marzo 2018
  5. Francesco Santangelo 27 marzo 2018

Scrivi un commento

EOS-Academy