Hvordan lage en kombinasjonslås på arduino. Arduino kombinasjonslås

DIY Arduino kodelås


Bakgrunn

Det skjedde at vi bestemte oss for å installere en kombinasjonslås på døren vår på jobben, fordi vi hele tiden løper inn - vi løper ut av kontoret, døren som må lukkes konstant i fravær av innbyggerne. Nøkler er ofte glemt inne. Generelt har vi bestemt at kombinasjonslåsen er en flott løsning.

Etter å ha rotet gjennom kinesiske loppemarkeder og ebay fant jeg ikke noe billig og mer eller mindre seriøst og bestemte meg for å lage det selv. Jeg tar med en gang forbehold om at Arduino-plattformen ble valgt for sin enkelhet, siden det ikke var noen erfaring med å kommunisere med mikrokontrollere i det hele tatt.

På døra med utenfor døren skal ha et tastatur som passordet skrives inn på, med innsiden resten av strukturen er fast. En reed-bryter brukes til å kontrollere fullstendig lukking av døren. Når han forlater kontoret, trykker en person på "*" på tastaturet, og uten å vente på at døren lukkes ved nærmere, fortsetter han sin virksomhet, når døren er helt lukket, lukkes reed-bryteren og låsen lukkes. Døren åpnes ved å taste inn et 4-sifret passord og trykke "#".

Komponenter

Arduino UNO = $ 18
Arduino protoskjold + brødbrett = $ 6
L293D = $ 1
30 stk flettetrådbunt = $ 4
2 RJ45-kontakter = $ 4
2 RJ45-plugger = $ 0,5
aktuator Sentrallås= 250 RUB
Sivbryter = revet løs fra det gamle vinduet.
Metalllås av gigantisk størrelse = gratis
Gammelt D-LINK nav laget av 1,5 mm jern = gratis
En strømforsyning fra samme D-LINK-hub for 12 og 5v = er også gratis
En haug med skruer og muttere for å feste alle disse tingene til kroppen = 100 rubler.
Kontrollpanel fra innbruddsalarm= gratis.

Totalt: $ 33,5 og 350 rubler.

Ikke så lite, sier du, og du vil definitivt ha rett, men du må betale for gleden! Og det er alltid hyggelig å sette sammen noe med egne hender. I tillegg kan designet reduseres kraftig hvis du bruker en bar MC uten Arduino.

Forbereder for montering

Jeg vil gjerne si noen ord om kjøpet av et nøkkelelement i aktuatordesignet. I en lokal bilbutikk ble jeg tilbudt to typer aktuatorer: "med to ledninger og med fem." Ifølge selgeren var de helt like og forskjellen i antall ledninger betydde absolutt ingenting. Men som det viste seg senere, er dette ikke tilfelle! Jeg valgte en enhet med to ledninger, den ble drevet av 12V. 5-trådsdesignet inkluderer grensebrytere for å kontrollere bevegelsen til armen. Jeg innså at jeg kjøpte feil først da jeg tok den fra hverandre og det var for sent å bytte den. Spakens vandring var for kort til å skyve låsen skikkelig, derfor var det nødvendig å modifisere den litt, nemlig å fjerne to gummiskiver som forkorter aktuatorspakens vandring. For å gjøre dette måtte kroppen skjæres sammen vanlig baufil fordi den andre vaskemaskinen var inne. Den blå elektriske tapen, som alltid, hjalp oss i fremtiden når vi satte den tilbake.

For å kontrollere motoren til aktuatoren ble L293D-motordriveren brukt, som tåler en toppbelastning på opptil 1200 mA, i vårt tilfelle, når motoren til aktuatoren ble stoppet, steg toppbelastningen til bare 600 mA.

Fra kontrollpanelet fra innbruddsalarmen ble kontakter fra tastatur, høyttaler og to lysdioder fjernet. Fjernkontrollen og hovedenheten skulle være koblet sammen med tvunnet par og RJ45-kontakter.

Programmering.

Så jeg har ikke hatt noen erfaring med Arduino-programmering før nå. Jeg brukte andres utvikling og artikler fra arduino.cc-siden. Hvem bryr seg om denne stygge koden :)

Foto og video

I denne leksjonen vil vi lære hvordan du gjør enkelt system, som vil låse opp låsen ved hjelp av en elektronisk nøkkel (Tag).

I fremtiden kan du endre og utvide funksjonaliteten. Legg for eksempel til funksjonen "legg til nye nøkler og fjern dem fra minnet". I det grunnleggende tilfellet, vurder et enkelt eksempel, når en unik nøkkelidentifikator er forhåndsinnstilt i programkoden.

I denne opplæringen trenger vi:

For å implementere prosjektet må vi installere bibliotekene:

2) Nå må du koble til en Buzzer, som vil gi et signal hvis nøkkelen utløses og låsen åpnes, og et andre signal når låsen er lukket.

Vi kobler summeren i følgende sekvens:

Arduino Buzzer
5V VCC
GND GND
pinne 5 IO

3) Servoen vil bli brukt som en opplåsingsmekanisme. En hvilken som helst servo kan velges, avhengig av dimensjonene og kreftene som kreves av deg, som servoen lager. Servoen har 3 pinner:

Mer tydelig kan du se hvordan vi koblet sammen alle modulene på bildet nedenfor:

Nå, hvis alt er tilkoblet, kan du fortsette til programmering.

Skisse:

#inkludere #inkludere #inkludere // "RFID"-bibliotek. #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); usignert lang uidDec, uidDecTemp; // for å lagre etikettnummeret i desimalformat Servo servo; void oppsett () (Serial.begin (9600); Serial.println ("Venter på kort ..."); SPI.begin (); // initialisering SPI / Init SPI bus.mfrc522.PCD_Init (); // initialisering MFRC522 / Init MFRC522 card.servo.attach (6); servo.write (0); // sett servoen til lukket) void loop () (// Finn en ny etikett hvis (! Mfrc522.PICC_IsNewCardPresent ()) (return) ; ) // Velg en etikett hvis (! 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); // устанавливаем серву в закрытое сосотояние }

La oss se nærmere på skissen:

For å finne ut UID-en til kortet (Tags), må du skrive denne skissen til arduino, sette sammen kretsen beskrevet ovenfor og åpne konsollen (Seriell portovervåking). Når du tar med taggen til RFID, vil et nummer vises i konsollen

Den resulterende UID-en må angis på følgende linje:

If (uidDec == 3763966293) // Sammenlign Uid på etiketten, hvis den er lik den gitte åpner servoen ventilen.

Hvert kort har en unik identifikator og gjentar seg ikke. Dermed, når du tar med kortet, identifikatoren som du har angitt i programmet, vil systemet åpne tilgang ved hjelp av en servodrive.

Video:

Fremgangen står ikke stille og «Smartlåser» dukker i økende grad opp på dørene til leiligheter, garasjer og hus.

En lignende lås åpnes når du trykker på en knapp på en smarttelefon. Heldigvis har smarttelefoner og nettbrett allerede kommet inn i hverdagen vår. I noen tilfeller kobles "smartlåser" til " skytjenester"som en google drive og åpne eksternt. I tillegg gjør dette alternativet det mulig å gi tilgang til å åpne døren for andre mennesker.

I dette prosjektet skal en DIY-versjon av smartlåsen på Arduino implementeres, som kan fjernstyres fra hvor som helst på jorden.

I tillegg la prosjektet til muligheten til å åpne låsen etter fingeravtrykkgjenkjenning. For dette vil en fingeravtrykksensor bli integrert. Begge døråpningsalternativene vil bli drevet av Adafruit IO-plattformen.

En lås som denne kan være et flott første skritt i ditt Smart Home-prosjekt.

Oppsett av fingeravtrykksensor

For å jobbe med fingeravtrykksensoren er det et utmerket bibliotek for Arduino som gjør prosessen med å sette opp sensoren mye enklere. Dette prosjektet bruker Arduino Uno. Et Adafruit CC3000-kort brukes til å koble til Internett.

La oss starte med å koble til strømmen:

  • Koble 5V-pinnen fra Arduino-kortet til den røde strømskinnen;
  • GND-pinnen fra Arduino kobles til den blå skinnen på det loddeløse kretskortet.

