SecurDuinoGSM - Antifurto con Sensore Reed, NFC auth e alert tramite SMS

Ciao a tutti,
premesso che ho pochissime conoscenze del mondo arduino, dell'elettronica e della programmazione in c, vorrei autocostruirmi un impiantino di allarme per la cantina che è stata "visitata" qualche settimana fa.

Avrei in mente di attaccare un sensore alla porta della cantina, che appena si attiva, l'arduino mi faccia partire una chiamata telefonica sul mio cellulare (ovviamente attaccandogli un modulo sim, giusto?)... è possibile fare una cosa del genere?

Di cosa avrei bisogno? Mi potete dare una mano a muovere i primi passi? :slight_smile:

Ciao.

Così su due piedi direi che ti serve:

  • un GSM shield o qualcosa di equivalente. Il gsm shield costa un po' ma io mi sono sempre trovato bene e lo consiglio.
  • dei sensori PIR per individuare se qualcuno si sta muovendo nell'area sorvegliata
  • un sistema per attivare e disattivare l'allarme

Ma più che sensori infrarossi, non siete a conoscenza di sensori magnetici collegabili all'arduino?
Una cosa del tipo "apri la porta -> scatta il sensore" senza star li a mettere in piedi sensori infrarossi... dite che è fattibile una cosa del genere? :slight_smile:

puoi usare un sensore magnetico, cosi' come puoi usare un sensore ad Infrarossi.
La cosa non cambia, visto che ci sara' comunque un contatto che si apre o si chiude al verificarsi di un evento

Cerca sensore REED

Ed ecco a voi il mio primo progetto "autonomo", un pianoforte a 4 toni!

In poche parole, dalla 5v faccio passare corrente verso un unica resistenza (semplicemente per avere una breadboard più "pulita")
che poi passa verso 4 bottoni.
Se ne premo uno o più, mi si illumina il led e la corrente va anche verso il sensore digitale di turno, che poi tramite programma manda un tono diverso al piezo.

Ora non mi spiego una cosa, perché se rimuovo il led e non schiacchio il bottone (quindi non chiudo il circuito) mi passa lo stesso corrente verso il sensore digitale (e di conseguenza mi parte il tone verso il piezo) ????
Se rimetto il led devo giustamente schiacciare il bottone per farlo accendere e passare corrente verso il sensore digitale.

Cosa non capisco o sbaglio?

Scusate se non mi esprimo con i termini più corretti, ma ieri sono state le mie primissime che ho avuto a che fare con componenti elettronici e di programmazione... :smiley:

// Piano 4 tasti
// 20-09-14 - Andrea A.

int suono[]= {262,294,330,349};


void setup(){
  pinMode(3,INPUT);
  pinMode(6,INPUT);
  pinMode(8,INPUT);
  pinMode(12,INPUT);
  Serial.begin(9600);
  }
  
void loop(){
  
  if (digitalRead(3) == 1) {
    tone(2,suono[0]);
    }
  else if (digitalRead(6) == 1) {
    tone(2,suono[1]);
    }
  else if (digitalRead(8) == 1) {
    tone(2,suono[2]);
    }
  else if (digitalRead(12) == 1) {
    tone(2,suono[3]);
    }
  else
  noTone(2);
}

scusa ma... si stava parlando di antifurto.... da dove salta fuori questo piano?

A meno che metti il piano a 4 tasti davanti alla porta della cantina, così i ladri invece di entrare in cantina si mettono a suonare...

Ragazzi, prima di partire a razzo devo pur far qualcosa di intermedio o no?
Per evitare di aprire altri thread ho preferito postare i miei primi "progettini" qua...

Fino a 3 giorni fa non sapevo manco cosa fosse una breadboard, cercate di capirmi. :slight_smile:

Stamattina ho fatto un sensore Temperatura - Luce che manda i dati sull'lcd.
Dopo vi posto video, codice e schema.

Qualsiasi suggerimento è ben accetto... :smiley:

Ecco:

Schema:

Codice:

// Sensore Luce e Temperatura, con output su LCD
// 21-09-14 - Andrea A.

#include <LiquidCrystal.h> // libreria LCD
LiquidCrystal lcd (12,11,5,4,3,2); // piedini usati sul display lcd
int ritardo = 125; // ritardo dell'output sul rilevamento
boolean mode = false; //per scegliere la modalità


void setup(){
  lcd.begin(16, 2);
  pinMode(A0, INPUT); // piedino analogico per temperatura
  pinMode(A1, INPUT); // piedino analogico per luce
  pinMode(8, INPUT); // piedino digitale per switchare tra le modalità.
  
  lcd.print ("  TeLu Station");
  lcd.setCursor (0,1);
  lcd.print ("    v. 1.00");
  delay (2000);
  lcd.clear();
  lcd.print (" Un progetto di");
  lcd.setCursor (0,1);
  lcd.print ("Andrea Ardemani");
  delay (2000);
  lcd.clear();
  
  //Serial.begin(9600);
  }
  
void loop(){

  //Serial.println(digitalRead(8));

  // Sensore Temperatura     
  if (mode == false) {
    lcd.print ("  Temperatura");
    lcd.setCursor (1,1);
    int sensorval = analogRead(A0);
    float voltage = (sensorval/1024.0)* 5.0;
    float temperature = (voltage - .5) * 100;
    lcd.print (temperature);
    lcd.print (" Celsius");
    delay (ritardo);
  }

  //   Sensore Luminosità  
  else {  
    lcd.print ("   Luminosita'");
    lcd.setCursor (2,1);
    lcd.print (analogRead(A1));
    lcd.print (" Sarcazzi ");
    delay (ritardo);
      } 
      
 if (digitalRead(8) == 1) {
    mode =! mode; //Se schiaccio il tasto, il mode boleano cambia e di conseguenza visualizzo o la temperatura o il sensore luminosità.
    lcd.clear();
  }
}

Mi sto divertendo un sacco... :grin:

nessuno ti dice di partire a razzo, ma la regola di ogni forum è 1 topic = 1 argomento.
altrimenti poi diventa difficile seguire il discorso e dare aiuto.

Ok, ho cominciato il progetto del topic. :smiley:

Allora, per ora ho preso un sensore, collegato e se non c'è contatto tra i magneti mi parte il buzzer e la segnalazione sull'lcd.

Due domande:

  1. ho preso questo ricevitore NFC: http://www.robot-italy.com/it/itead-pn532-nfc-module.html
    ma forse era meglio se chiedevo qua prima di acquistarlo, c'è qualcuno che ha esperienze con questo modulo? come lo collego alla breadboard con tutti quei pin su doppia/tripla fila? :fearful:

  2. domandona banale, almeno immagino, riguardo i famosi shield (tipo quello gsm). Ma le porte sopra lo shield sono le stesse identiche replicate che ci sono sull'arduino? sono tutte utilizzabili oppure quelle usate dallo shield non si possono a loro volta utilizzare per altri scopi?

  1. non conosco quel lettore rfid, ma se fai qualche ricerca in rete di materiale ce n'è.
    qui c'è la libreria
    Arduino Library | Adafruit PN532 RFID/NFC Breakout and Shield | Adafruit Learning System
    in quella pagina dicono di collegarlo all' I2C, perchè con l' SPI può dare conflitto con lo shield gsm che dovrai mettere, ma come ripeto non lo conosco, quindi è tutto da verificare.

  2. sì, i pin che ritrovi sullo shield sono gli stessi dell'arduino. puoi riutilizzarli tutti tranne il CS dello shield GSM.
    11,12,13 puoi usarli solo per collegare un altro dispositivo SPI, non come normali pin digitali.

Da dove hai preso il sensore magnetico?

Li ho presi da melchioni, in via friuli a milano.

edit: risolto, devo ancora prendere mano con il codice, scusate.

Ne approfitto: come mai quando voglio far venire fuori il monitor seriale mi si resetta l'arduino? :fearful:

terrornoize:
Ne approfitto: come mai quando voglio far venire fuori il monitor seriale mi si resetta l'arduino? :fearful:

è normale che sia così.
se ti da fastidio e lo voui eliminare leggi qua
http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection

ricdata:
è normale che sia così.
se ti da fastidio e lo voui eliminare leggi qua
Arduino Playground - HomePage

Grazie! XD

Comunque è parecchio divertente questo cosino. :blush:
Peccato che gli shields e certi moduli costino davvero un esagerazione (tipo il modulo wifi) altrimenti avrei un sacco di idee per la casa...

alcuni shield sono costosi è vero, ma si può trovare un'alternativa :wink:

Finita la parte RFID-NFC... ora posso attivare o disattivare l'allarme con dei tag portachiavi/tessere con RFID :slight_smile:

Ora mi manca:

  • capire come far partire un timer di 10 secondi, ma allo stesso tempo avere la possibilità di fermarlo se compio una determinata azione, cosa che con il delay non posso fare... suggerimenti in merito?

  • shield o un modulo gsm (me ne consigliate una affidabile e testata qua dentro da avere già dei riferimenti? :*)

  • programmare la parte gsm (invio sms o chiamata in caso di intrusione, eventualmente disattivare/attivare l'allarme o la sirena tramite sms da remoto)

  • prendere una sirena, collegarla e capire come gestire la corrente con l'arduino

  • mettere tutto in una scatola di derivazione

  • tirare giù il contatore degli spazi condominiali ( ]:D)ed attaccarlo all'impianto della cantina

  • tenersi a portata un piede di porco di in caso di ricezione di sms di "avvertimento" :grin:

terrornoize:
Finita la parte RFID-NFC... ora posso attivare o disattivare l'allarme con dei tag portachiavi/tessere con RFID :slight_smile:

Ora mi manca:

  • capire come far partire un timer di 10 secondi, ma allo stesso tempo avere la possibilità di fermarlo se compio una determinata azione, cosa che con il delay non posso fare... suggerimenti in merito?

Al posto del delay usa Millis: millis() - Arduino Reference
Qui una fantastica guida sul suo utilizzo: http://www.leonardomiliani.com/2013/programmiamo-i-compiti-con-millis/

terrornoize:

  • shield o un modulo gsm (me ne consigliate una affidabile e testata qua dentro da avere già dei riferimenti? :*)

  • programmare la parte gsm (invio sms o chiamata in caso di intrusione, eventualmente disattivare/attivare l'allarme o la sirena tramite sms da remoto)

http://arduino.cc/en/Guide/ArduinoGSMShield
Questa guida innanzitutto ti mostra quali pin sono utilizzati dalla GSM Shield, e se sono gli stessi del tuo lettore RFID, hai già un primo problema.
Trovi anche degli esempi di sketch su come inviare e ricevere SMS e/o telefonate, quindi il passo è breve per fare ciò che chiedi.
Per il resto basta un search nel forum.

terrornoize:

  • prendere una sirena, collegarla e capire come gestire la corrente con l'arduino

Di sirene ne trovi quante e come vuoi, per collegarla puoi utilizzare ad esempio un relè.

terrornoize:

  • mettere tutto in una scatola di derivazione

  • tirare giù il contatore degli spazi condominiali ( ]:D)ed attaccarlo all'impianto della cantina

Non hai una presa di corrente in cantina ?
Vai di multipla e via ... tanto essendo chiuso dentro nessuno può staccarti l'alimentazione all'allarme. :wink:
Devi prevedere anche un alimentatore 7-12V per arduino, e nel caso uno per la sirena.

terrornoize:

  • tenersi a portata un piede di porco di in caso di ricezione di sms di "avvertimento" :grin:

Anche una mazza da baseball fa il suo sporco dovere. :stuck_out_tongue: