Lucchetto a combinazione fai da te su Arduino. Serratura intelligente automatica e Arduino

Blocco codice fai da te su Arduino


Sfondo

È successo che al lavoro abbiamo deciso di installare una serratura a combinazione sulla nostra porta, perché corriamo costantemente dentro e fuori dall'ufficio, la cui porta dovrebbe essere costantemente chiusa in assenza degli occupanti. Spesso le chiavi finiscono dimenticate all'interno. In generale, abbiamo deciso che una serratura a combinazione fosse un’ottima soluzione.

Dopo aver frugato nei mercatini cinesi e su ebay, non ho trovato nulla di economico e più o meno serio e ho deciso di realizzarlo da solo. Dirò subito che la piattaforma Arduino è stata scelta per la sua semplicità, dato che non avevo alcuna esperienza con i microcontrollori.

Sulla porta con al di fuori La porta dovrebbe avere una tastiera su cui inserire la password e il resto della struttura dovrebbe essere protetto all'interno. Un interruttore reed viene utilizzato per controllare la chiusura completa della porta. Quando esce dall'ufficio, una persona preme “*” sulla tastiera e, senza aspettare che la porta si chiuda con il chiudiporta, fa i suoi affari, quando la porta è completamente chiusa, l'interruttore a lamella si chiuderà e la serratura sarà chiusa . La porta si apre inserendo una password di 4 cifre e premendo “#”.

Accessori

Arduino UNO = $ 18
Protoshield Arduino + breadboard = $ 6
L293D = $ 1
Fascio di cavi 30 pezzi per Bradboard = $ 4
2 prese RJ45 = $ 4
2 prese RJ45 = $ 0,5
attuatore chiusura centralizzata = 250 rubli.
Interruttore reed = strappato liberamente dalla vecchia finestra.
Chiusura gigante in metallo = gratuita
Alloggiamento di un vecchio hub D-LINK in ferro da un millimetro e mezzo = gratuito
Alimentazione dallo stesso hub D-LINK per 12 e 5 V = anche gratuita
Un mucchio di viti e dadi per fissare tutta questa roba alla carrozzeria = 100 rubli.
Controllo remoto da allarme antifurto= gratuito.

Totale: 33,5$ e 350 rubli.

Non così poco, dirai, e avrai sicuramente ragione, ma il piacere si paga! Ed è sempre bello assemblare qualcosa con le tue mani. Inoltre, il costo del progetto può essere notevolmente ridotto se si utilizza un MK nudo senza Arduino.

Preparazione per il montaggio

Vorrei spendere alcune parole sull'acquisto di un elemento chiave del design dell'attuatore. Un negozio di automobili locale mi ha offerto due tipi di attuatori: “a due fili e a cinque”. Secondo la venditrice erano assolutamente identici e la differenza nel numero di fili non significava assolutamente nulla. Tuttavia, come si è scoperto in seguito, non è così! Ho scelto un dispositivo con due fili, era alimentato a 12V. Il design a cinque fili è dotato di finecorsa per controllare il movimento della leva. Mi sono reso conto di aver comprato quello sbagliato solo quando l'ho smontato ed era troppo tardi per cambiarlo. La corsa della leva si è rivelata troppo breve per far rientrare correttamente la serratura, pertanto è stato necessario modificarla leggermente, ovvero rimuovere due rondelle in gomma che accorciavano la corsa della leva di azionamento. Per fare questo, il corpo doveva essere segato longitudinalmente con un normale seghetto, perché la seconda rondella era all'interno. Il nastro isolante blu, come sempre, ci ha aiutato in futuro nel rimontarlo.

Per controllare il motore dell'attuatore, abbiamo utilizzato un driver del motore L293D, che può sopportare un carico di picco fino a 1200 mA; quando abbiamo arrestato il motore dell'attuatore, il carico di picco è aumentato fino a soli 600 mA;

I contatti della tastiera, dell'altoparlante e di due LED sono stati rimossi dal pannello di controllo dell'allarme di sicurezza. Il telecomando e il dispositivo principale avrebbero dovuto essere collegati tramite doppini intrecciati e connettori RJ45

Programmazione.

Quindi fino ad ora non avevo esperienza nella programmazione di Arduino. Ho utilizzato il lavoro di altre persone e gli articoli dal sito arduino.cc. Chiunque sia interessato può dare un'occhiata a questo brutto codice :)

Foto e video

È successo che al lavoro abbiamo deciso di installare una serratura a combinazione sulla nostra porta, perché corriamo costantemente dentro - corriamo fuori dall'ufficio, la cui porta dovrebbe essere costantemente chiusa in assenza degli occupanti. Spesso le chiavi finiscono dimenticate all'interno. In generale, abbiamo deciso che una serratura a combinazione fosse un’ottima soluzione.

Dopo aver frugato nei mercatini cinesi e su ebay, non ho trovato nulla di economico e più o meno serio e ho deciso di realizzarlo da solo. Dirò subito che la piattaforma Arduino è stata scelta per la sua semplicità, dato che non avevo alcuna esperienza con i microcontrollori.

Idea

All'esterno della porta dovrebbe esserci una tastiera su cui inserire la password, mentre il resto della struttura dovrebbe essere fissato all'interno. Un interruttore reed viene utilizzato per controllare la chiusura completa della porta. Quando esce dall'ufficio, una persona preme “*” sulla tastiera e, senza aspettare che la porta si chiuda con il chiudiporta, fa i suoi affari, quando la porta è completamente chiusa, l'interruttore a lamella si chiuderà e la serratura sarà chiusa . La porta si apre inserendo una password di 4 cifre e premendo “#”.

Accessori

Arduino UNO = $ 18
Protoshield Arduino + breadboard = $ 6
L293D = $ 1
Fascio di cavi 30 pezzi per Bradboard = $ 4
2 prese RJ45 = $ 4
2 prese RJ45 = $ 0,5
attuatore chiusura centralizzata = 250 rubli.
Interruttore reed = strappato liberamente dalla vecchia finestra.
Chiusura gigante in metallo = gratuita
Alloggiamento di un vecchio hub D-LINK in ferro da un millimetro e mezzo = gratuito
Alimentazione dallo stesso hub D-LINK per 12 e 5 V = anche gratuita
Un mucchio di viti e dadi per fissare tutta questa roba alla carrozzeria = 100 rubli.
Centrale di allarme di sicurezza = gratuita.

Totale:$ 33,5 e 350 rubli.

Non così poco, dirai, e avrai sicuramente ragione, ma il piacere si paga! Ed è sempre bello assemblare qualcosa con le tue mani. Inoltre, il costo del progetto può essere notevolmente ridotto se si utilizza un MK nudo senza Arduino.

Preparazione per il montaggio

Vorrei spendere alcune parole sull'acquisto di un elemento chiave del design dell'attuatore. Un negozio di automobili locale mi ha offerto due tipi di attuatori: “a due fili e a cinque”. Secondo la venditrice erano assolutamente identici e la differenza nel numero di fili non significava assolutamente nulla. Tuttavia, come si è scoperto in seguito, non è così! Ho scelto un dispositivo con due fili, era alimentato a 12V. Il design a cinque fili è dotato di finecorsa per controllare il movimento della leva. Mi sono reso conto di aver comprato quello sbagliato solo quando l'ho smontato ed era troppo tardi per cambiarlo. La corsa della leva si è rivelata troppo breve per far rientrare correttamente la serratura, pertanto è stato necessario modificarla leggermente, ovvero rimuovere due rondelle in gomma che accorciavano la corsa della leva di azionamento. Per fare questo, il corpo doveva essere segato longitudinalmente con un normale seghetto, perché la seconda rondella era all'interno. Il nastro isolante blu, come sempre, ci ha aiutato in futuro nel rimontarlo.
Per controllare il motore dell'attuatore, abbiamo utilizzato un driver del motore L293D, che può sopportare un carico di picco fino a 1200 mA; quando abbiamo arrestato il motore dell'attuatore, il carico di picco è aumentato fino a soli 600 mA;
I contatti della tastiera, dell'altoparlante e di due LED sono stati rimossi dal pannello di controllo dell'allarme di sicurezza. Il telecomando e il dispositivo principale avrebbero dovuto essere collegati tramite doppini intrecciati e connettori RJ45

Programmazione.

Quindi fino ad ora non avevo esperienza nella programmazione di Arduino. Ho utilizzato il lavoro di altre persone e gli articoli dal sito arduino.cc. Chiunque sia interessato può dare un'occhiata a questo brutto codice :)

Foto e video



Arduino e attuatore


alimentatore


Tastiera


Cremonese (collegata all'attuatore con una razza metallica e ricoperta di termoretraibile per estetica)

Video del processo di funzionamento del dispositivo:

La lezione di oggi riguarda come utilizzare un lettore RFID con Arduino per creare un semplice sistema di chiusura, in parole semplici- Blocco RFID.

L'RFID (inglese Radio Frequency IDentification, identificazione a radiofrequenza) è un metodo di identificazione automatica di oggetti in cui i dati memorizzati nei cosiddetti transponder, o tag RFID, vengono letti o scritti utilizzando segnali radio. Qualsiasi sistema RFID è costituito da un dispositivo di lettura (lettore, lettore o interrogatore) e da un transponder (noto anche come tag RFID, a volte viene utilizzato anche il termine tag RFID).

Questo tutorial utilizzerà un tag RFID con Arduino. Il dispositivo legge l'identificatore univoco (UID) di ciascun tag RFID che posizioniamo accanto al lettore e lo visualizza sul display OLED. Se l'UID del tag è uguale al valore predefinito archiviato nella memoria di Arduino, sul display verrà visualizzato il messaggio "Unlocked". Se l'ID univoco non è uguale ad un valore predefinito, il messaggio "Sbloccato" non apparirà - vedi foto sotto.

Il castello è chiuso

La serratura è aperta

Parti necessarie per creare questo progetto:

  • Lettore RFID RC522
  • Display OLED
  • Tagliere per il pane
  • Fili

Dettagli aggiuntivi:

  • Batteria (powerbank)

Il costo totale dei componenti del progetto è stato di circa $ 15.

Passaggio 2: Lettore RFID RC522

Ogni tag RFID contiene un piccolo chip (carta bianca mostrata nella foto). Se accendi una torcia su questa carta RFID, puoi vedere il piccolo chip e la bobina che lo circonda. Questo chip non ha una batteria per generare energia. Riceve alimentazione dal lettore in modalità wireless utilizzando questa bobina di grandi dimensioni. È possibile leggere una tessera RFID come questa fino a 20 mm di distanza.

Lo stesso chip esiste anche nei tag portachiavi RFID.

Ogni tag RFID ha un numero univoco che lo identifica. Questo è l'UID visualizzato sul display OLED. Ad eccezione di questo UID, ogni tag può memorizzare dati. Questo tipo di scheda può memorizzare fino a 1 mila dati. Impressionante, non è vero? Questa funzione non verrà utilizzata oggi. Oggi tutto ciò che interessa è identificare una carta specifica tramite il suo UID. Il costo del lettore RFID e di queste due carte RFID è di circa $ 4.

Passaggio 3: display OLED

La lezione utilizza un monitor OLED I2C 128x64 da 0,96".

Questo è un ottimo display da utilizzare con Arduino. Questo è un display OLED e ciò significa che ha un basso consumo energetico. Il consumo energetico di questo display è di circa 10-20 mA e dipende dal numero di pixel.

Il display ha una risoluzione di 128 x 64 pixel ed è di dimensioni ridotte. Sono disponibili due opzioni di visualizzazione. Uno di questi è monocromatico e l'altro, come quello utilizzato nella lezione, può visualizzare due colori: giallo e blu. La parte superiore dello schermo può essere solo gialla e la parte inferiore può essere solo blu.

Questo display OLED è molto luminoso e ha una libreria fantastica e molto carina che Adafruit ha sviluppato per questo display. Oltre a ciò, il display utilizza un'interfaccia I2C, quindi la connessione ad Arduino è incredibilmente semplice.

Devi solo collegare due fili tranne Vcc e GND. Se non conosci Arduino e desideri utilizzare un display semplice ed economico nel tuo progetto, inizia da qui.

Passaggio 4: collegamento di tutte le parti

Il progresso non si ferma e le “serrature intelligenti” compaiono sempre più spesso sulle porte di appartamenti, garage e case.

Un lucchetto simile si apre quando si preme un pulsante sullo smartphone. Per fortuna smartphone e tablet sono già entrati nella nostra vita quotidiana. In alcuni casi, le “serrature intelligenti” sono collegate a “servizi cloud” come Google Drive e aperte da remoto. Inoltre, questa opzione consente di dare accesso all'apertura della porta ad altre persone.

Questo progetto implementerà una versione fai-da-te di una serratura intelligente su Arduino, che può essere controllata da remoto da qualsiasi parte del mondo.

Inoltre, il progetto ha aggiunto la possibilità di aprire la serratura dopo aver identificato un'impronta digitale. A tale scopo verrà integrato un sensore di impronte digitali. Entrambe le opzioni di apertura delle porte saranno supportate dalla piattaforma Adafruit IO.

Una serratura come questa può essere un ottimo primo passo nel tuo progetto Smart Home.

Configurazione del sensore di impronte digitali

Per lavorare con un sensore di impronte digitali, esiste un'eccellente libreria per Arduino, che semplifica notevolmente il processo di configurazione del sensore. Questo progetto utilizza Arduino Uno. Per connettersi a Internet viene utilizzata una scheda Adafruit CC3000.

Iniziamo collegando l'alimentazione:

  • Collega il pin da 5 V della scheda Arduino alla barra di alimentazione rossa;
  • Il pin GND di Arduino si collega alla guida blu sul circuito stampato senza saldatura.

Passiamo al collegamento del sensore impronte digitali:

  • Per prima cosa collega l'alimentazione. Per fare ciò, collegare il filo rosso alla guida +5 V e il filo nero alla guida GND;
  • Il filo bianco del sensore si collega al pin 4 di Arduino.
  • Il filo verde va al pin 3 del microcontrollore.

Passiamo ora al modulo CC3000:

  • Colleghiamo il pin IRQ della scheda CC3000 al pin 2 di Arduino.
  • VBAT - al pin 5.
  • CS - al pin 10.
  • Successivamente, è necessario collegare i pin SPI ad Arduino: MOSI, MISO e CLK - rispettivamente ai pin 11, 12 e 13.

Bene, alla fine devi fornire energia: Vin - all'Arduino 5V (binario rosso sul circuito stampato) e GND a GND (binario blu sulla breadboard).

Di seguito è mostrata una foto del progetto completamente assemblato:

Prima di sviluppare uno schizzo che caricherà i dati su Adafruit IO, devi trasferire i dati relativi alla tua impronta digitale al sensore. Altrimenti non ti riconoscerà in futuro;). Si consiglia di calibrare separatamente il sensore di impronte digitali utilizzando Arduino. Se è la prima volta che lavori con questo sensore, ti consigliamo di familiarizzare con il processo di calibrazione e le istruzioni dettagliate per lavorare con il sensore di impronte digitali.

