Поключение внешнего интерфейса к считывателю карт matrix ii k

Тема в разделе "Raspberry Pi", создана пользователем Makhonin, 8 апр 2020.

  1. Makhonin

    Makhonin Гик

    Добрый день.
    Для открытия магнитной двери использую комбинированный контроллер и считыватель Matrix II K.

    Появилась идея добавить аналитику кодов карточек на Raspberry. В интернете есть способы подключения через 1-wire к пинам data0 и data1, но в К-версии контроллера они явно не выведены на плате.

    Подскажите пожалуйста любителю электроники, как можно это организовать?
     
  2. parovoZZ

    parovoZZ Гуру

    Никак. Это автономный контроллер СКУД без внешнего взаимодействия.
     
  3. Makhonin

    Makhonin Гик

    Вроде есть такая приблуда для windows, но это чисто для обслуживания базы номеров карт(
    https://ironlogic.ru/il_new.nsf/htm/ru_z2base

    Иначе получается очень глупая схема:
    К этому контроллеру подключать внешний считыватель (версия Matrix II EH), у него есть выходы data0, data1. Получается два внешне одинаковых контроллера будут рядом висеть(
     
  4. Makhonin

    Makhonin Гик

    Ок. Купил Matrix II E с выводом data0.
    Просто так, как с Arduino из примера с 1-wire.h, не заработало(
    Raspberry не видит устройств на шине, пробовал всякие разные подходы по ссылкам в сети по части термодатчиков.
    Какая-то особая магия требуется?
     
  5. parovoZZ

    parovoZZ Гуру

    А интерфейс какой? Wiegand 26 или Dallas Touch Memory?
     
  6. Makhonin

    Makhonin Гик

    Есть подозрение, что .IButton (Dallas Touch Memory)
     
  7. Makhonin

    Makhonin Гик

    Вот этот код на Arduino работает:

    #include <OneWire.h>

    OneWire ds(7); // выход считывателя на 7 пин

    byte addr[8];// буфер приема

    void setup() {// стартовая инициализация
    Serial.begin(9600);
    delay(100);
    Serial.println("Start...");

    }

    void loop() {
    if(ds.reset()){ // если обнаружено устройттво
    ds.write(0x33); // отправляем команду "считать ROM"
    delay(50); // на всякий случай ждем
    for(int i=0;i<8;i++){
    addr = ds.read(); // считываем
    }

    Serial.print("ROM ="); // выводим
    for(int i = 0; i < 8; i++) {
    Serial.write(' ');
    Serial.print(addr, HEX);
    }

    Serial.println();

    delay(500);
    }

    }
     
  8. parovoZZ

    parovoZZ Гуру

    В смысле подозрение? Инструкцию читать не надо?