• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
su come sensore pi raspberry utilizzare sw420

[Risolto] Come utilizzare sensore SW420 su Raspberry Pi
#1
Ho acquistato un sensore di vibrazione SW420 che vorrei utilizzare sul mio Raspberry Pi2.
[Immagine: 1pc-lot-SW-420-Normally-Closed-Alarm-Vib...-30512.jpg]

Ho cercato delle guide in rete e ho trovato solo QUESTA che mi spiega come realizzare lo script in Python.
Purtroppo, vista la mia inesperienza, la guida non mi risulta sufficentemente chiara (non vorrei arrostire il sensore nè tantomeno il Raspberry).
Oltre a ciò mi manca uno SCHEMINO PRATICO (per me che sono imbranato) su come collegare fisicamente il sensore al GPIO del Raspberry: credo che la cosa sia abbastanza semplice visto che ci sono solo 3 piedini.
Qualcuno di voi ha dei suggerimenti in proposito, avete già utilizzato questo tipo di sensore ?
Grazie per la collaborazione e un cordiale saluto a tutti.
Risposta
#2
Bé, intanto dicci che vuoi farci..
Comunque, non ho mai utilizzato il sensore, ma il collegamento, sembra in effetti abbastanza semplice :
Per logica
VCC == 3,3V
Pin centrale == GND (massa)
DD == al pin gpio che andrai a leggere.
Qui un esempio tratto dal sito che hai linkato tu, che trovo moderno e conciso (è per i sensori di movimento, ma dovrebbe andare bene anche per questo sensore, se vuoi una segnalazione quando c'è una vibrazione, e non una misura tipo sismografo. Assume che hai collegato DD al gpio4)
Codice:
from gpiozero import MotionSensor, LED
from signal import pause

pir = MotionSensor(4)  led = LED(16)

pir.when_motion = led.on
pir.when_no_motion = led.off

pause()
Risposta
#3
Zed, anzitutto ti ringrazio per la tua collaborazione (come sempre precisa e veloce) !
Beh, in effetti la mia idea era proprio quella di farci un semplicissimo rilevatore di scosse sismiche ma non avevo certo la pretesa di misurarle (so che per farlo occorrono altri tipi di sensore... molto più costosi): pensavo di montare il sensore su una sottile barra di acciaio armonico in modo da 'amplificare' la sensibilità.
Purtroppo, però, credo che la mia idea sia 'fasulla' perchè ieri ho provato ad alimentare il sensore con 3,3V. (senza connetterlo al Raspberry) ed ho notato che E' ESTREMAMENTE IMPRECISO/APPROSSIMATIVO.
Praticamente il led verde montato sul circuito SI ACCENDE E SI SPENGE IN MODO DEL TUTTO CASUALE, anche se provo ad orientare il sensore con diverse inclinazioni: sembra che il piccolo cilindretto blu (il vero e proprio sensore) sia di bassissima qualità e, di fatto, non riesco a regolare la sensibilità del circuito neppure utilizzando il trimmer...
A questo punto i casi sono 2:
1) Il circuito funziona correttamente solo se collegato/interfacciato al Raspberry/Arduino
2) Il circuito è di infima qualità ed è praticamente inutilizzabile (molto probabile)
Visto gli esiti delle mie prove, sono costretto ad ABBANDONARE il progetto... pazienza, avrò buttato via qualche euro (il sensore costa veramente poco).
Grazie comunque per l'aiuto e per il supporto.
Risposta
#4
Ciao Webfreelancestudio, io non sarei così precipitoso nell'abbandonare il progetto. La sperimentazione è il bello del nostro giocattolo Wink .
Hai provato a vedere cosa legge effettivamente il sensore?
Hai provato a stabilizzarlo in maniera che riceva meno vibrazioni?
Appoggiato su un tavolo non è sicuramente una base sufficentemente stabile.
Così, di primo achito, io penserei piu a stabilizzare il sensore piu che ad amplificare le oscillazioni su di lui.
Proverei tipo al pavimento (meglio se sotto non c'è nessuno spazio vuoto tipo una cantina) con un sacchetto di sabbia sopra.
Per vedere cosa legge farei un print(sensor.count) prima del reset (sensor.count = 0)

Mandi

Barbezuan
Risposta
#5
Puoi anche "stabilizzare" la misura via software, facendo una media delle letture.. Comunque il codice che ho messo nel mio post non va bene se vuoi effettivamente fare una misura (è del tipo on/off: c'è vibrazione o no, tipo l'allarme per le vetrine). O correrà, quindi, che tu faccia riferimento all'altro script Python presente nella pagina che hai indicato
Risposta
#6
(31/10/2016, 13:59)barbezuan Ha scritto: Ciao Webfreelancestudio, io non sarei così precipitoso nell'abbandonare il progetto. La sperimentazione è il bello del nostro giocattolo Wink .
Hai provato a vedere cosa legge effettivamente il sensore?
Hai provato a stabilizzarlo in maniera che riceva meno vibrazioni?
Appoggiato su un tavolo non è sicuramente una base sufficentemente stabile.
Così, di primo achito, io penserei piu a stabilizzare il sensore piu che ad amplificare le oscillazioni su di lui.
Proverei tipo al pavimento (meglio se sotto non c'è nessuno spazio vuoto tipo una cantina) con un sacchetto di sabbia sopra.
Per vedere cosa legge farei un print(sensor.count) prima del reset (sensor.count = 0)

Il problema di quel sensore (secondo me) è proprio la sensibilità o meglio la 'confusione' delle rilevazioni.
Mi spiego meglio: per provarlo l'ho semplicemente collegato a un alimentatore stabilizzato e ho regolato il voltaggio (esattamente) su 3,3V (questa è la tensione che posso ottenere dal Raspberry.
Il sensore ha due led, quello rosso resta sempre acceso perchè indica che il dispositivo è alimentato, mentre quello verde dovrebbe indicare lo 'stato' del sensore cioè ON oppure OFF (credo che lo stato di deafult sia ON).
Praticamente quando alimento il sensore sembra che il led verde si accenda e si spenga 'casualmente' anche se lo INCOLLO saldamente a un oggetto stabile e pesante, addirittura alcune volte si accende da sè o non si accende affatto (anche in presenza di forti vibrazioni) e le regolazioni del trimmer non danno apparenti risultati.
Ho provato a orientare il sensore (in piano, in verticale, in obliquo) ma la 'confusione' nelle rilevazioni NON cambia: se lo metto in verticale il led resta sempre acceso, se lo metto in piano il led si accende o si spenge anche se non lo muovo, sembra quasi che ci sia un 'falso contatto' nel rilevatore (non ne sarei meravigliato visto il prezzo decisamente basso).
Ma la cosa peggiore (quella che, secondo me, lo rende inutilizzabile) è che quando il sensore passa dallo stato ON a quello OFF (o viceversa) RESTA FERMO LI'.
Questo vorrebbe dire che se viene percepita una vibrazione (o uno spostamento) lo stato di allarme NON cessa anche se il sensore ritorna stabile.
Probabilmente sono 'inciampato' in un circuito difettoso (tutta roba cinese con componenti estremamente scadenti).

(31/10/2016, 16:18)Zzed Ha scritto: Puoi anche "stabilizzare" la misura via software, facendo una media delle letture.. Comunque il codice che ho messo nel mio post non va bene se vuoi effettivamente fare una misura (è del tipo on/off: c'è vibrazione o no, tipo l'allarme per le vetrine). O correrà, quindi, che tu faccia riferimento all'altro script Python presente nella pagina che hai indicato

Grazie Zed, dalle prove che ho fatto credo di poter affermare che il sensore NON rileva l'ampiezza delle vibrazioni ma funziona semplicemente come un'allarme da finestra cioè se vibra troppo CAMBIA STATO.
Mi pare inoltre che il mio sensore sia del tipo NC (normally closed) quindi non so se possa andar bene per quello che vorrei fare.
Credo comunque che lo script più adatto (ammesso che il sensore non sia danneggiato) sia quello pubblicato sul link che ho postato: se non sbaglio (per quel poco che ci capisco) con quello script viene fatta una 'media' su 1000 cicli di rilevazione (forse per evitare errori o incongruenze del sensore ?).
In ogni caso farò una prova: il materiale non mi manca (breadboard, jumper, ecc.)... devo solo modificare il pin di OUTPUT perchè sul GPIO del mio Raspberry ci ho gia attaccato 'di tutto' (ti lascio immaginare) dunque devo 'scovare' un pin libero per l'esperimento (oppure devo momentaneamente scollegare qualche altro marchingegno).
Appena ho fatto la prova posterò il risultato.
Grazie a tutti e saluti.
Risposta
#7
Questo dovrebbe essere lo schema del sensore:

   

come vedi è abbastanza semplice, un comparatore e 4 resistenze, del led di uscita non farei molto affidamente, sicuramente la frequenza d'uscita è troppo alte par l'occhio.

Il sensore vero e proprio è fatto così:

   

se lo posizioni in verticale non lavora bene.

   

L'alimentazione, come vedi, è abbastanza elastica 3,3-5.
Se non lo fai leggere ad un software non capirai mai se funziona. Il programma che hai linkato in pratica accende il led se vengono contati piu di 1000 impulsi in un secondo.
Collegalo e chiedi pure.

PS: Per completare, nel programma che hai linkato il led è collegato al pin 38 (GPIO 20) e l'ingresso del sensore è sul pin 40 (GPIO 21)

Mandi

Barbezuan
Risposta
#8
Grazie per la risposta, in settimana proverò a assemblare tutto sulla breadboard e posterò il risultato.
Un'ultima domanda:
Per modificare i pin di collegamento su GPIO (non vorrei scollegare gli altri dispositivi già funzionanti) dovrei semplicemente cambiare questa riga ?

Codice:
sensor = Sw40(21,20)

Ti ringrazio e ti saluto.
Risposta
#9
Esatto, il primo è l'ingresso del sensore ed il secondo è l'uscita per il led.

Mandi

Barbezuan
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect