Un semplice antifurto: il modulo sensore rumore,

Il modulo FC04 è veramente semplice.
Ha solo tre pin: Vcc, GND e SNG, quindi i collegamenti che ho stabilito sono questi:

Pin Ricevitore Pin Arduino
Vcc 5 V
GND GND
SNG Pin 2 (digitale)

Il sensore ha una soglia di rumore impostabile tramite una vite: se viene individuato un rumore che supera la soglia, viene inviato un segnale HIGH sul pin selezionato (2 nel nostro caso)

Quindi lo sketch può essere questo:

 

int SERIAL_BAUD        = 9600;
int SENSOR_DIGITAL_PIN =    2;
int SOUND_DELAY        =   50; /* Un piccolo ritardo per non intercettare rumori duplicati o echi */
 
void setup() {
    Serial.begin(SERIAL_BAUD);
    pinMode(SERIAL_BAUD, INPUT);
}                                                                               
 
void loop() {
    if (digitalRead(SENSOR_DIGITAL_PIN) == LOW) {
        Serial.print("Rumore!");
 
        delay(SOUND_DELAY);
    }
}

A questo punto posso unire insieme i due programmi (sensori movimento e rumore) per inviarmi una mail in caso di sospetta intrusione!

Nel prossimo articolo lavorerò sulla internet shield, come fatto in questi post prima cercherò di capirne il funzionamento svincolato dal resto dei programmi per poi integrare il tutto successivamente.

A presto!

Un semplice antifurto: leggere i dati dai sensori

Per leggere i dati dai sensori ho trovato veramente utile la libreria rc-switch.

Il primo obiettivo è stato di capire cosa succede nel momento in cui attivo il sensore porta o il sensore PIR.
Ho quindi collegato come nella figura sottostante il ricevitore ad Arduino:

Pin Ricevitore Pin Arduino
Vcc 5 V
GND GND
DATA Pin 2 (digitale)

Nel mio caso utilizzo la breadboard (millefori) presente nello starterkit. 

riceventeMiajpg

A questo punto ho scaricato la libreria rc switch e l’ho copiata nella cartella libraries di Arduino.
La struttura a cartella sarà:

libraries\RCswitch

con all’interno i seguenti files:

  • keywords.txt
  • RCSwitch.cpp
  • RCSwitch.h
  • la cartella example

Possiamo aprire l’arduino ide e copiare il seguente codice:

#include <RCSwitch.h>;

RCSwitch mySwitch = RCSwitch();

void setup() {
   Serial.begin(9600);
   mySwitch.enableReceive(0); // Receiver on inerrupt 0 =&gt; that is pin #2
}

void loop() {
   if (mySwitch.available()) {

      int value = mySwitch.getReceivedValue();

      if (value == 0) {
         Serial.print("Unknown encoding");
     } else {
         Serial.print("Received ");
         Serial.print( mySwitch.getReceivedValue() );
         Serial.print(" / ");
         Serial.print( mySwitch.getReceivedBitlength() );
         Serial.print("bit ");
         Serial.print("Protocol: ");
         Serial.println( mySwitch.getReceivedProtocol() );
      }

      mySwitch.resetAvailable();
   }
}

Caricato il programma ed aperta la console del monitor seriale sui 9600 baud ho ricevuto le seguenti indicazioni:

  1. sensore porta 1: Received 1398111 / 24bit Protocol: 1
  2. sensore porta 2: Received 1394004 / 24bit Protocol: 1
  3. sensore PIR      :Received 1392102 / 24bit Protocol: 1

A questo punto posso utilizzare questi valori per intercettare l’apertura di una porta o il movimento in casa per mandarmi una mail o un sms.
Ho optato per la l’invio di una mail: qui entra in gioco  l’ethernet shield.

Alla prossima puntata