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.
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.
interessante!
da tempo sto valutando di autocostruirmi un semplice antifurto (+ che un antifurto un “avvisatore a distanza di intrusione”) per la mia proprietà (gli antifurti propriamente detti purtroppo non esistono…gli esistenti sul mercato son solo dei “deterrenti” al furto).
trovo interessante il servizio di invio SMS. vorrei saperne di +:
-come funziona? basta l’iscrizione al servizio di Aruba? ha un costo mensile/annuale?
-si può inoltrare l’SMS a + numeri di cellulare?
-si potrebbe integrare con un servizio collegato a delle tvcc e poter visualizzare eventualmente sullo smartphone lasituazione in real time? (apparte la “debolezza” della velocità/larghezza banda del mio collegamento internet “fisso” di casa…)
attendo lumi 🙂
Salve e grazie per il feedback.
Il servizio di Aruba, ovviamente, non è il solo, ne esistono migliaia di simili.
Si acquista un pacchetto di SMS (50, 100, 1000 SMS) ad un costo veramente basso, circa 2 centesimi a messaggio).
Si, si può inoltrare l’SMS a piu’ numeri, basta specificarlo in URL, ovviamente a due numeri corrispondono 2 SMS.
Per la telecamera si potrebbe usarne una IP, con streaming su Internet. Tempo fa ne ho comprata una dai cinesi, a 30 euro, con tanto di applicazione per smarthphone. Questa telecamera è simpaticissima, ruota il suo campo di vista a destra/sinistra e alto/basso, facendomi vedere tutta la mia casa, quando sono lontano.
Saluti
Bell’articolo ed interessante come sempre. Per quanto riguarda gli SMS io sono riuscito tramite api a triggerare un’app installata sul cellulare (IFTTT) la quale invia l’sms dal telefono utilizzando il proprio credito oppure gli SMS gratuiti della propria promozione.
una domanda forse banale…. sto testando la scheda ma noto che non si riesce a collegare alla wifi (status=6).
il codice è semplice legge la temperatura da un php su un sito internet e lo visualizza su un lcd
Noto che se stacco la tensione all’icd si collega alla wifi…non sempre ma più spesso
Con l’LCD alimentato quasi mai
può dipendere dai connettori ed una bassa tensione?
o dipende da altro?
Ciao
Michele
Ciao.
Se alimenti ESPertino con l’USB di un PC portatile, probabilmente si, la corrente è troppo bassa.
Prova a usare un normale PC.
Oppure, dopo averlo programmato, stacchi ESPertino dal PC e lo alimenti con un Power Bank. Se il codice è corretto dovrebbe andare bene.
vorrei saper se con l’abbonamento platinum facendone richiesta si riceve lo starter kit espertino completo di board
o solo la board e inoltre vorrei sapere se vi è ancora la disponibilita dato che ho ricevuto un email in cui si dice che l’offerta è valida fino al 3 Aprile
la mia emai è [email protected]
Salve Francesco, la promozione in corso prevede in omaggio la board ESPertino con l’abbonamento Platinum o Gold.
Qui trovi tutti i dettagli: https://it.emcelettronica.com/espertino-la-scheda-iot-con-wifi-e-ble-in-omaggio-per-i-nuovi-abbonati
Bella l’idea di inviare SMS di allarme. Anche l’idea di Polso è assai interessante, anche se come antifurto dovrebbe servire soprattutto quando in casa non c’è nessuno, quindi neanche il mio smartphone. E’ possibile anche inviare messaggi su WhatsApp? Giusto per bypassare il problema? Ciao e grazie a tutti del supporto.
Salve e grazie dei complimenti.
Si, esistono delle apposite API per inviare messaggi su WhatsApp. Ancora personalmente non li ho provati.
Alcune delle più famose sono “Twilio API for WhatsApp” e quelle di Facebook for programmers.
Saluti
Oltre ad inviare Sms sarebbe interessante, scattato l’allarme, azionare una videocamera per la registrazione delle immagini di quanto sta avvenendo in quel momento nello stesso luogo “coperto” dai sensori.