Se non l'hai già fatto, crea un account con Adafruit IO.

Dopodiché possiamo passare alla fase successiva dello sviluppo di una “serratura intelligente” su Arduino: ovvero sviluppare uno sketch che trasmetterà i dati ad Adafruit IO. Poiché il programma è piuttosto voluminoso, in questo articolo evidenzieremo e considereremo solo le sue parti principali, quindi forniremo un collegamento a GitHub, dove sarà possibile scaricare lo schizzo completo.

Lo sketch inizia caricando tutte le librerie necessarie:

#includere

#includere

#includere

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_CC3000.h"

#includere

#includere >

Fatto questo, devi correggere leggermente lo sketch inserendo i parametri della tua rete WiFi, specificando SSID e password:

#define WLAN_SECURITY WLAN_SEC_WPA2>

Inoltre, devi inserire il tuo nome e la chiave AIO per accedere al tuo account Adafruit IO:

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_name"

#define AIO_KEY "adafruit_io_key">

Le seguenti linee sono responsabili dell'interazione e dell'elaborazione dei dati dal sensore di impronte digitali. Se il sensore era attivato (l'impronta digitale corrispondeva), ci sarà "1":

const char FINGERPRINT_FEED PROGMEM = AIO_USERNAME "/feeds/impronta digitale";

Adafruit_MQTT_Publish impronta digitale = Adafruit_MQTT_Publish(&mqtt, FINGERPRINT_FEED);

Inoltre, dobbiamo creare un'istanza dell'oggetto SoftwareSerial per il nostro sensore:

SoftwareSerial mySerial(3, 4);

Successivamente possiamo creare un oggetto per il nostro sensore:

Dito Adafruit_Fingerprint = Adafruit_Fingerprint(&mySerial);

All'interno dello sketch indichiamo quale fingerID dovrà attivare la serratura in futuro. Questo esempio utilizza 0, che corrisponde all'ID della prima impronta digitale utilizzata dal sensore:

int fingerID = 0;

Successivamente, inizializziamo il contatore e ritardiamo il nostro progetto. In sostanza vogliamo che la serratura si attivi automaticamente una volta aperta. Questo esempio utilizza un ritardo di 10 secondi, ma puoi modificare questo valore in base alle tue esigenze:

int attivazioneContatore = 0;

int ultimaattivazione = 0;

int tempo di attivazione = 10 * 1000;

Nel corpo della funzione setup() inizializziamo il sensore di impronte digitali e ci assicuriamo che il chip CC3000 sia connesso alla tua rete WiFi.

Nel corpo della funzione loop() ci colleghiamo ad Adafruit IO. La seguente riga è responsabile di ciò:

Dopo esserci collegati alla piattaforma Adafruit IO, controlliamo l'ultima impronta digitale. Se corrisponde e il blocco non è attivato, inviamo "1" ad Adafruit IO per l'elaborazione:

if (IDimpronta == IDimpronta && lockState == false) (

Serial.println(F("Accesso concesso!"));

lockState = vero;

Serial.println(F("Fallito"));

Serial.println(F("OK!"));

ultimaattivazione = millis();

Se all'interno della funzione loop() il blocco è attivato e abbiamo raggiunto il valore di ritardo sopra indicato, inviamo “0”:

if ((activationCounter - lastActivation > optimizationTime) && lockState == true) (

lockState = falso;

if (! impronta digitale.pubblica(stato)) (

Serial.println(F("Fallito"));

Serial.println(F("OK!"));

Puoi scaricare l'ultima versione del codice su GitHub.

È il momento di testare il nostro progetto! Non dimenticare di scaricare e installare tutte le librerie necessarie per Arduino!

Assicurati di aver apportato tutte le modifiche necessarie allo schizzo e caricalo sul tuo Arduino. Successivamente, apri la finestra Monitor seriale.

Quando Arduino si connette alla rete WiFi, il sensore di impronte digitali inizierà a lampeggiare in rosso. Posiziona il dito sul sensore. Il numero ID dovrebbe essere visualizzato nella finestra del monitor seriale. Se corrisponde, verrà visualizzato il messaggio "OK!". Ciò significa che i dati sono stati inviati ai server IO di Adafruit.

Diagramma e schizzo per un'ulteriore configurazione della serratura utilizzando l'esempio di un LED

Ora affrontiamo quella parte del progetto che è direttamente responsabile della gestione serratura. Per connettersi a una rete wireless e attivare/disattivare il blocco, sarà necessario un modulo Adafruit ESP8266 aggiuntivo (il modulo ESP8266 non deve necessariamente provenire da Adafruit). Utilizzando l'esempio seguente, puoi valutare quanto sia facile scambiare dati tra due piattaforme (Arduino ed ESP8266) utilizzando Adafruit IO.

In questa sezione non lavoreremo direttamente con la serratura. Collegheremo invece semplicemente il LED al pin a cui successivamente verrà collegata la serratura. Questo ci darà l'opportunità di testare il nostro codice senza approfondire i dettagli del design della serratura.

Lo schema è abbastanza semplice: installa prima l'ESP8266 sulla breadboard. Successivamente, installare il LED. Non dimenticare che il ramo lungo (positivo) del LED è collegato tramite un resistore. La seconda gamba del resistore è collegata al pin 5 sul modulo ESP8266. Colleghiamo il secondo (catodo) del LED al pin GND sull'ESP8266.

Completamente circuito assemblato mostrato nella foto qui sotto.


Ora diamo un'occhiata allo schizzo che stiamo utilizzando per questo progetto. Ancora una volta, il codice è piuttosto grande e complesso, quindi ne esamineremo solo le parti principali:

Iniziamo collegando le librerie necessarie:

#includere

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_Client.h"

Configurazione delle impostazioni Wi-Fi:

#define WLAN_SSID "tuo_wifi_ssid"

#define WLAN_PASS "tua_password_wifi"

#define WLAN_SECURITY WLAN_SEC_WPA2

Configuriamo anche i parametri IO di Adafruit. Come nella sezione precedente:

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_nomeutente"

#define AIO_KEY "adafruit_io_key"

Indichiamo a quale pin abbiamo collegato il LED (in futuro questo sarà il nostro lucchetto o relè):

int relèPin = 5;

Interazione con il sensore di impronte digitali, come nella sezione precedente:

const char LOCK_FEED PROGMEM = AIO_USERNAME "/feeds/lock";

Adafruit_MQTT_Subscribe blocco = Adafruit_MQTT_Subscribe(&mqtt, LOCK_FEED);

Nel corpo della funzione setup() indichiamo che il pin a cui è collegato il LED deve funzionare in modalità OUTPUT:

pinMode(pinrelè, USCITA);

All'interno del ciclo loop(), controlliamo prima se siamo connessi ad Adafruit IO:

Successivamente, controlliamo quale segnale viene ricevuto. Se viene trasmesso "1", attiviamo il pin che abbiamo dichiarato in precedenza, a cui è collegato il nostro LED. Se riceviamo "0", trasferiamo il contatto nello stato "basso":

Adafruit_MQTT_Subscribe *abbonamento;

while ((abbonamento = mqtt.readSubscription(1000))) (

if (abbonamento == &blocco) (

Serial.print(F("Ricevuto: "));

Serial.println((char *)lock.lastread);

// Salva il comando nella stringa dati

Comando String = String((char *)lock.lastread);

if (comando == "0") (

digitalWrite(Pinrelè, BASSO);

if (comando == "1") (

digitalWrite(Pinrelè, ALTO);

Trovare ultima versione Puoi trovare lo schizzo su GitHub.

È tempo di testare il nostro progetto. Non dimenticare di scaricare tutte le librerie richieste per il tuo Arduino e verificare se hai apportato le modifiche corrette allo sketch.

Per programmare il chip ESP8266 è possibile utilizzare un semplice convertitore USB-FTDI.

Carica lo schizzo su Arduino e apri la finestra Monitor seriale. In questa fase abbiamo semplicemente verificato se siamo riusciti a connetterci ad Adafruit IO: esamineremo più approfonditamente le funzionalità disponibili.

Testare il progetto

Ora iniziamo i test! Vai al menu utente di Adafruit IO, nel menu Feed. Controlla se i canali dell'impronta digitale e del blocco sono stati creati o meno (nella schermata di stampa sottostante ci sono le linee dell'impronta digitale e del blocco):


Se non esistono, dovrai crearli manualmente.

Ora dobbiamo garantire lo scambio di dati tra l'impronta digitale e i canali di blocco. Il canale di blocco deve assumere il valore "1" quando il canale dell'impronta digitale assume il valore "1" e viceversa.

Per questo usiamo very strumento potente Adafruit IO: trigger. I trigger sono essenzialmente condizioni che è possibile applicare ai canali configurati. Cioè, possono essere utilizzati per interconnettere due canali.

Crea un nuovo trigger reattivo dalla sezione Trigger in Adafruit IO. Ciò fornirà la possibilità di scambiare dati tra il sensore di impronte digitali e i canali di blocco:


Questo è come dovrebbe apparire quando entrambi i trigger sono configurati:

Tutto! Ora possiamo effettivamente testare il nostro progetto! Mettiamo il dito sul sensore e vediamo come l'Arduino inizia a lampeggiare con un LED che corrisponde alla trasmissione dei dati. Successivamente, il LED sul modulo ESP8266 dovrebbe iniziare a lampeggiare. Ciò significa che ha iniziato a ricevere dati tramite MQTT. In questo momento dovrebbe accendersi anche il LED sulla scheda.

Dopo il ritardo impostato nello schizzo (l'impostazione predefinita è 10 secondi), il LED si spegnerà. Congratulazioni! Puoi controllare il LED con la tua impronta digitale da qualsiasi parte del mondo!

Configurazione di una serratura elettronica

Siamo arrivati ​​all'ultima parte del progetto: connessione diretta e controllo. serratura elettronica utilizzando Arduino e sensore di impronte digitali. Il progetto non è semplice, puoi utilizzare tutte le sorgenti nella forma in cui sono presentate sopra, ma collegare un relè anziché un LED.

Per collegare direttamente la serratura avrete bisogno di componenti aggiuntivi: un alimentatore da 12 V, un jack per il collegamento dell'alimentazione, un transistor (V in questo esempio Viene utilizzato il MOSFET IRLB8721PbF, ma è possibile utilizzarne un altro, ad esempio un transistor bipolare TIP102. Se utilizzi un transistor bipolare, dovrai aggiungere un resistore.

Mostrato di seguito schema elettrico collegando tutti i componenti al modulo ESP8266:


Tieni presente che se utilizzi un transistor MOSFET, non avrai bisogno di un resistore tra il pin 5 del modulo ESP8266 e il transistor.

Il progetto completamente assemblato è mostrato nella foto qui sotto:


Alimenta il modulo ESP8266 utilizzando il modulo FTDI e collega l'alimentatore da 12 V al jack. Se hai utilizzato i pin consigliati sopra per la connessione, non dovrai modificare nulla nello schizzo.

Ora puoi mettere il dito sul sensore: il blocco dovrebbe funzionare in risposta alla tua impronta digitale. Il video qui sotto mostra il progetto di serratura intelligente automatica in azione:

Ulteriore sviluppo del progetto Smart Lock

Rilasciato nel nostro progetto telecomando serratura della porta utilizzando l'impronta digitale.

Sentiti libero di sperimentare, modificare lo schizzo e la rilegatura. Ad esempio, puoi sostituire la porta serratura elettronica su un relè per controllare la potenza della tua stampante 3D, manipolatore o quadricottero...

Puoi sviluppare il tuo casa intelligente". Ad esempio, attivare da remoto un sistema di irrigazione su Arduino o accendere le luci in una stanza... Non dimenticare che puoi attivare contemporaneamente un numero quasi illimitato di dispositivi utilizzando Adafruit IO.

Lascia i tuoi commenti, domande e condividi esperienza personale sotto. Spesso dalle discussioni nascono nuove idee e progetti!

In questa lezione impareremo come fare sistema semplice, che sbloccherà la serratura tramite una chiave elettronica (Tag).

In futuro, puoi perfezionare ed espandere la funzionalità. Ad esempio, aggiungi la funzione "aggiunta di nuove chiavi e rimozione dalla memoria". Nel caso base, consideriamo un semplice esempio in cui un identificatore di chiave univoco è preimpostato nel codice del programma.

In questo tutorial avremo bisogno di:

Per realizzare il progetto dobbiamo installare le librerie:

2) Ora è necessario collegare un Buzzer, che emetterà un segnale se la chiave funziona e la serratura si apre, e un secondo segnale quando la serratura si chiude.

Colleghiamo il cicalino nella seguente sequenza:

Arduino Cicalino
5 V VCC
TERRA TERRA
perno 5 IO

3) Come meccanismo di sblocco verrà utilizzato un servoazionamento. È possibile selezionare qualsiasi servoazionamento, a seconda delle dimensioni richieste e della forza creata dal servoazionamento. Il servo ha 3 contatti:

Puoi vedere più chiaramente come abbiamo collegato tutti i moduli nell'immagine qui sotto:

Ora, se tutto è collegato, puoi procedere alla programmazione.

Schizzo:

#includere #includere #includere // Libreria "RFID". #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); unsigned lungo uidDec, uidDecTemp; // per memorizzare il numero del tag in formato decimale Servo servo; void setup() ( Serial.begin(9600); Serial.println("In attesa della scheda..."); SPI.begin(); // Inizializzazione SPI / Init bus SPI. mfrc522.PCD_Init(); // Inizializzazione MFRC522 / Init MFRC522 card. servo.attach(6); servo.write(0); // imposta il servo sullo stato chiuso) void loop() ( // Cerca una nuova etichetta if (! mfrc522.PICC_IsNewCardPresent()) ( return; ) // Seleziona un tag if (! mfrc522.PICC_ReadCardSerial()) ( return; ) uidDec = 0; // Visualizza il numero di serie del tag per (byte i = 0; i< mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec * 256 + uidDecTemp; } Serial.println("Card UID: "); Serial.println(uidDec); // Выводим UID метки в консоль. if (uidDec == 3763966293) // Сравниваем Uid метки, если он равен заданому то серва открывает. { tone(5, 200, 500); // Делаем звуковой сигнал, Открытие servo.write(90); // Поворациваем серву на угол 90 градусов(Отпираем какой либо механизм: задвижку, поворациваем ключ и т.д.) delay(3000); // пауза 3 сек и механизм запирается. tone(5, 500, 500); // Делаем звуковой сигнал, Закрытие } servo.write(0); // устанавливаем серву в закрытое сосотояние }

Diamo un'occhiata allo schizzo più in dettaglio:

Per scoprire l'UID della scheda (Tag), è necessario scrivere questo schizzo in arduino, assemblare il circuito sopra delineato e aprire la Console (Serial Port Monitoring). Quando tocchi il tag RFID, la console visualizzerà un numero

L'UID risultante deve essere inserito nella riga seguente:

Se (uidDec == 3763966293) // Confronta l'Uid del tag, se è uguale a quello indicato, il servoazionamento apre la valvola.

Ogni carta ha un identificatore univoco e non viene ripetuta. Pertanto, quando presenti la carta di cui hai impostato l'identificatore nel programma, il sistema aprirà l'accesso utilizzando un servoazionamento.

Video: