RFID сканер

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Timoshenko Mitya, 8 окт 2014.

  1. Всем привет, делаю систему "Умный дом". Хочу добавить функцию регистрации "гостей". Вопрос заключается в следующем: можно ли после того, как "гость" поднес карту к сканеру, записать к примеру текущее время и идентефикатор карты (имя "гостя") и после этого составлять таблицы посещаемости?
    записывать все на SD?
     
  2. SerRay

    SerRay Нерд

    Сначала создаем процедуру, спрашивающую дату и время у часов и записывающую это в строку DateTimeString в виде "13/06/2014 15:33:46" :

    Код (Text):
    void GetDateTime()
    {
      clock.getTime();
      DateTimeString = "";
      if (clock.dayOfMonth < 10) {
      DateTimeString +="0";
      DateTimeString +=String(clock.dayOfMonth);}
      else
      {DateTimeString +=String(clock.dayOfMonth);}
      DateTimeString +="/";
      if (clock.month < 10) {
      DateTimeString +="0";
      DateTimeString +=String(clock.month);}
      else
      {DateTimeString +=String(clock.month);}
      DateTimeString +="/";
      DateTimeString +=String(clock.year+2000);
      DateTimeString +=" ";
      if (clock.hour < 10) {
      DateTimeString +="0";
      DateTimeString +=String(clock.hour);}
      else
      {DateTimeString +=String(clock.hour);}
      DateTimeString +=":";
      if (clock.minute < 10) {
      DateTimeString +="0";
      DateTimeString +=String(clock.minute);}
      else
      {DateTimeString +=String(clock.minute);}
      DateTimeString +=":";
      if (clock.second < 10) {
      DateTimeString +="0";
      DateTimeString +=String(clock.second);}
      else
      {DateTimeString +=String(clock.second);}
    }
    За тем создаем процедуру, которая выполняет предыдущую процедуру и полученную строку сразу записывает в файл на SD карту :

    Код (Text):
    void LogTime()
    {
    GetDateTime();
    const char* CDateTimeString = DateTimeString.c_str();
    File myFile = SD.open ("FlatLog.txt", FILE_WRITE);
    myFile.print("[");
    myFile.print(CDateTimeString);
    myFile.print("] ");
    myFile.close();
    }
    За тем в зависимости от условий, при которых мы хотим логировать событие, пишем так (для примера у Иванова карточка с кодом 365):

    Код (Text):
    if (KeyNum == 365) {
    LogTime();
    String LogString = "";
    LogString +="Ivanov is come!";
    File myFile = SD.open ("FlatLog.txt", FILE_WRITE);
    myFile.print(LogString);
    myFile.println("");
    myFile.close(); }
    В лог запишется строка :
    [23/06/2014 13:22:47] Ivanov is come!
     
    Последнее редактирование: 8 окт 2014
  3. SerRay

    SerRay Нерд

    Я конечно еще тот говнокодер:) Поэтому, что не понятно - спрашивайте.
     
  4. Спасибо большое за помощь)
     
  5. то есть, потом мы можем вытащить карту и посмотреть кто приходил в обычном блокноте?
     
  6. SerRay

    SerRay Нерд

    Именно так.
    Можно еще заморочиться и оформить вывод истории посещений на дисплей "умного дома" из этого же файла. Но это уже совсем другая история:rolleyes:
     
  7. Спасибо)
     
  8. а тут в магазине имеется два сканера, в чем у них различие? ну кроме конечно частоты. И какой лучше использовать в этом проекте?
     
  9. SerRay

    SerRay Нерд

    На мой взгляд RFID-сканер (125 кГц) без лишних приблуд и заморочек - то, что нужно для регистрации вошедших.
     
  10. Спасибо;)