Come collegare un sensore di forza FSR ad Arduino

Ciao!

Nel post di oggi vedremo come collegare un sensore di forza (FSR, Force Sensing Resistor) ad Arduino.
Il concetto che sta dietro a questo sensore è davvero semplice, infatti esercitando una forza su di esso (premendolo ad esempio) la sua resistenza diminuirà.



Antifurto con vecchio cellulare e Arduino

Ciao!

nel post di oggi vedremo come realizzare un piccolo e semplice impianto antifurto con la possibilità di chiamare ad un numero predefinito riciclando materiale che abbiamo in casa.

Questo progetto è stato realizzato da Ferruccio Giri (https://www.feroxos.it), che ringrazio per avermi permesso di condividerlo con voi.

Evitando una lunga serie di codici, evitando di interfacciare smartphone ad arduino propongo un ottimo sistema per riutilizzare telefoni di vecchia data.

Materiale necessario:
1 x Controllore Arduino
1 x Transistor , in questo caso utilizzato (BC 337 40)
1 o 2 Altoparlanti interni di un qualsiasi computer
1 Vecchio Telefono con tastierino numerico senza touch screen, per interndesi tipo NOKIA 3310
1 Batteria 9v o simile per alimentazione Arduino
1 Sim con del credito disponibile
Cavi, stagno e pazienza.

Gli antifurto hanno 4-5 sistemi principali, a pressione, a rilevamento , a contatto e altri ancora.
Noi entriamo nella branca del sistema a contatto, ovvero , disponiamo un contatto nel nostro accesso, che se non presente si attiverà il nostro allarme e la chiamata al proprietario di casa.
Impostando una linea di distribuzione di un ipotetico segnale, in questo caso la 3,3V di Arduino con dei resistori per diminuire la tensione ancora di più si dispongono dei pin per verificare che vi sia tensione nell'apposito cavo di ritorno da un accesso.




Caricate questo codice per testare il contatto:

  1. void setup() {
  2. pintMode(13,OUTPUT);//SEGNALE ACUSTICO A BASSA INTENSITA
  3. pinMode(2,INPUT);//SEGNALE DEL CONTATTO DELL'ACCESSO
  4. }
  5. void loop(){
  6. if(digitalRead(2)==LOW){
  7. SEGNALE_ACUSTICO();
  8. //CHIAMATA
  9. }
  10. }
  11. void SEGNALE_ACUSTICO(){
  12. digitalWrite(13,HIGH);}


Vediamo ora come implementare la chiamata ad un numero prefissato.
I telefoni con tastierino hanno una particolarità ovvero, il pulsante non è altro che una piccola lamiera ricurva che, una volta pressata al centro si appiattisce facendo fare il contatto ai due poli  nella scheda che sono posti in forma circo centrica uno all'interno dell'altro.




Attraverso un transistor noi andremo a controllare solo ed esclusivamente il pulsante di chiamata, di modo di poter dare l'input di effettuare una chiamata, all'ultimo numero chiamato.
Così viene risolto il nodo della chiamata al proprietario di casa,senza utilizzare codici complessi per invio di sms o chiamate attraverso connettori comuni e rispondendo si può sentire quello che avviene in casa.

Con due righe di codice e qualche accortezza nella disposizione della strumentazione si può ottenere un valido antifurto che all'istante ti informa se qualcuno è entrato in casa.

Innanzitutto bisognerà avere un telefono cellulare vecchio modello a tastierino numerico con sim e credito.
Aprilo e arrivare alla scheda madre, poi collegare due fili, uno all'anello del pulsante chiamata, uno al cerchio interno all'anello facendo molta attenzione.


Sadatura dei cavi sui contatti, ci scusiamo per la qualità del prodotto e delle saldature.

Un cavo andrà collegato al collettore del transistor, l'altro cavo all'emettitore.
In questo caso il GND è il contatto centrale che arriverà al transistor e da li partirà una seconda connessione al GND di Arduino.

Si sceglierà poi un pin da arduino, dedito alla attivazione del transistor e quindi la pressione del pulsante chiama.
La caratteristica di questi telefoni è che, per quasi tutti, la doppia pressione del pulsante chiamata, tasto verde, porta ad effettuare una chiamata all'ultimo numero chiamato.
Quindi effettuando una chiamata o uno squillo, alla prima attivazione del telefono, al numero prefissato che si dovrà chiamare in caso di attivazione dell'allarme, si setterà automaticamente il numero predefinito.

L'accortezza da prendere a questo punto è quella di far scattare l'allarme in un istante e proseguire con il suono dell'allarme periodicamente, avviare all'istante in cui scatta l'allarme anche la chiamata una sola volta importando un paio di variabili, alarms, e in_call.

Il Circuito :



è consigliata una resistenza da 1k prima della base del transistor (interrompendo il filo giallo).
Verificate l'assorbimento degli altoparlanti, se superiori a 40mA è necessario un driver (basta un semplice transistor).

  1. int Porta1 = 2; //PIN DI RILEVAMENTO DEL SEGNALE PORTA
  2. int speaker = 11; //PIN SPEAKER
  3. int CALL_PHONE =12; //PIN TASTO CHIAMATA
  4. int alarms=0; //PIN L'ALLARME E' IN STATO DI ALLARME O IN STATO DI ATTESA
  5. int in_call = 0; //LA CHIAMATA E' STATA EFFETTUATA
  6. void setup() {
  7.   pinMode(Porta1,INPUT);
  8.   pinMode(speaker,OUTPUT);
  9.   pinMode(CALL_PHONE,OUTPUT);
  10.   alarms=0;
  11.   }
  12. void loop() {
  13.   if(alarms==0){
  14.     if(digitalRead(Porta1)==LOW){alarms=1;}
  15.   }else{
  16.     if(in_call==0){
  17.       calling();
  18.       calling();
  19.       in_call=1;
  20.       }
  21.     sounding();
  22.     sounding();
  23.   }
  24.   }
  25. /*
  26. Il ciclo controlla se l'allarme è attivo.
  27. Se non è attivo verifica lo stato dei segnali degli accessi e se uno risulta sconnesso attiva l'allarme.
  28. Se l'allarme è attivo, allo verifico se la chiamata è partita ed eventualmente la faccio partire, comunque suono l'allarme due volte.
  29. */
  30. void sounding(){
  31.   analogWrite(speaker,100);
  32.   delay(500);
  33.   analogWrite(speaker,254);
  34.   delay(500);
  35.   }
  36. void calling(){
  37.   digitalWrite(CALL_PHONE,HIGH);
  38.   delay(250);
  39.   digitalWrite(CALL_PHONE,LOW);
  40.   delay(250);  
  41.   }


int CALL_PHONE =12;
void calling(){
  digitalWrite(CALL_PHONE,HIGH);
  delay(250);
  digitalWrite(CALL_PHONE,LOW); 
  delay(250);  
 }

L'evento calling equivale alla pressione del tasto verde con intervallo di ¼ di secondo.
Calling();
Calling();
Equivale alla doppia pressione.


A questo punto manca da vedere come attivare il l'allarme una volta fuori di casa, con lo smartphone che abbiamo ormai quasi tutti, e un connettore bluetooth, ma per questo, ne esistono parecchie di guide online, e basterà una volta chiusa la porta inviare un testo ad un modulo bluetooth (ad esempio un modulo HC-06) ed in base al testo ricevuto attivare o disattivare l'allarme.

Il codice Bluetooth è particolarmente difficile da evadere, in ogni caso possono essere inseriti blocchi di controllo e si può far scattare l'allarme per casi di brute forcing di qualche folle a livelli astronomici.

E' possibile utilizzare il metodo che abbiamo visto per connettere il pulsante anche per altri tasti, quindi potremmo utilizzare lo stesso metodo anche per attivare o disattivare l'allarme.


Infine vediamo le ultime accortezze che abbiamo deciso di prendere.

Arduino deve essere collegato ad una batteria e non alla corrente di casa.
Necessaria la batteria in quanto se collegato a corrente di casa questa potrebbe venir meno proprio tagliata dai malintenzionati.

Il telefono con il caricabatterie può restare sempre connesso alla corrente di casa, in questo modo si avrà comunque la carica sufficiente per far partire la chiamata.



Ecco una foto globale del progetto,
dato che non ho potuto testare personalmente codice e schema per qualsiasi info vi rimando all'autore del progetto, Ferruccio Giri (https://www.feroxos.it)

Buon divertimento!
Segui Daniele Alberti su Google+ per rimanere sempre aggiornato su nuovi post.







Datalogger sulla EEPROM di Arduino

In questo post vedremo come creare un semplicissimo datalogger con Arduino.

Un datalogger, è un dispositivo che memorizza periodicamente i dati che provengono da uno o più sensori.



Una "scatola nera", probabilmente il più famoso registratore di dati.

Related Posts Plugin for WordPress, Blogger...