»»
Добавить статью

Arduino + RFID + Excel. Сбор данных

2017-05-07 в 17:17

В этой статье я хочу рассказать как можно занести в таблицу Excel данные через com последовательный порт. А данными у нас будет время и код RFID карты. Считыватель - RFID-RC522. Все это работает на Arduino Uno.
Все подключаем по следующей схеме.

arduino rfid excel

Пьезоизлучатель нужен для того чтобы при поднесении карты к считывателю было понятно что карта действительно считалась. Подойдет любой без внутреннего генератора.
Теперь обсудим скетч.
Для работы с данным считывателем нам необходимо установиться библиотеку rfid-master.

Код был разработан благодаря статье.

Код

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN         9
#define SS_PIN          10

int row_excel = 0; // количество строк

MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup() {
  pinMode(5, OUTPUT);
  Serial.begin(9600);
  SPI.begin();
  Serial.println("CLEARDATA");                           // очистка листа excel
  Serial.println("LABEL,Time,Code");                     // заголовки столбцов
  mfrc522.PCD_Init();
}

void loop() {

  row_excel++; // номер строки + 1

  MFRC522::MIFARE_Key key;
  for (byte i = 0; i < 6; i++) key.keyByte[i] = 0xFF;

  byte block;
  byte len;
  MFRC522::StatusCode status;

  if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;
  }

  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
  }

  beep(50);
  beep(50);

  Serial.print("DATA,TIME,"); // запись в excel текущей даты и времени

  mfrc522.PICC_DumpDetailsToSerial(&(mfrc522.uid));

  delay(1000); //измените если необходимо считывать карты быстрее

  mfrc522.PICC_HaltA();
  mfrc522.PCD_StopCrypto1();
 
  Serial.println(row_excel);
}
void beep(unsigned char delayms) {
  analogWrite(5, 25);      // значение должно находится между 0 и 255, поэкспериментируйте для получения хорошего тона
  delay(delayms);          // пауза delayms мс
  analogWrite(5, 0);       // 0 - выключаем пьезо
  delay(delayms);          // пауза delayms мс
}

Загрузили. Работает. Теперь нам нужно вписать данные в таблицу Excel. Для этого загрузите документ с макросами. В окне укажите какой com порт использует Arduino и с какой скоростью (обычно 9600). И нажмите Connect.

После того как произойдет соединение прикладывайте свои карты и в строках появятся код карты и время ее считывания.

arduino excel

Этот принцип можно использовать в простых системах учета рабочего времени, учета материалов и прочего. Я в будущем планирую такую систему использовать при выдаче и получении картриджей принтеров для их заправки. Правда для этого нужно будет еще улучшать код как для ардуино так и excel. Если вас данная идея сподвигла на создание интересной и рабочей системы, поделитесь)

Считыватель RFID-RC522 - найти в магазине
Arduino UNO - найти в магазине
Пьезоизлучатель - найти в магазине

Радиобарахолка Вконтакте


Если Вы заметили ошибку, нажмите Ctrl+Enter и сообщите нам.
Оценка статьи: 5.0/5 Уже оценило 2
SD модуль
Качество норм, без штырьков в комплекте. Мне нраввится.
Блок питания для Arduino
Стоит неделю, ни намека на нагрев. Доволен.

Всего комментариев: 0
Добавить комментарий
Яндекс.Метрика Рейтинг@Mail.ru webmoney attestation Проверка орфографии