sabato 1 agosto 2015

Apriporta RFID parte 1 - il progetto

Ho avuto qualche richiesta di pubblicazione del progetto apriporta rfid, che avevo brevemente postato tempo fa su youtube.


Il progetto è un derivato diretto dal progetto di rilevazione presenze, dal quale eredita la gestione dell'Rfid e della chiamata http per validare il dato.
Ovviamente trattandosi di un apri porta è presente in più un relè che serve ad eccitare l'apriporta.

Come funziona un apriporta

Per aprire una porta con arduino è necessario che questa sia dotata di una serratura elettrica. Nella maggiorparte dei casi le porte di ingresso degli uffici sono dotati di un incontro elettrico. L'incontro non è la serratura, bensì il "fermo" che sta sulla parte opposta, sulla quale il catenaccio aperto dalla maniglia va ad incastrarsi. Nelle porte normali non elettrificate questa componente è fissa ed è semplicemente un foro, mentre nelle porte elettrificate diventa una parte mobile che può essere sbloccata elettricamente permettendo alla porta di essere aperta.
Per chi interessa c'è un bel video della Viro che spiega come montarne uno. Tra l'altro il costo è veramente ridottissimo, circa 30 euro uno di buona marca.


Di fatto per arduino l'incontro elettrico viene "nascosto" dietro un relè da eccitare per qualche decina di millisecondi, al quale sarà collegato appunto l'incontro elettrico.

Per questo progetto non ho utilizzato il classico arduino uno, bensì un arduino mega, in quanto avevo la necessità di tenermi la porta aperta (scusate il gioco di parole visto che si tratta di un apriporta...) in caso di future espansioni di questo progetto.

Ecco la lista della spesa:

  • 1 Arduino Mega 2560 R2
  • 1 proto shield
  • 1 ethernet shield (without poe)
  • 1 scheda relè 5v
  • 1 alimentatore 12v
  • 1 display 16x2
  • 1 modulo rfid 522
  • 1 level converter
  • 1 buzzer
  • 1 led
  • cavo di rete cat 5


Il cavo di rete ci servirà in quanto il modulo rfid, il led di controllo e il buzzer saranno montati lontani dalla centralina arduino. Questo perchè nella mia installazione il modulo rfid/led/buzzer sono all'esterno della porta di casa, sotto il citofono, mentre la centralina arduino + relè sono all'interno. Un po' per questioni di sicurezza (ci vuole un secondo a cortocircuitare un relè e aprire la porta), un po' perchè la parte elettronica principale preferivo non esporla alle intemperie e agli sbalzi termici (vivo in Trentino, qui d'inverno fa anche -10°C).
Non sottovalutate i cavi troppo lunghi, ho scritto un interessante post in passato, ci sono disturbi di tutti i tipi in agguato, nell'insieme questo è un progetto davvero molto sensibile ai disturbi.
Per questo ho usato twistare i segnali sulla massa in modo indipendente, nell'utilizzare il cavo di rete.

Sull'utilizzo del level converter ho scritto un precedente post, se non fosse chiaro l'utilizzo prego darvi una rapida letta.

Wiring

Per l'assemblaggio ho usato una scatola di derivazione dove ospitare l'arduino, la scheda di rete, il relè, mentre all'esterno ho utilizzato una scatola stagna per campanelli, dove viene ospitato il lettore rfid, il led e il buzzer.
Per la connessione tra le 2 scatole ho usato 2 cavi di rete cat 6, per un totale di 16 poli disponibili, di cui però ne ho usato solo una parte

Cavo 1 (cavo di rete cat 6): si usano tutte le coppie

ARDUINO          LEVEL CONVERTER                                                            RFID
50 (miso)   --->  B4 level converter     A4 ---> Marrone (twistato con B/marrone + 3.3V) --> miso 
51 (mosi)   --->  B3 level converter     A3 ---> Verde (twistato con B/verde +3.3v)      --> mosi 
8  (sda)    --->  B2 level converter     A2 ---> Arancio                                 --> sda  
9  (rst)    --->  B/Arancio                                                              --> rst  
52 (sck)    --->  Blu  (twistato con B/blu gnd)                                          --> sck  
+3.3V       --->  B/verde + B/marrone + pin LV scheda level converter                    --> +3.3V 
gnd         --->  B/blu + pin GND scheda level converter                                 --> gnd  
+5V         --->  pin HV scheda level converter

Cavo 2 (cavo di rete cat 6): si usano solo 3 cavi

ARDUINO

2  (+buzzer) --->  B/Verde   cavo 2   ----> +buzzer
53 (+led)    --->  Verde     cavo 2   ----> +led
Gnd          --->  B/Marrone cavo 2   ----> resistenze 100 ohm verso polo (-) buzzer e led
           

Connessione alla scheda Rfid (cavo 1)

arancio   ---| SDA
blu       ---| SCK
verde     ---| MOSI
marrone   ---| MISO
non coll. ---| IRQ
b/blu     ---| GND
b/arancio ---| RST
b/verde   ---| +3.3V

Buzzer e led (Cavo 2)


      LED               BUZZER
     +   -             -      +
     |   |             |      |
  verde  |             |   B/verde
         |             |
         +-100R-+-100R-+
                |
                |
               gnd
            B/Marrone
           
Connessione al relè

Arduino                 Relè
7 Polo controllo Blu -> In1 
Gnd Bianco           -> Gnd 
+5V Rosso            -> Vcc

Display

Ho utilizzato un display 16x2 montato su un connettore che ne permettesse facilmente la rimozione.
Questa componente è opzionale, ma direi indispensabile in una prima fase di test, in quanto permette agevolmente di capire se arduino è collegato in rete, se ha preso l'indirizzo dal dhcp, se l'rfid legge, ecc.

47 -> RS
43 -> enable
41 -> D4
35 -> D5
33 -> D6
31 -> D7
oltre a gnd e +5V 

Ecco alcune foto della realizzazione:














Nel prossimo post: il software dell'apriporta

Nessun commento:

Posta un commento