La oss gå videre til å koble til fingeravtrykksensoren:

  • Koble til strømmen først. For å gjøre dette er den røde ledningen koblet til +5 V-skinnen, og den svarte ledningen til GND-skinnen;
  • Den hvite ledningen til sensoren kobles til pinne 4 på Arduino.
  • Den grønne ledningen går til pinne 3 på mikrokontrolleren.

La oss nå takle CC3000-modulen:

  • IRQ-pinnen fra CC3000-kortet er koblet til pinne 2 på Arduino.
  • VBAT - til pinne 5.
  • CS - til pinne 10.
  • Etter det må du koble SPI-pinnene til Arduinoen: MOSI, MISO og CLK - til henholdsvis pinnene 11, 12 og 13.

Til slutt må du gi strøm: Vin til Arduino 5V (rød skinne på kretskortet ditt), og GND til GND (blå skinne på breadboard).

Et bilde av det ferdigmonterte prosjektet er vist nedenfor:

Før du utvikler en skisse som skal laste opp data til Adafruit IO, må du overføre fingeravtrykkdataene dine til sensoren. Ellers vil han ikke kjenne deg igjen i fremtiden;). Vi anbefaler å kalibrere fingeravtrykksensoren ved å bruke Arduino separat. Hvis du arbeider med denne sensoren for første gang, anbefaler vi at du gjør deg kjent med kalibreringsprosessen og detaljerte instruksjoner for arbeid med fingeravtrykksensoren.

Hvis du ikke allerede har gjort det, så opprett en konto hos Adafruit IO.

Etter det kan vi gå til neste nivå utvikling av en "smart lås" på Arduino: nemlig utvikling av en skisse som vil overføre data til Adafruit IO. Siden programmet er ganske omfangsrikt, vil vi i artikkelen fremheve og vurdere bare hoveddelene, og deretter vil vi gi en lenke til GitHub, hvor du kan laste ned hele skissen.

Skissen begynner med å laste inn alle nødvendige biblioteker:

#inkludere

#inkludere

#inkludere

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_CC3000.h"

#inkludere

#inkludere >

Etter det må du korrigere skissen litt ved å sette inn parameterne til WiFi-nettverket ditt, spesifisere SSID og passord (passord):

#define WLAN_SECURITY WLAN_SEC_WPA2>

I tillegg må du skrive inn navnet ditt og AIO-nøkkelen (nøkkel) for å logge på Adafruit IO-kontoen din:

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_name"

#define AIO_KEY "adafruit_io_key">

Følgende linjer er ansvarlige for samhandling og behandling av data fra fingeravtrykksensoren. Hvis sensoren ble aktivert (fingeravtrykkstilpasset), vil det være "1":

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

Adafruit_MQTT_Publish fingeravtrykk = Adafruit_MQTT_Publish (& mqtt, FINGERPRINT_FEED);

I tillegg må vi lage en forekomst av SoftwareSerial-objektet for sensoren vår:

SoftwareSerial mySerial (3, 4);

Etter det kan vi lage et objekt for sensoren vår:

Adafruit_Fingerprint finger = Adafruit_Fingerprint (& mySerial);

Inne i skissen angir vi hvilken fingerID som skal aktivere låsen i fremtiden. Dette eksemplet bruker 0, som tilsvarer ID-en til det første fingeravtrykket som brukes av sensoren:

int fingerID = 0;

Etter det initialiserer vi telleren og forsinker prosjektet vårt. I utgangspunktet ønsker vi at låsen skal fungere automatisk etter åpning. I dette eksemplet brukes en forsinkelse på 10 sekunder, men du kan justere denne verdien for å passe dine behov:

int activationCounter = 0;

int lastActivation = 0;

int aktiveringstid = 10 * 1000;

I hoveddelen av oppsettfunksjonen () initialiserer vi fingeravtrykksensoren og kobler CC3000-brikken til WiFi-nettverket ditt.

Koble til Adafruit IO i hoveddelen av loop ()-funksjonen. Følgende linje er ansvarlig for dette:

Etter å ha koblet til Adafruit IO-plattformen, sjekker vi det siste fingeravtrykket. Hvis det stemmer, og låsen ikke er aktivert, sender vi "1" for behandling i Adafruit IO:

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

Serial.println (F ("Tilgang gitt!"));

lockState = sant;

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

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

lastActivation = millis ();

Hvis låsen er aktivert innenfor loop ()-funksjonen og vi har nådd forsinkelsesverdien som er angitt ovenfor, sender vi "0":

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

lockState = falsk;

if (! fingerprint.publish (state)) (

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

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

Du kan laste ned den nyeste versjonen av koden på GitHub.

Det er på tide å teste prosjektet vårt! Ikke glem å laste ned og installere alle de nødvendige Arduino-bibliotekene!

Pass på at du gjør alle nødvendige endringer i skissen og last den opp til din Arduino. Åpne deretter seriell monitorvinduet.

Når Arduino kobles til WiFi-nettverk, blinker fingeravtrykksensoren rødt. Plasser fingeren på sensoren. Seriell monitorvinduet skal vise ID-nummeret. Hvis det stemmer, vil meldingen "OK!" vises. Dette betyr at dataene er sendt til Adafruit IO-servere.

Diagram og skisse for videre konfigurasjon av låsen ved å bruke eksempelet på en LED

La oss nå ta for oss den delen av prosjektet som er direkte ansvarlig for å administrere dørlås... For å koble til trådløst nettverk og aktivere / deaktivere låsen, trenger du en ekstra Adafruit ESP8266-modul (ESP8266-modulen trenger ikke å være fra Adafruit). Ved å bruke eksemplet nedenfor kan du forstå hvor enkelt det er å utveksle data mellom to plattformer (Arduino og ESP8266) ved å bruke Adafruit IO.

I denne delen vil vi ikke jobbe direkte med låsen. I stedet vil vi ganske enkelt koble LED-en til pinnen som låsen skal kobles til senere. Dette vil gjøre det mulig å teste koden vår uten å gå dypt inn i utformingen av låsen.

Kretsen er ganske enkel: Installer først ESP8266 på brødbrettet. Installer deretter LED. Ikke glem at det lange (positive) benet på LED-en er koblet til gjennom en motstand. Den andre delen av motstanden kobles til pinne 5 på ESP8266-modulen. Den andre (katoden) av LED-en er koblet til GND-pinnen på ESP8266.

Fullt sammensatt krets vist på bildet nedenfor.


La oss nå ta en titt på skissen vi skal bruke for dette prosjektet. Igjen er koden ganske stor og kompleks, så vi vil bare dekke hoveddelene av den:

Vi starter med å koble til de nødvendige bibliotekene:

#inkludere

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_Client.h"

Konfigurering av WiFi-parametere:

#define WLAN_SSID "din_wifi_ssid"

#define WLAN_PASS "ditt_wifi_passord"

#define WLAN_SECURITY WLAN_SEC_WPA2

Vi konfigurerer også Adafruit IO-parametrene. Det samme som i forrige seksjon:

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_username"

#define AIO_KEY "adafruit_io_key"

Vi indikerer hvilken pinne vi koblet LED-en til (i fremtiden vil det være vår lås eller relé):

int relayPin = 5;

Interaksjonen med fingeravtrykksensoren er den samme som i forrige del:

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

Adafruit_MQTT_Subscribe lock = Adafruit_MQTT_Subscribe (& mqtt, LOCK_FEED);

I hoveddelen av oppsettfunksjonen () indikerer vi at pinnen som LED-en er koblet til skal fungere i OUTPUT-modus:

pinMode (relayPin, OUTPUT);

Innenfor loopen (), sjekker vi først om vi er koblet til Adafruit IO:

Etter det sjekker vi hvilket signal som mottas. Hvis "1" sendes, aktiverer vi kontakten som vi deklarerte tidligere, som LED-en vår er koblet til. Hvis vi mottar "0", overfører vi kontakten til "lav" tilstand:

Adafruit_MQTT_Subscribe * abonnement;

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

if (abonnement == & lås) (

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

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

// Lagre kommandoen til strengdata

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

if (kommando == "0") (

digitalWrite (relayPin, LOW);

if (kommando == "1") (

digitalWrite (relayPin, HIGH);

Finne siste versjon skisse du kan på GitHub.

Det er på tide å teste prosjektet vårt. Ikke glem å laste ned alle nødvendige biblioteker for din Arduino og sjekk om du har gjort de riktige endringene i skissen.

En enkel USB-FTDI-omformer kan brukes til å programmere ESP8266-brikken.

Last opp skissen til Arduino og åpne seriellskjermvinduet. På dette stadiet sjekket vi nettopp om vi var i stand til å koble til Adafruit IO: vi vil vurdere den tilgjengelige funksjonaliteten videre.

Tester prosjektet

La oss nå begynne å teste! Gå til brukermenyen til din Adafruit IO, under Feed-menyen. Sjekk om kanalene for fingeravtrykket og låsen er opprettet (på utskriftsskjermen under er disse fingeravtrykket og låselinjene):


Hvis de ikke er der, må du opprette det manuelt.

Nå må vi sikre utveksling av data mellom fingeravtrykk og låsekanaler. Låsekanalen må settes til "1" når fingeravtrykkkanalen er satt til "1" og omvendt.

For å gjøre dette bruker vi et veldig kraftig Adafruit IO-verktøy: triggere. Utløsere er i hovedsak forhold som du kan bruke på konfigurerte kanaler. Det vil si at de kan brukes til å koble sammen to kanaler.

Opprett en ny reaktiv trigger fra Triggers-delen av Adafruit IO. Dette vil gi muligheten til å utveksle data mellom fingeravtrykksensoren og låsekanalene:


Slik skal det se ut når begge utløsere er konfigurert:

Alt! Nå kan vi virkelig teste prosjektet vårt! Vi setter fingeren på sensoren og ser hvordan Arduino begynte å blinke LED-en som tilsvarer dataoverføringen. Etter det skal LED-en på ESP8266-modulen begynne å blinke. Dette betyr at han begynte å motta data gjennom MQTT. LED-en på kretskortet skal også slå seg på på dette tidspunktet.

Etter forsinkelsen du angir i skissen (standard er 10 sekunder), vil LED-en slå seg av. Gratulerer! Du kan kontrollere LED-en med fingeravtrykket ditt fra hvor som helst i verden!

Sette opp en elektronisk lås

Vi kom til siste del av prosjektet: direkte kobling og kontroll elektronisk lås med Arduino og fingeravtrykksensor. Prosjektet er ikke lett, du kan bruke alle kildene i formen de er presentert ovenfor, men i stedet for LED, koble til et relé.

For å koble til låsen direkte, trenger du tilleggskomponenter: en 12 V strømforsyning, en strømkontakt, en transistor (i dette eksemplet IRLB8721PbF MOSFET brukes, men en annen, for eksempel en bipolar transistor TIP102, kan brukes. Hvis du bruker en bipolar transistor, må du legge til en motstand.

Vist under elektrisk krets koble alle komponenter til ESP8266-modulen:


Merk at hvis du bruker en MOSFET-transistor, trenger du ikke en motstand mellom pin 5 på ESP8266 og transistoren.

Det ferdigmonterte prosjektet er vist på bildet nedenfor:


Strøm ESP8266-modulen ved hjelp av FTDI-modulen og koble 12V-strømforsyningen til kontakten. Hvis du brukte tilkoblingspinnene som er anbefalt ovenfor, trenger du ikke å endre noe i skissen.

Nå kan du sette fingeren på sensoren: låsen skal fungere og svare på fingeravtrykket ditt. Videoen nedenfor viser prosjektet til en automatisk "smart" lås i aksjon:

Videreutvikling av «Smart Lock»-prosjektet

I vårt prosjekt har vi gitt ut fjernkontroll dørlås ved hjelp av fingeravtrykket ditt.

Gjerne eksperimenter, modifiser skissen og selen. Du kan for eksempel bytte ut døren elektronisk lås på et relé for å kontrollere kraften til 3D-skriveren, manipulatoren eller quadcopteren ...

Du kan utvikle din " smart hus For eksempel fjernaktivere vanningssystemet på Arduino eller slå på lysene i rommet ... Og ikke glem at du samtidig kan aktivere et nesten ubegrenset antall enheter ved å bruke Adafruit IO.

Legg igjen kommentarer, spørsmål og del personlig erfaring under. Nye ideer og prosjekter fødes ofte i diskusjonen!

Dagens leksjon om hvordan du bruker en RFID-leser med en Arduino for å lage et enkelt blokkeringssystem. med enkle ord- RFID-lås.

RFID (English Radio Frequency IDentification) er en metode for automatisk identifikasjon av objekter, der data som er lagret i såkalte transpondere, eller RFID-brikker, leses eller skrives ved hjelp av radiosignaler. Ethvert RFID-system består av en leser (leser, leser eller interrogator) og en transponder (aka RFID-tag, noen ganger brukes også begrepet RFID-tag).

Denne opplæringen vil bruke en RFID-tag fra en Arduino. Enheten leser den unike identifikatoren (UID) til hver RFID-tag som vi plasserer ved siden av leseren og viser den på OLED-skjermen. Hvis UID-en til taggen er lik den forhåndsdefinerte verdien som er lagret i Arduino-minnet, vil vi se meldingen "Unlocked" på skjermen. Hvis den unike identifikatoren ikke er lik den forhåndsdefinerte verdien, vil ikke meldingen "Ulåst" vises - se bildet nedenfor.

Låsen er lukket

Låsen er åpen

Detaljer som kreves for å opprette dette prosjektet:

  • RFID-leser RC522
  • OLED-skjerm
  • Brødbord
  • Ledninger

Ekstra detaljer:

  • Batteri (powerbank)

Den totale kostnaden for prosjektkomponentene var omtrent $ 15.

Trinn 2: RFID-leser RC522

Hver RFID-brikke har en liten brikke (hvitt kort avbildet). Hvis du retter lommelykten mot dette RFID-kortet, kan du se en liten brikke og en spole som omgir det. Denne brikken har ikke batteri for å generere strøm. Den mottar strøm fra leseren trådløst ved hjelp av denne store spolen. Et RFID-kort som dette kan leses på opptil 20 mm avstand.

Den samme brikken finnes i taggene til RFID nøkkelbrikken.

Hver RFID-brikke har et unikt nummer som identifiserer den. Dette er UID-en som vises på OLED-skjermen. Med unntak av denne UID-en kan hver tag lagre data. Denne typen kort kan lagre opptil 1000 data. Imponerende, ikke sant? Denne funksjonen vil ikke bli brukt i dag. I dag er alt som interesserer identifiseringen av et bestemt kort ved hjelp av dets UID. Kostnaden for RFID-leseren og disse to RFID-kortene er rundt 4 dollar.

Trinn 3: OLED-skjerm

Denne opplæringen bruker en 0,96" 128x64 I2C OLED-skjerm.

Dette er en veldig god skjerm for bruk med Arduino. Det er en OLED-skjerm og det betyr at den har lavt strømforbruk. Strømforbruket til denne skjermen er omtrent 10-20mA og det avhenger av antall piksler.

Skjermen har en oppløsning på 128 x 64 piksler og er liten. Det er to visningsalternativer. En av dem er monokrom, og den andre, som den som brukes i opplæringen, kan vise to farger: gul og blå. Øverst på skjermen kan bare være gul og bunnen blå.

Denne OLED-skjermen er veldig lyssterk og har et flott og veldig fint bibliotek som Adafruit har utviklet for denne skjermen. I tillegg til dette bruker skjermen et I2C-grensesnitt, så det er utrolig enkelt å koble til Arduino.

Du trenger bare å koble til to ledninger, unntatt Vcc og GND. Hvis du er ny på Arduino og ønsker å bruke en rimelig og enkel skjerm i prosjektet ditt, start her.

Trinn 4: koble til alle detaljene

Det hendte bare at vi på jobb bestemte oss for å installere en kombinasjonslås på døren vår, fordi vi hele tiden løper inn - vi løper ut av kontoret, døren som må lukkes konstant i fravær av innbyggerne. Nøkler er ofte glemt inne. Generelt har vi bestemt at kombinasjonslåsen er en utmerket løsning.

Etter å ha rotet gjennom kinesiske loppemarkeder og ebay fant jeg ikke noe billig og mer eller mindre seriøst og bestemte meg for å lage det selv. Jeg tar med en gang forbehold om at Arduino-plattformen ble valgt for sin enkelhet, siden det ikke var noen erfaring med å kommunisere med mikrokontrollere i det hele tatt.

Idé

På døren, på utsiden av døren, skal det være et tastatur som passordet skrives inn på, på innsiden er resten av strukturen festet. En reed-bryter brukes til å kontrollere fullstendig lukking av døren. Når en person forlater kontoret, trykker en person på "*" på tastaturet, og uten å vente på at døren lukkes av nærmere, fortsetter han sin virksomhet, når døren er helt lukket, lukkes reed-bryteren og låsen lukkes. . Døren åpnes ved å taste inn et 4-sifret passord og trykke "#".

Komponenter

Arduino UNO = $ 18
Arduino protoskjold + brødbrett = $ 6
L293D = $ 1
30 stk flettetrådbunt = $ 4
2 RJ45-kontakter = $ 4
2 RJ45-plugger = $ 0,5
sentrallåsaktuator = 250 rubler.
Sivbryter = revet løs fra det gamle vinduet.
Metalllås av gigantisk størrelse = gratis
Gammelt D-LINK nav laget av 1,5 mm jern = gratis
En strømforsyning fra samme D-LINK-hub for 12 og 5v = er også gratis
En haug med skruer og muttere for å feste alle disse tingene til kroppen = 100 rubler.
Alarmsentral = ledig.

Total:$ 33,5 og 350 rubler.

Ikke så lite, sier du, og du vil definitivt ha rett, men du må betale for gleden! Og det er alltid hyggelig å sette sammen noe med egne hender. I tillegg kan designet reduseres kraftig hvis du bruker en bar MC uten Arduino.

Forbereder for montering

Jeg vil gjerne si noen ord om kjøpet av et nøkkelelement i aktuatordesignet. I en lokal bilbutikk ble jeg tilbudt to typer aktuatorer: "med to ledninger og med fem." Ifølge selgeren var de helt like og forskjellen i antall ledninger betydde absolutt ingenting. Men som det viste seg senere, er dette ikke tilfelle! Jeg valgte en enhet med to ledninger, den ble drevet av 12V. 5-trådsdesignet inkluderer grensebrytere for å kontrollere bevegelsen til armen. Jeg innså at jeg kjøpte feil først da jeg tok den fra hverandre og det var for sent å bytte den. Spakens vandring var for kort til å skyve låsen skikkelig, derfor var det nødvendig å modifisere den litt, nemlig å fjerne to gummiskiver som forkorter aktuatorspakens vandring. For å gjøre dette måtte kroppen kuttes sammen med en vanlig baufil, fordi den andre skiven var inne. Den blå elektriske tapen, som alltid, hjalp oss i fremtiden når vi satte den tilbake.
For å kontrollere motoren til aktuatoren ble L293D-motordriveren brukt, som tåler en toppbelastning på opptil 1200 mA, i vårt tilfelle, når motoren til aktuatoren ble stoppet, steg toppbelastningen til bare 600 mA.
Fra kontrollpanelet fra innbruddsalarmen ble kontakter fra tastatur, høyttaler og to lysdioder fjernet. Fjernkontrollen og hovedenheten skulle være koblet sammen med tvunnet par og RJ45-kontakter.

Programmering.

Så jeg har ikke hatt noen erfaring med Arduino-programmering før nå. Jeg brukte andres utvikling og artikler fra arduino.cc-siden. Hvem bryr seg om denne stygge koden :)

Foto og video



Arduino og aktuator


Strømforsyning


Tastatur


Espagnolett (koblet til aktuatoren med en metalleiker og på hvilken en varmekrymping er slitt for skjønnhet)

Video av enhetens operasjonsprosess: