Как читать Wiegand на Raspberry Pi 3 с Node? - PullRequest
0 голосов
/ 04 июля 2019

Я перепробовал множество уроков и не могу заставить его работать.

Текущая ситуация:
- 12 В Устройство контроля доступа , которое подключено следующим образом , например, Wiegand D0 к GPIO14 (вывод 8 / Tx) и D1 к GPIO15 (вывод 10 / Rx), с делителями напряжения, смещение 5В до 3,3 В.
- Raspberry Pi 3 с ОС Raspbian Lite.
- Настроен последовательный порт GPIO , т. Е. Включение uart и отключение консоли.

Я использую пакет onoff NPM для чтения сигналов, , но я ничего не получаю .

const Gpio = require('onoff').Gpio;
const d0 = new Gpio(8, 'in');
const d1 = new Gpio(10, 'in');

d0.watch((err, value) => {
  if (err) {
    throw err;
  }

  d0.readSync(value);
});

d1.watch((err, value) => {
  if (err) {
    throw err;
  }

  d1.readSync(value);
});

process.on('SIGINT', () => {
  d0.unexport();
  d1.unexport();
});

Что я делаю не так?

1 Ответ

0 голосов
/ 04 июля 2019

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

Вместо него следует использовать Wiegand NPM .

И я думаю,Вы установили неправильные контакты в своем коде.Контакты 8 и 10 на самом деле являются GPIO14 и GPIO15.В библиотеке, которую я связал, по умолчанию используются GPIO17 и GPIO18, которые расположены на выводах 11 и 12 разъема .

При этом нет необходимости отключать UART для использования выводов 8 и 10 в качестве цифрового GPIO.

...