Считыватель карт Arduino Ethernet Rfid

Carding 4 Carders

Professional
Messages
2,730
Reaction score
1,466
Points
113
ОГЛАВЛЕНИЕ
  • Компоненты и расходные материалы
  • Необходимые инструменты и машины
  • Приложения и онлайн-сервисы
  • Об этом проекте
  • Код
  • Схемы

КОМПОНЕНТЫ И РАСХОДНЫЕ МАТЕРИАЛЫ

Mifare MFRC522.

Подходит любой тип считывателя spi rfid.

ph-a000066_iso_(1)_ztBMuBhMHo.jpg

Arduino UNO.
Любой ардуино подойдет.

enc28j60.
Вам придется изменить код для всего, что не использует ENC28J60.

11026-02.jpg

Перемычки (общие).

12002-04.jpg

Макетная плата (универсальная).

Любой компьютер, подключенный к Интернету.

НЕОБХОДИМЫЕ ИНСТРУМЕНТЫ
Ножницы или устройства для зачистки проводов.

ПРИЛОЖЕНИЯ И ОНЛАЙН-СЕРВИСЫ
Pycharm

IDE_web.jpg

Arduino IDE

ОБ ЭТОМ ПРОЕКТЕ
Others.jpg

Вы когда-нибудь думали о добавлении системы безопасности RFID-меток / карт или системы мониторинга в свой дом и / или офис. Ну, если вы попали сюда, держу пари, вы уже посмотрели, насколько они чертовски дорогие, в диапазоне от 200 до 2000 долларов, СЛИШКОМ ПРАВИЛЬНО! Мы с другом решили создать систему, которая стоила бы менее 100 долларов и могла бы делать даже больше, чем просто доступ к двери, поэтому это то, что мы придумали. Считыватель RFID-тегов Arduino с подключением к Интернету. что за 20 долларов больше можно открыть двери. Эта система была разработана для отслеживания учеников в нашей старшей школе, и мы надеемся, что школа одобряет ее.
Вот прототип:

Full.png

Вы можете подумать, что это может занять много времени. Тем не менее, это заняло у меня всего около 6 часов (потому что у меня были проблемы с питанием), но это может занять у вас около 30 минут, чтобы настроить, как в примере выше. Весь код и изображения приведены ниже, поэтому, если вы запутались в следующих шагах, посмотрите на нижние изображения / код.
Вот все шаги:

Прежде чем мы начнем (обязательно)
Прежде чем мы сможем начать сканирование карт и отправку их на наш Telnet / TCP-сервер, нам понадобятся некоторые библиотеки.
Получите UIPEthernet здесь https://github.com/ntruchsess/arduino_uip
Получите MFRC522 здесь https://github.com/miguelbalboa/rfid
Поместите обе эти библиотеки в Program Files (x86) / Arduino / Libraries / Restart arduino.

Аппаратное обеспечение
  1. Arduino Nano (вы всегда можете изменить свой код, чтобы он соответствовал вашему устройству)
  2. MFRC522 с картами MAIFARE
  3. Перемычки (папа-папа) (папа-мама)
  4. Модуль ethernet enc28j60 / шильд
  5. RGB светодиод
  6. Преобразователь переменного тока в постоянный 3 В ИЛИ 5 В более 700 миль ампер

Настройка
  1. Присоедините arduino к макету (если нано или микро)
  2. Найдите в Интернете распиновку вашей платы, чтобы найти настройку SPI (измените значения ниже)
  3. Подключите вывод 10 (SS) Arduino к модулю Ethernet SS или CS
  4. Подключите вывод 12 Arduino (MISO) к RFID MISO и Ethernet SO
  5. Подключите вывод 11 Arduino (MOSI) к RFID MOSI и Ethernet SI
  6. Подключите вывод 13 (SCK) Arduino к RFID SCK и Ethernet SCK
  7. Подключите вывод 9 Arduino к выводу rfid RST
  8. Подключите контакт 8 Arduino к RFID SSN
  9. Подключите вывод 5 Arduino к зеленому светодиоду, 4 к синему и 3 к красному
  10. Подключите переменный ток к постоянному току к + и - на макете.
  11. Заземлите ваш Arduino от переменного тока до постоянного тока
  12. Подключите VCC и GND на RFID и Ethernet к ac-dc (ПОМНИТЕ, ЭТИ УСТРОЙСТВА ТОЛЬКО 3 В !!!!! не подавать 5 В) Если проблема, используйте резисторы, чтобы довести напряжение до 3 В.
  13. Подключите вывод VCC на светодиодах к Arduino 3 В или AC-DC 3 В
  14. Подключите кабель Ethernet к модулю и убедитесь, что он находится в той же сети, что и ваш компьютер.
  15. Подключите USB-кабель от компьютера к Arduino
  16. Подключите компьютер к той же сети

Измените код под свои нужды
  1. Код довольно хорошо прокомментирован, поэтому вы можете просто войти и изменить определенные части, но одно можно сказать наверняка - это модуль ehternet.
  2. MAC-адрес может оставаться неизменным (если вы не планируете создавать несколько из них)
  3. Если вы используете 192.168. базовая IP сеть вы можете оставить IP
  4. Опять же можно оставить днс, только время сменить на 8.8.4.4

ethernet.png

  1. запустите ipconfig, чтобы найти свой шлюз, значение по умолчанию - 192.168.1.1 (если вы его не знаете) (текущий код - 192.168.1.5)
  2. запустите командную строку и введите ipconfig, чтобы узнать IP-адрес вашего компьютера

cmd.png

  1. прокрутите вниз, чтобы найти ОТПРАВИТЬ НА СЕРВЕР, и введите IP-адрес вашего компьютера, или если ваш порт перенаправил ваш маршрутизатор на ваш общедоступный IP-адрес
  2. УБЕДИТЕСЬ, ЧТО У ВАС ЕСТЬ PYTHON И ЗАПУСТИТЕ СЕРВЕР (помните, что это просто пример кода, который мы использовали для нашей презентации в школе, поэтому сервер python уже был предварительно создан и почти не изменен, вы можете использовать любой сервер Telnet / TCP)
И другой код, который вам, вероятно, потребуется изменить:

ethernet2.png


Запуск кода
  1. Подключите питание переменного и постоянного тока к стене
  2. Убедитесь, что ваш Arduino в настоящее время подключен к компьютеру.
  3. Убедитесь, что оба устройства находятся в одной сети.
  4. Прошейте ваш измененный код Arduino или, если тот, который у меня есть, работает для вас, тогда отлично (почти нет шансов, что вам придется его модифицировать)
  5. Запустите свой сценарий Python, C ++ или любой другой сервер Telnet / TCP в вашей сети.
  6. Перезагрузите ваш Arduino, чтобы быть в безопасности
  7. Подождите, пока индикатор не станет синим, и попробуйте сканировать карту, если ваш сервер получил идентификатор карты, тогда вы готовы к работе.
  8. Помните, что означают индикаторы. Фиолетовый / исчезающий красный означает загрузку.
  9. Красный означает любую ошибку, такую как карта была под странным углом и / или сервер не ответил вовремя.
  10. Зеленый означает, что вы прошли, сервер ответил, и вы можете прочитать следующую карточку.
  11. Синий означает ожидание / загрузка, ожидание карты или ответа
  12. Если ваш arduino начинает отставать и горит красным светом требуется более 30 секунд, это означает, что модуль arduino ethernet вообще не может подключиться к серверу. Это может быть вызвано несколькими причинами: сначала ваш arduino не имеет достаточной мощности, и модуль arduino ethernet изо всех сил пытается отправить пакет, или что ваш компьютер-сервер не работает, или что ваш arduino и компьютер не находятся в одной сети.
  13. Если ваш Arduino продолжает отставать, попробуйте эти уловки, чтобы их исправить
  14. Отключить брандмауэр Windows
  15. перейдите в расширенные настройки брандмауэра и разрешите входящий / исходящий порт 23
  16. порт перенаправляет ваш маршрутизатор на ваш компьютер с портом 23
  17. Если вы используете беспроводное соединение, подключите Arduino прямо к маршрутизатору, а ваш компьютер - к одному и тому же
  18. Купите более мощный адаптер питания переменного и постоянного тока.
  19. Или, возможно, вы неправильно ввели свой IP-адрес или адрес подключения
  20. Или свяжитесь по smerkousdavid@gmail.com, если возникнут проблемы.

us1.jpg

Помните, что для системы дверных замков нет никакого кода, потому что у меня его нет, это означает, что вам придется добавить код, если вы хотите использовать его не только в качестве системы слежения, но и в качестве системы слежения за дверным замком.

Пожалуйста, прочтите ниже:
Я не несу ответственности за поврежденные устройства, при неправильном обращении ваше устройство будет повреждено. Будьте осторожны, потому что я однажды буквально поджарил Arduino Uno, и это была моя вина, а не тот парень, который давал руководство. Так что будь осторожен!

Код Arduino C / C ++
Это программное обеспечение идет на Arduino, почти готовое к работе, поэтому вам нужно просто настроить шлюз, IP, шлюз, MAC-адрес и DNS.
Code:
/*
 * ----------------------------------
 *             MFRC522     Arduino   
 *             Reader/PCD  Nano v3   
 * Signal      Pin         Pin     
 * ----------------------------------
 * RST/Reset   RST        D9 
 * SPI SS      NSS        D10
 * SPI MOSI    MOSI       D11 
 * SPI MISO    MISO       D12
 * SPI SCK     SCK        D13 
 */

// THE FIRST LIBRARY THAT NEEDS TO BE INSTALLED IS UIP ETHERNET SECOND IS MFRC522 BOTH ARE ON GITHUB

#include <UIPEthernet.h>
#include <SPI.h> //For the selection of the key
#include <MFRC522.h> //The RFID key library

#define RST_PIN         9           // Configurable, see typical pin layout above - This is for the Arduino Nano - For RFID
#define SS_PIN          8 //WE ARE USING 8 FOR RFID BECAUSE THE ETHERNET MODULE USES 10

  byte sector         = 0;
  byte blockAddr      = 0; ////////Access certain sector/blocks in the card, trailer block is the last block
  byte trailerBlock   = 1;

int red = 3;
int blue = 4; //Pins for RGB LED
int green = 5;

EthernetClient client;  //ETHERNET INSTANCE

MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.

MFRC522::MIFARE_Key key; //Set key instance

signed long timeout; //TIMEOUT SO IT DOESN'T SIT THERE FOREVER

void setup()
{
  //UI BEGIN
   pinMode(red, OUTPUT);
   pinMode(blue, OUTPUT); //Init the RGB LED
   pinMode(green, OUTPUT);
   Reset(); //Start with leds off

  Serial.begin(9600); //Start computer connection with a rate of 9600 bits per second
  //UI END

  //ETHERNET MODULE INITIAL
  SPI.begin();        // Init SPI bus
  uint8_t mac[6] = {0x00,0x01,0x02,0x03,0x04,0x05};     //MAC = 000102030405
  IPAddress mip(192,168,1,160);                         //IP = 192.168.1.160
  IPAddress mdns(8,8,8,8);                              //DNS = 8.8.8.8
  IPAddress mgate(192,168,1,5);                         //GATEWAY = 192.168.1.5
  IPAddress msubnet(255,255,255,0);                     //SUBNET = 255.255.255.0
  Ethernet.begin(mac, mip, mdns, mgate , msubnet);      //CONNECT USING ABOVE
  Serial.println("Succesful connection");
  // END OF ETHERNET
 
  for(int t = 255; t > 0; t--)
  {
    analogWrite(red, t);           ////More of show but let at least a second between the SPI of the ethernet and RFID
    delay(10);
  }

  //RFID INITIAL
  mfrc522.PCD_Init(); // Init MFRC522 card
 
     for (byte i = 0; i < 6; i++) {   // Prepare the key (used both as key A and as key B)
        key.keyByte[i] = 0xFF;        // using FFFFFFFFFFFFh which is the default at chip delivery from the factory
        }
    
    Serial.println(F("Scan a Card"));
    dump_byte_array(key.keyByte, MFRC522::MF_KEY_SIZE);     //Get key byte size
   timeout = 0; 
   delay(2000);
   Reset();

Обновленный код на GitHub
Здесь вы можете получить самый последний код
smerkousdavid / ИнтернетRFIDTags

Последняя фиксация в основной ветке от 22.05.2016
Скачать как zip

Простая схема подключения
Wiring%20diagram.png

Схема простая, поэтому я просто сфотографировал проводку.

 
Top