Sådan laver du en kombinationslås på arduino. arduino kodelås

Gør-det-selv kodelås på Arduino


baggrund

Det skete bare sådan, at vi besluttede at installere en kombinationslås på vores dør på arbejdet, for da vi konstant løber ind, løber vi ud af kontoret, hvor døren skal være lukket konstant i fravær af indbyggere. Nøgler er ofte glemt indeni. Generelt besluttede vi, at en kombinationslås er en god udvej.

Efter at have rodet gennem kinesiske loppemarkeder og ebay, fandt jeg ikke noget billigt og mere eller mindre seriøst og besluttede at lave det selv. Jeg vil med det samme tage forbehold for, at Arduino-platformen blev valgt for dens enkelhed, da der slet ikke var nogen erfaring med mikrocontrollere.

På døren med uden for døren skal have et tastatur, hvorpå kodeordet indtastes, med inde fikseret resten af ​​strukturen. En reed-kontakt bruges til at kontrollere den fuldstændige lukning af døren. Når en person forlader kontoret, trykker en person på "*" på tastaturet, og uden at vente på, at døren lukker, går dørlukkeren i gang, når døren er helt lukket, lukkes reed-kontakten, og låsen lukkes. Døren åbnes ved at indtaste en 4-cifret adgangskode og trykke på "#".

tilbehør

Arduino UNO = $18
Arduino protoskjold + brødbræt = $6
L293D = $1
Bundt af ledninger 30 stk til bredboard = $4
2 RJ45-stik = $4
2 RJ45 stik = $0,5
aktuator centrallås= 250 rubler.
Reed switch = revet gratis af det gamle vindue.
Espagnolet metal gigantiske størrelser = gratis
Etui fra gammelt D-LINK nav lavet af 1,5 mm jern = fri
Strømforsyning fra samme D-LINK hub til 12 og 5v = også gratis
En flok skruer og møtrikker til at fastgøre alle disse ting til sagen = 100 rubler.
Kontrolpanel fra tyverialarm= gratis.

I alt: $33,5 og 350 rubler.

Ikke så lidt, siger du, og du vil helt sikkert have ret, men du skal betale for fornøjelsen! Og det er altid rart at samle noget med egne hænder. Derudover kan designet reduceres kraftigt i pris, hvis du bruger en bar MK uden en Arduino.

Forberedelse af montage

Jeg vil gerne sige et par ord om købet af et nøgleelement i aktuatordesignet. Hos en lokal autoforretning tilbød de mig to typer aktuatorer: "med to ledninger og med fem." Ifølge ekspedienten var de nøjagtig ens, og forskellen i antallet af ledninger betød absolut ingenting. Men som det viste sig senere, er dette ikke tilfældet! Jeg valgte en enhed med to ledninger, den blev drevet af 12v. Femtrådsdesignet har endestopkontakter til at kontrollere bevægelsen af ​​håndtaget. Jeg indså, at jeg først købte den forkerte, da jeg adskilte den, og det var for sent at skifte den. Håndtagets slag viste sig at være for kort til at skubbe låsen korrekt, derfor var det nødvendigt at ændre det lidt, nemlig at fjerne to gummiskiver, der forkorter aktuatorhåndtagets slag. For at gøre dette skulle kroppen saves sammen med en almindelig hacksav, fordi den anden vaskemaskine var inde. Den blå gaffatape til os, som altid, hjalp os senere med at samle den tilbage.

Til styring af aktuatormotoren blev der brugt L293D motordriveren, som kan modstå en spidsbelastning på op til 1200 mA, i vores tilfælde, når aktuatormotoren blev stoppet, steg spidsbelastningen til kun 600 mA.

Kontakter fra tastaturet, højttaleren og to lysdioder blev fjernet fra kontrolpanelet fra sikkerhedsalarmen. Fjernbetjeningen og hovedenheden skulle være forbundet med et parsnoet og RJ45-stik

Programmering.

Så da jeg ikke har haft nogen erfaring med Arduino-programmering før nu. Jeg udnyttede andres udvikling og artikler fra arduino.cc-webstedet. Hvem bekymrer sig, kan se på denne grimme kode :)

Foto og video

I denne lektion lærer vi, hvordan man gør enkelt system, som låser låsen op ved hjælp af en elektronisk nøgle (label).

I fremtiden kan du forfine og udvide funktionaliteten. Tilføj for eksempel funktionen "tilføj nye nøgler og fjern dem fra hukommelsen". I basistilfældet skal du overveje et simpelt eksempel, når en unik nøgleidentifikator er forudspecificeret i programkoden.

I denne tutorial skal vi bruge:

For at implementere projektet skal vi installere bibliotekerne:

2) Nu skal du tilslutte buzzeren, som giver et signal, hvis nøglen virkede, og låsen åbner, og det andet signal, når låsen lukkes.

Vi forbinder summeren i følgende rækkefølge:

Arduino Summer
5V VCC
GND GND
pind 5 IO

3) En servo vil blive brugt som oplåsningsmekanisme. En hvilken som helst servo kan vælges afhængigt af de dimensioner du har brug for og de kræfter som servoen skaber. Servoen har 3 stifter:

Mere tydeligt kan du se, hvordan vi koblede alle modulerne på billedet nedenfor:

Nu, hvis alt er forbundet, så kan du fortsætte til programmering.

Skitse:

#omfatte #omfatte #omfatte // "RFID" bibliotek. #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); usigneret lang uidDec, uidDecTemp; // for at gemme tagnummeret i decimalformat Servo servo; void setup() ( Serial.begin(9600); Serial.println("Venter på kort..."); SPI.begin(); // SPI initialisering / Init SPI bus. mfrc522.PCD_Init(); // initialisering MFRC522 / Init MFRC522 card.servo.attach(6); servo.write(0); // sæt servo til lukket tilstand ) void loop() ( // Søg efter en ny etiket if (! mfrc522.PICC_IsNewCardPresent()) ( return; ) // Etiketvalg if (! mfrc522.PICC_ReadCardSerial()) ( return; ) uidDec = 0; // Problem serienummer etiketter. for (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); // устанавливаем серву в закрытое сосотояние }

Lad os analysere skitsen mere detaljeret:

For at finde ud af kortets UID (etiketter), skal du skrive denne skitse til arduino, samle kredsløbet beskrevet ovenfor og åbne konsollen (Overvågning af den serielle port). Når du bringer mærket til RFID'en, vil et nummer blive vist i konsollen

Det resulterende UID skal indtastes i følgende linje:

Hvis (uidDec == 3763966293) // Sammenlign etikettens Uid, hvis den er lig med den angivne, så åbner servoen ventilen.

For hvert kort er denne identifikator unik og gentages ikke. Når du således fremviser et kort, hvis ID du har indstillet i programmet, åbner systemet adgang ved hjælp af en servo.

Video:

Fremskridtet står ikke stille, og "Smartlåse" dukker i stigende grad op på dørene til lejligheder, garager og huse.

En lignende lås åbnes, når du trykker på en knap på din smartphone. Heldigvis er smartphones og tablets allerede kommet ind i vores hverdag. I nogle tilfælde er "smartlåse" forbundet med " cloud-tjenester"som et Google-drev og åbne eksternt. Derudover gør denne mulighed det muligt at give adgang til at åbne døren for andre mennesker.

I dette projekt vil der blive implementeret en gør-det-selv-version af en smart lås på Arduino, som kan fjernstyres fra hvor som helst i verden.

Derudover har projektet tilføjet muligheden for at åbne låsen efter fingeraftryksgenkendelse. Til dette vil en fingeraftrykssensor blive integreret. Begge muligheder for at åbne døre vil fungere baseret på Adafruit IO-platformen.

En lås som denne kan være et godt første skridt i dit Smart Home-projekt.

Opsætning af fingeraftrykssensoren

For at arbejde med fingeraftrykssensoren er der et glimrende bibliotek til Arduino, som i høj grad forenkler processen med at opsætte sensoren. Dette projekt bruger en Arduino Uno. Adafruit CC3000-kortet bruges til at oprette forbindelse til internettet.

Lad os starte med at tilslutte strømmen:

  • Tilslut 5V-pinden fra Arduino-kortet til den røde strømskinne;
  • GND-stiften fra Arduino forbindes til den blå skinne på det loddefrie printkort.

Lad os gå videre til at tilslutte fingeraftrykssensoren:

  • Tilslut strømmen først. For at gøre dette er den røde ledning forbundet til +5 V-skinnen, og den sorte ledning til GND-skinnen;
  • Den hvide sensorledning forbindes til pin 4 på Arduino.
  • Den grønne ledning går til ben 3 på mikrocontrolleren.

Lad os nu tage et kig på CC3000-modulet:

  • Tilslut IRQ-pinden fra CC3000-kortet til pin 2 på Arduino.
  • VBAT - til pin 5.
  • CS - til pin 10.
  • Derefter skal du forbinde SPI-benene til Arduino: MOSI, MISO og CLK - til henholdsvis ben 11, 12 og 13.

Og endelig skal du sørge for strøm: Vin - til Arduino 5V (rød skinne på dit printkort), og GND til GND (blå skinne på breadboard).

Et billede af det færdigmonterede projekt er vist nedenfor:

Før du udvikler en skitse, der uploader data til Adafruit IO, skal du videregive dine fingeraftryksdata til sensoren. Ellers vil han ikke genkende dig i fremtiden ;). Vi anbefaler at kalibrere fingeraftrykssensoren ved hjælp af Arduino separat. Hvis du arbejder med denne sensor for første gang, anbefaler vi, at du gør dig bekendt med kalibreringsprocessen og detaljerede instruktioner til at arbejde med fingeraftrykssensoren.

Hvis du ikke allerede har gjort det, så tilmeld dig en Adafruit IO-konto.

Efter det kan vi gå til Næste skridt udvikling af en "smart lock" på Arduino: nemlig udvikling af en skitse, der vil overføre data til Adafruit IO. Da programmet er ret omfangsrigt, vil vi i artiklen fremhæve og kun overveje dets hoveddele, og så vil vi give et link til GitHub, hvor du kan downloade hele skitsen.

Skitsen begynder med at indlæse alle de nødvendige biblioteker:

#omfatte

#omfatte

#omfatte

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_CC3000.h"

#omfatte

#omfatte >

Derefter skal du rette skitsen lidt ved at indsætte parametrene for dit WiFi-netværk og angive SSID og adgangskode (adgangskode):

#define WLAN_SECURITY WLAN_SEC_WPA2>

Derudover skal du indtaste et navn og AIO-nøgle (nøgle) for at indtaste din Adafruit IO-konto:

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_name"

#define AIO_KEY "adafruit_io_key">

Følgende linjer er ansvarlige for interaktion og behandling af data fra fingeraftrykssensoren. Hvis sensoren blev aktiveret (fingeraftryk matchet), vil den være "1":

const char FINGERPRINT_FEED PROGMEM = AIO_USERNAME "/feeds/fingerprint";

Adafruit_MQTT_Publish fingerprint = Adafruit_MQTT_Publish(&mqtt, FINGERPRINT_FEED);

Derudover skal vi oprette en instans af SoftwareSerial-objektet til vores sensor:

SoftwareSerial mySerial(3, 4);

Derefter kan vi oprette et objekt til vores sensor:

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

Inde i skitsen angiver vi, hvilket fingerID der skal aktivere låsen i fremtiden. I dette eksempel bruges 0, hvilket svarer til ID'et for det første fingeraftryk, der bruges af sensoren:

int fingerID = 0;

Derefter initialiserer vi tælleren og forsinkelsen (forsinkelsen) i vores projekt. Som udgangspunkt ønsker vi, at låsen automatisk fungerer efter åbning. Dette eksempel bruger en forsinkelse på 10 sekunder, men du kan justere denne værdi, så den passer til dine behov:

int aktiveringstæller = 0;

int lastActivation = 0;

int aktiveringstid = 10 * 1000;

I hoveddelen af ​​setup()-funktionen initialiserer vi fingeraftrykssensoren og sikrer, at CC3000-chippen er forbundet til dit WiFi-netværk.

I hoveddelen af ​​loop()-funktionen forbinder vi til Adafruit IO. Følgende linje er ansvarlig for dette:

Efter at have oprettet forbindelse til Adafruit IO-platformen, tjekker vi det sidste fingeraftryk. Hvis det matcher, og låsen ikke er aktiveret, sender vi en "1" til Adafruit IO til behandling:

if (fingerprintID == fingerID && lockState == falsk) (

Serial.println(F("Adgang givet!"));

lockState=sand;

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

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

lastActivation = millis();

Hvis låsen er aktiveret inden for loop()-funktionen, og vi har nået forsinkelsesværdien angivet ovenfor, sender vi "0":

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

lockState=falsk;

if (! fingerprint.publish(state)) (

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

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

Du kan downloade den seneste version af koden på GitHub.

Det er tid til at teste vores projekt! Glem ikke at downloade og installere alle nødvendige Arduino-biblioteker!

Sørg for, at du har foretaget alle de nødvendige ændringer af skitsen, og upload den til din Arduino. Åbn derefter vinduet med den serielle skærm.

Når Arduino forbinder til WiFi-netværk, blinker fingeraftrykssensoren rødt. Sæt fingeren på sensoren. Det serielle skærmvindue skal vise ID-nummeret. Hvis det matcher, vises en besked, "OK!". Det betyder, at dataene er blevet sendt til Adafruit IO-serverne.

Skema og skitse til yderligere opsætning af låsen ved hjælp af eksemplet med en LED

Lad os nu beskæftige os med den del af projektet, der er direkte ansvarlig for at styre dørlås. At oprette forbindelse til trådløst netværk og aktivering/deaktivering af låsen, skal du bruge et ekstra Adafruit ESP8266-modul (ESP8266-modulet behøver ikke at være fra Adafruit). Eksemplet nedenfor viser dig, hvor nemt det er at kommunikere mellem to platforme (Arduino og ESP8266) ved hjælp af Adafruit IO.

I dette afsnit vil vi ikke arbejde direkte med låsen. I stedet vil vi blot forbinde LED'en til stiften, hvor låsen skal tilsluttes senere. Dette vil gøre det muligt at teste vores kode uden at dykke ned i detaljerne i låsedesignet.

Kredsløbet er ret simpelt: Installer først ESP8266 på brødbrættet. Installer derefter LED'en. Glem ikke, at LED'ens lange (positive) ben er forbundet gennem en modstand. Det andet ben af ​​modstanden er forbundet til ben 5 på ESP8266-modulet. Den anden (katode) LED er forbundet til GND-stiften på ESP8266.

Fuldt ud samlet kredsløb vist på billedet nedenfor.


Lad os nu tage et kig på den skitse, vi bruger til dette projekt. Igen er koden ret stor og kompleks, så vi vil kun dække hoveddelene af den:

Vi starter med at inkludere de nødvendige biblioteker:

#omfatte

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_Client.h"

Konfigurer WiFi-indstillinger:

#define WLAN_SSID "dit_wifi_ssid"

#define WLAN_PASS "dit_wifi_adgangskode"

#define WLAN_SECURITY WLAN_SEC_WPA2

Vi konfigurerer også Adafruit IO-parametrene. Samme som i forrige afsnit:

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_username"

#define AIO_KEY "adafruit_io_key"

Vi angiver, hvilken pin vi tilsluttede LED'en (i fremtiden vil det være vores lås eller relæ):

int relayPin = 5;

Interaktion med fingeraftrykssensoren, som i forrige afsnit:

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

Adafruit_MQTT_Subscribe lock = Adafruit_MQTT_Subscribe(&mqtt, LOCK_FEED);

I hoveddelen af ​​setup()-funktionen angiver vi, at den pin, som LED'en er forbundet til, skal fungere i OUTPUT-tilstand:

pinMode(relayPin, OUTPUT);

Indenfor loop()-løkken tjekker vi først, om vi har oprettet forbindelse til Adafruit IO:

Derefter tjekker vi, hvilket signal der kommer. Hvis "1" sendes, aktiverer vi den pin, vi tidligere erklærede, som vores LED er forbundet til. Hvis vi modtog "0", sætter vi kontakten i tilstanden "lav":

Adafruit_MQTT_Subscribe *abonnement;

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

if (abonnement == &lås) (

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

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

// Gem kommandoen som strengdata

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

if (kommando == "0") (

digitalWrite(relayPin, LOW);

if (kommando == "1") (

digitalWrite(relayPin, HIGH);

At finde nyeste version Du kan tjekke skitsen på GitHub.

Det er tid til at teste vores projekt. Glem ikke at downloade alle de nødvendige biblioteker til din Arduino og kontrollere, om du har lavet de korrekte ændringer af skitsen.

En simpel USB-FTDI-konverter kan bruges til at programmere ESP8266-chippen.

Upload skitsen til Arduino og åbn vinduet med den serielle skærm. På dette tidspunkt har vi lige tjekket, om vi var i stand til at oprette forbindelse til Adafruit IO: vi vil se nærmere på den tilgængelige funktionalitet.

Test af projektet

Lad os nu begynde at teste! Gå til brugermenuen på din Adafruit IO i menuen Feeds. Tjek, om kanaler til fingeraftryk og lås er oprettet eller ej (på udskriftsskærmen nedenfor er disse fingeraftryks- og låselinjer):


Hvis de ikke eksisterer, bliver du nødt til at oprette dem manuelt.

Nu skal vi sikre dataudveksling mellem fingeraftryk og låsekanaler. Låsekanalen skal indstilles til "1", når fingeraftrykskanalen er indstillet til "1" og omvendt.

For at gøre dette bruger vi et meget kraftfuldt Adafruit IO-værktøj: triggere. Triggere er i bund og grund betingelser, som du kan anvende på konfigurerede kanaler. Det vil sige, at de kan bruges til at forbinde to kanaler.

Opret en ny reaktiv trigger fra Triggers sektionen i Adafruit IO. Dette giver mulighed for at udveksle data mellem fingeraftrykssensorens kanaler og låsen:


Sådan skal det se ud, når begge triggere er konfigureret:

Alle! Nu kan vi virkelig teste vores projekt! Vi sætter fingeren på sensoren og ser, hvordan Arduino begyndte at blinke med lysdioden, som svarer til dataoverførslen. Derefter skulle LED'en på ESP8266-modulet begynde at blinke. Det betyder, at han begyndte at modtage data gennem MQTT. LED'en på printkortet bør også tænde på dette tidspunkt.

Efter den forsinkelse, du har indstillet i skitsen (standard er 10 sekunder), slukker LED'en. Tillykke! Du kan styre LED'en med dit fingeraftryk fra hvor som helst i verden!

Opsætning af elektronisk lås

Vi er nået til den sidste del af projektet: direkte forbindelse og kontrol elektronisk lås ved hjælp af Arduino og fingeraftrykssensor. Projektet er ikke let, du kan bruge alle kilderne i den form, som de er præsenteret ovenfor, men i stedet for en LED skal du tilslutte et relæ.

For at tilslutte låsen direkte skal du bruge yderligere komponenter: en 12 V strømforsyning, et strømstik, en transistor (i dette eksempel en IRLB8721PbF MOSFET bruges, men en anden, såsom en TIP102 bipolær transistor, kan bruges. Hvis du bruger en bipolær transistor, skal du tilføje en modstand.

Vist nedenfor kredsløbsdiagram tilslutning af alle komponenter til ESP8266-modulet:


Bemærk, at hvis du bruger en MOSFET, behøver du ikke en modstand mellem ESP8266 pin 5 og transistoren.

Det færdigmonterede projekt er vist på billedet nedenfor:


Tænd for ESP8266-modulet ved hjælp af FTDI-modulet og tilslut 12V-strømforsyningen til stikket. Hvis du brugte stifterne anbefalet ovenfor til tilslutning, behøver du ikke ændre noget i skitsen.

Nu kan du sætte fingeren på sensoren: Låsen skal fungere som svar på dit fingeraftryk. Videoen nedenfor viser det automatiske smartlås-projekt i aktion:

Videreudvikling af Smart Lock-projektet

I vores projekt udgivet fjernbetjening dørlås med fingeraftryk.

Du er velkommen til at eksperimentere, ændre skitsen og seletøjet. Du kan for eksempel udskifte døren elektronisk lås på et relæ for at styre styrken af ​​din 3D-printer, arm eller quadcopter...

Du kan udvikle din smart hus". For eksempel fjernaktivere kunstvandingssystemet på Arduino eller tænde lyset i rummet ... Glem ikke, at du samtidigt kan aktivere et næsten ubegrænset antal enheder ved hjælp af Adafruit IO.

Efterlad dine kommentarer, spørgsmål og del personlig erfaring under. I diskussionen fødes ofte nye ideer og projekter!

Dagens vejledning handler om, hvordan man bruger en RFID-læser med Arduino til at skabe et simpelt låsesystem, med enkle ord- RFID-lås.

RFID (Eng. Radio Frequency IDentification, radio frequency identification) er en metode til automatisk identifikation af objekter, hvor data lagret i såkaldte transpondere, eller RFID-tags, læses eller skrives ved hjælp af radiosignaler. Ethvert RFID-system består af en læser (læser, læser eller interrogator) og en transponder (alias RFID-tag, nogle gange bruges udtrykket RFID-tag også).

Selvstudiet vil bruge et RFID-tag med en Arduino. Enheden læser den unikke identifikator (UID) for hvert RFID-tag, som vi placerer ved siden af ​​læseren og viser det på OLED-skærmen. Hvis taggens UID er lig med den foruddefinerede værdi, der er gemt i Arduino-hukommelsen, vil vi se meddelelsen "Unlocked" på displayet. Hvis den unikke identifikator ikke er lig med den foruddefinerede værdi, vises meddelelsen "Ulåst" ikke - se billedet nedenfor.

Slottet er lukket

Slottet er åbent

Detaljer nødvendige for at oprette dette projekt:

  • RFID-læser RC522
  • OLED skærm
  • Brødbræt
  • ledninger

Yderligere detaljer:

  • Batteri (powerbank)

De samlede omkostninger for projektkomponenterne var omkring $15.

Trin 2: RFID-læser RC522

Hvert RFID-tag har en lille chip (hvidt kort på billedet). Hvis du peger en lommelygte mod dette RFID-kort, kan du se en lille chip og en spole, der omgiver det. Denne chip har ikke et batteri til at generere strøm. Den modtager strøm fra læseren trådløst ved hjælp af denne store spole. Det er muligt at læse et RFID-kort som dette fra op til 20 mm afstand.

Den samme chip findes i RFID-nøglebrikker.

Hvert RFID-tag har et unikt nummer, der identificerer det. Dette er den UID, der vises på OLED-skærmen. Med undtagelse af denne UID kan hvert tag gemme data. Denne type kort kan gemme op til 1.000 data. Imponerende, ikke? Denne funktion vil ikke blive brugt i dag. I dag er alt, der er af interesse, identifikation af et bestemt kort ved dets UID. RFID-læseren og disse to RFID-kort koster omkring $4.

Trin 3 OLED-skærm

Selvstudiet bruger en 0,96" 128x64 I2C OLED-skærm.

Dette er en meget god skærm at bruge med Arduino. Det er en OLED-skærm, og det betyder, at den har et lavt strømforbrug. Strømforbruget på denne skærm er omkring 10-20mA, og det afhænger af antallet af pixels.

Skærmen har en opløsning på 128 x 64 pixels og er lille i størrelse. Der er to visningsmuligheder. En af dem er monokrom, og den anden, som den, der blev brugt i vejledningen, kan vise to farver: gul og blå. Den øverste del af skærmen kan kun være gul og den nederste blå.

Denne OLED-skærm er meget lysstærk og har et fantastisk og meget flot bibliotek, som Adafruit har udviklet til denne skærm. Ud over dette bruger skærmen en I2C-grænseflade, så det er utrolig nemt at oprette forbindelse til Arduino.

Du behøver kun at forbinde to ledninger undtagen Vcc og GND. Hvis du er ny til Arduino og ønsker at bruge en billig og enkel skærm i dit projekt, så start her.

Trin 4: Sæt alle delene sammen

Det skete bare sådan, at vi på arbejdet besluttede at installere en kombinationslås på vores dør, fordi vi hele tiden løber ind, løber vi ud af kontoret, hvor døren konstant skal være lukket i fravær af indbyggere. Nøgler er ofte glemt indeni. Generelt besluttede vi, at en kombinationslås er en god udvej.

Efter at have rodet gennem kinesiske loppemarkeder og ebay, fandt jeg ikke noget billigt og mere eller mindre seriøst og besluttede at lave det selv. Jeg vil med det samme tage forbehold for, at Arduino-platformen blev valgt for dens enkelhed, da der slet ikke var nogen erfaring med mikrocontrollere.

Ide

På døren, på ydersiden af ​​døren, skal der være et tastatur, hvorpå adgangskoden indtastes, og resten af ​​strukturen er fastgjort på indersiden. En reed-kontakt bruges til at kontrollere den fuldstændige lukning af døren. Når en person forlader kontoret, trykker en person på "*" på tastaturet, og uden at vente på, at døren lukker, går dørlukkeren i gang, når døren er helt lukket, lukkes reed-kontakten, og låsen lukkes. Døren åbnes ved at indtaste en 4-cifret adgangskode og trykke på "#".

tilbehør

Arduino UNO = $18
Arduino protoskjold + brødbræt = $6
L293D = $1
Bundt af ledninger 30 stk til bredboard = $4
2 RJ45-stik = $4
2 RJ45 stik = $0,5
centrallåsaktuator = 250 rubler.
Reed switch = revet gratis af det gamle vindue.
Espagnolet metal gigantiske størrelser = gratis
Etui fra gammelt D-LINK nav lavet af 1,5 mm jern = fri
Strømforsyning fra samme D-LINK hub til 12 og 5v = også gratis
En flok skruer og møtrikker til at fastgøre alle disse ting til sagen = 100 rubler.
Betjeningspanelet fra sikkerhedsalarmsystemet = gratis.

I alt:$33,5 og 350 rubler.

Ikke så lidt, siger du, og du vil helt sikkert have ret, men du skal betale for fornøjelsen! Og det er altid rart at samle noget med egne hænder. Derudover kan designet reduceres kraftigt i pris, hvis du bruger en bar MK uden en Arduino.

Forberedelse af montage

Jeg vil gerne sige et par ord om købet af et nøgleelement i aktuatordesignet. Hos en lokal autoforretning tilbød de mig to typer aktuatorer: "med to ledninger og med fem." Ifølge ekspedienten var de nøjagtig ens, og forskellen i antallet af ledninger betød absolut ingenting. Men som det viste sig senere, er dette ikke tilfældet! Jeg valgte en enhed med to ledninger, den blev drevet af 12v. Femtrådsdesignet har endestopkontakter til at kontrollere bevægelsen af ​​håndtaget. Jeg indså, at jeg først købte den forkerte, da jeg adskilte den, og det var for sent at skifte den. Håndtagets slag viste sig at være for kort til at skubbe låsen korrekt, derfor var det nødvendigt at ændre det lidt, nemlig at fjerne to gummiskiver, der forkorter aktuatorhåndtagets slag. For at gøre dette skulle kroppen saves sammen med en almindelig hacksav, fordi den anden skive var inde. Den blå gaffatape til os, som altid, hjalp os senere med at samle den tilbage.
Til styring af aktuatormotoren blev der brugt L293D motordriveren, som kan modstå en spidsbelastning på op til 1200 mA, i vores tilfælde, når aktuatormotoren blev stoppet, steg spidsbelastningen til kun 600 mA.
Kontakter fra tastaturet, højttaleren og to lysdioder blev fjernet fra kontrolpanelet fra sikkerhedsalarmen. Fjernbetjeningen og hovedenheden skulle være forbundet med et parsnoet og RJ45-stik

Programmering.

Så da jeg ikke har haft nogen erfaring med Arduino-programmering før nu. Jeg udnyttede andres udvikling og artikler fra arduino.cc-webstedet. Hvem bekymrer sig, kan se på denne grimme kode :)

Foto og video



Arduino og aktuator


Strømforsyning


Tastatur


Espagnolet (forbundet til aktuatoren med en metalnål, og på hvilken varmekrympe er sat på for skønheden)

Video af enhedens driftproces: