Мазмуну:

Arduino RFID Lock үйрөткүчү: 6 кадам (сүрөттөр менен)
Arduino RFID Lock үйрөткүчү: 6 кадам (сүрөттөр менен)
Anonim
Image
Image
Arduino RFID Lock үйрөткүчү
Arduino RFID Lock үйрөткүчү
Arduino RFID Lock үйрөткүчү
Arduino RFID Lock үйрөткүчү

Урматтуу достор, дагы бир Инструкцияга кош келиңиздер. Бул Educ8s.tvден Ник жана бүгүн биз жөнөкөй кулпу тутумун куруу үчүн бул RFID Readerди Arduino менен кантип колдонууну үйрөнөбүз.

Биринчи жолу, биз Arduino менен RFID тегдерин колдонгону жатабыз. Мен окурманга жакын жайгаштырган ар бир RFID тегинин уникалдуу идентификаторун (UID) окуй турган жана аны OLED дисплейинде көрсөтүүчү жөнөкөй проект түздүм. Эгерде теги UID Arduino эсинде сакталган алдын ала аныкталган мааниге барабар болсо, анда дисплейде "Кулпусу ачылган" билдирүүсүн көрөбүз. Эгерде карттын уникалдуу идентификатору алдын ала аныкталган мааниге барабар болбосо, Кулпуну ачуу билдирүүсү көрүнбөйт. Салкын, туурабы?

Жаза турган көп нерсе бар, андыктан баштайлы!

1 -кадам: Бардык бөлүктөрдү алыңыз

Бардык бөлүктөрдү алыңыз
Бардык бөлүктөрдү алыңыз

Бул долбоорду куруу үчүн керектүү бөлүктөр булар:

  • An Arduino Uno ▶
  • RFID Reader ▶
  • OLED дисплей ▶
  • Чакан нан ▶
  • Кээ бир зымдар ▶

Кошумча бөлүктөр:

Powerbank ▶

Долбоордун жалпы баасы 15 доллардын тегерегинде.

2 -кадам: RC522 RFID Reader

RC522 RFID окурманы
RC522 RFID окурманы
RC522 RFID окурманы
RC522 RFID окурманы
RC522 RFID окурманы
RC522 RFID окурманы
RC522 RFID окурманы
RC522 RFID окурманы

Ар бир RFID тегинин ичинде кичинекей чип бар. Эгерде мен бул RFID картасынын астына фонарик койсом, анда сиз аны курчап турган кичинекей чипти жана катушканы көрө аласыз. Бул чиптин кубатын алуу үчүн батарейкасы жок. Бул чоң катушканы зымсыз колдонуп, окурмандан, бул түзмөктөн кубат алат. Окурман RFID картасын ушул сыяктуу 20мм чейин окуй алат!

Ошол эле чип ачкычтын RFID тегдеринде да бар.

Ар бир RFID тегинин аны аныктоочу уникалдуу номери бар. Бул OLED дисплейинде көрсөтө турган UID. Бул UIDден башка, ар бир тэг маалыматтарды сактай алат. Мындай карталарда биз 1Kга чейин маалыматты сактай алабыз! Таасирдүү, туурабы? Биз бул функцияны бүгүн колдонбойбуз, бирок келечекте көрсөтмөдө колдонобуз. Бүгүн бизди кызыктырган нерсе - бул UID аркылуу белгилүү бир картаны аныктоо. RFID окурмандын баасы жана бул эки RFID картасы 4 доллардын тегерегинде.

3 -кадам: OLED дисплей

Image
Image
Бардык бөлүктөрдү туташтыруу
Бардык бөлүктөрдү туташтыруу

Бул Arduino менен колдонуу үчүн абдан сонун дисплей. Бул OLED дисплей жана бул аз энергия керектөөнү билдирет. Бул дисплейдин энергия керектөөсү болжол менен 10-20 мА жана ал канча пикселдин күйгөнүнө жараша болот.

Дисплейдин разрешение 128 × 64 пиксел жана кичинекей. Дисплейдин эки түрү бар. Алардын бири монохромдуу, экинчиси мен колдонгон сыяктуу эки түстү көрсөтө алат, сары жана көк. Экрандын жогорку бөлүгү сары, төмөнкү бөлүгү көк түстү гана көрсөтө алат.

Бул OLED дисплей абдан жарык жана китепкананын чоң колдоосуна ээ. Adafruit бул дисплей үчүн абдан жакшы китепкананы иштеп чыкты. Мындан тышкары, дисплей I2C интерфейсин колдонот, ошондуктан Arduino менен туташуу абдан оңой. Vcc жана GNDден башка эки зымды гана туташтыруу керек. Эгерде сиз Arduinoдо жаңы болсоңуз жана проектиңизде колдонуу үчүн арзан жана колдонууга оңой дисплей кааласаңыз, дисплейден баштаңыз. Бул Arduino долбооруңузга дисплей кошуунун эң оңой жолу. Мен ушул Нускамага тиркелген бул дисплейди кантип колдонуу боюнча деталдуу окуу куралын даярдадым.

4 -кадам: Бардык бөлүктөрдү туташтырыңыз

Бардык бөлүктөрдү туташтыруу
Бардык бөлүктөрдү туташтыруу
Бардык бөлүктөрдү туташтыруу
Бардык бөлүктөрдү туташтыруу
Бардык бөлүктөрдү туташтыруу
Бардык бөлүктөрдү туташтыруу

Arduino Uno тактасы менен байланыш абдан жөнөкөй. Адегенде, окурмандын да, дисплейдин да күчүн байланыштыралы.

Абайлаңыз, RFID окурманы Arduino Uno 3.3V чыгарылышына туташышы керек, болбосо ал жок кылынат. Дисплей да 3.3Vде иштей ала тургандыктан, Vccти эки модулдан нан тактасына оң темир жолго туташтырабыз. Бул темир жол Arduino Uno 3.3V чыгуусуна туташкан. Андан кийин, биз GNDлердин экөөнү тең GND темир жолуна туташтырабыз. Андан кийин биз нан тактасынын GND темир жолун Arduino GNDге туташтырабыз.

OLED дисплейи - Arduino

Vcc ▶ 3.3V

GND ▶ GND

SCL ▶ Аналогдук пин 5

SDA ▶ Аналогдук пин 4

RFID окурманы - Arduino

RST ▶ Digital Pin 9

IRQ ▶ Байланышсыз

MISO ▶ Digital Pin 12

MOSI ▶ Digital Pin 11

SCK ▶ Digital Pin 13

SDA ▶ Digital Pin 10

RFID окурман модулу Arduino менен байланышуу үчүн SPI интерфейсин колдонот. Ошентип, биз Arduino UNOнун SPI жабдыктарын колдонобуз. RST пин цифралык пин 9го барат. IRQ пини туташпай калат. MISO пин санариптик пинге барат 12. MOSI пин санариптик пинге 11 барат. SCK пини санариптик пинге 13 барат жана акырында, SDA пини санариптик пинге 10 кетет. Болду. RFID окурман туташты. Эми OLED дисплейин I2C интерфейсин колдонуу менен Arduino менен туташтырышыбыз керек. Ошентип, дисплейдин SCL пини Analog Pin 5ке жана дисплейдин SDA пинине 4 Analog Pinге барат, эгерде биз азыр долбоорду иштетип, RFID картасын окурманга жакын жайгаштырсак, анда долбоор жакшы иштеп жатканын көрө алабыз! Эми бул долбоордун кодун карап чыгууга убакыт келди.

5 -кадам: Долбоордун коду

Долбоордун коду
Долбоордун коду

Долбоордун кодун түзүү үчүн биз кээ бир китепканаларды камтуубуз керек. Биринчиден, бизге MFRC522 Rfid китепканасы керек. Аны орнотуу үчүн, Sketch -> Китепканаларды кошуу -> Китепканаларды башкаруу бөлүмүнө өтүңүз. MFRC522 издеп, аны орнотуңуз. Ошондой эле бизге көрсөтүү үчүн Adafruit SSD1306 китепканасы жана Adafruit GFX китепканасы керек. Эки китепкананы бирдей жол менен орнотуңуз. Adafruit SSD1306 китепканасы кичине өзгөртүүгө муктаж. Arduino -> Китепканалар папкасына өтүңүз, Adafruit SSD1306 папкасын ачыңыз жана Adafruit_SSD1306.h китепканасын түзөтүңүз. Комментарийлердин сабы 70 жана комментарийлердин сызыгы 69. Биздин дисплейде 128x64 токтому бар, муну биз бул жерде аныктап жатабыз. Эми биз кодду тез кароого даярбыз.

Башында, биз Arduino таанууну каалаган RFID тегинин маанисин жарыялайбыз. Бул бүтүн сандардын массиви.

int code = {69, 141, 8, 136}; // Бул сакталган UID

Андан кийин, биз RFID окурманы жана дисплейди баштайбыз.

rfid. PCD_Init (); display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

Андан кийин, цикл функциясында, биз ар бир 100 мс сайын окурмандын тегин текшерип турабыз.

Эгерде окурманда теги бар болсо, биз анын UIDин окуйбуз жана аны дисплейге басып чыгарабыз. Андан кийин, биз окуган тегибиздин UIDин коддун өзгөрмөсүндө сакталган мааниси менен салыштырабыз. Эгерде баалуулуктар бирдей болсо, биз UNLOCK билдирүүсүн көрсөтөбүз, болбосо бул билдирүүнү көрсөтпөйбүз.

if (match) {Serial.println ("\ nМен бул картаны билем!"); printUnlockMessage (); } else {Serial.println ("\ nБелгисиз карта"); }

Албетте, бул кодду 1 UIDден ашык баалуулуктарды сактоо үчүн, долбоор RFID тэгдерин көбүрөөк таануу үчүн өзгөртө аласыз.

Бул жөн гана мисал. Дайыма эле бул Нускамага тиркелген долбоордун кодун таба аласыз.

6 -кадам: Акыркы ойлор жана жакшыртуулар

Акыркы ойлор жана жакшыртуулар
Акыркы ойлор жана жакшыртуулар

Көрүнүп тургандай, абдан арзан баада биз долбоорлорубузга RFID окурманы кошо алабыз. Биз оңой эле ушундай окурман менен коопсуздук системасын кура алабыз же дагы кызыктуу долбоорлорду кура алабыз.

Менин негизги ниетим - бул RFID окурманын жана RFID тегдерин колдонуп, балдар үчүн интерактивдүү оюндарды куруу. Келечектеги видеодо биз RFID тегинен маалыматтарды жазууга жана окууга аракет кылабыз. Бул жерде, мен бул RFID карта окугучу жөнүндө сиздин пикириңизди уккум келет. Сиз муну кандайдыр бир долбооруңузда колдонууну пландап жатасызбы? Сураныч, төмөндөгү комментарийлер бөлүмүнө кандайдыр бир комментарийлерди же идеяларды жазыңыз, рахмат!

Сунушталууда: