Click to order
Cart
Ваша корзина
Total: 
Ваше имя
Если планируете получать транспортной компанией, то ФИО
Ваш e-mail
Ваш телефон
Выбор доставки
Комментарий
Промокод
Подписаться на новости
Согласие на обработку персональных данных
Payment method
Content Oriented Web
Make great presentations, longreads, and landing pages, as well as photo stories, blogs, lookbooks, and all other kinds of content oriented projects.
IoT RFID контроллер-считыватель
4200
р.
Корпус
Гибкий и функциональный программируемый контроллер-считыватель.
Поддерживаемые карты: MIFARE Classic 1/4K, Ultralight, S50/70, NTAG 213/214/215.

Для кого?
Устройство будет полезно для разработчиков:
1. Интеллектуальных систем,
2. Систем "Интернета вещей",
3. Систем автоматизации,
4. СКУД.

А также интеграторам, для кого важно получить гибкий и быстронастраиваемый инструмент.
Что умеет RFID контроллер
Мы реализовали все свои идеи в одном устройстве
1
Автономность
Может работать без базы и ему не нужны провода. Может работать даже от аккумулятора, например, если нужно собрать систему на мероприятии в открытом поле.
2
Гибкость
Можно не только работать с UID карты, но читать/писать области памяти карты. Работать с шифрованием карт.
3
Беспроводной интерфейс
Встроенный беспроводной интерфейс (868 МГц) и возможность ретрансляции радиопосылок открывают большое количество недоступных ранее сценариев использования.
4
Проводные интерфейсы
В считывателе всегда есть USB интефейс для настройки и опциональные CAN/UART для создания проводной сети.
5
Энергоэффективность
Благодаря хорошо реализованным режимам энергосбережения средняя энергия потребления составляет 11ма. Это позволяет использовать его от аккумулятора на протяжении 80 часов активной работы.
6
Программируемость
Устройство имеет встроенный язык программирования Python3 (MicroPython), что позволяет создавать самые разные сценарии работы.
7
"Беспроводная" кнопка включения
Если есть необходимость выключать устройства (на ночь, на время транспортировки и т.д.), а потом включить его, то для этого предусмотрен включатель, активируемый поднесением магнита к корпусу.
Также, это позволяет встраивать устройство в корпус IP68.
Основные узлы


1 - Разъём подключения аккумулятора (опционально).

2 - Геркон (опционально).

3 - Разъём microUSB.

4 - Клеммная колодка (опционально).

5 - Процессорный модуль.

6 - Клемма сброса программного обеспечения.

Технические характеристики:
1. Поддерживаемые карты: MIFARE Classic 1/4K, Ultralight, S50/70, NTAG 213/214/215.
2. Дальность считывания меток: до 6 см
3. Габаритные размеры: 95х62х20 мм
4. Проводные интерфейсы: USB + CAN/UART (опционально)
5. Беспроводной интерфейс: 868 Мгц
6. Идникация: светодиоды (красный и зелёный), звуковой излучатель
7. Аккумулятор Li-ion 3.82V 1810mA от iPhone6 (опционально)
8. Контроль заряда и состояния аккумулятора.
Как программировать
Считыватели уже идут со встроенным ПО,
но можно написать программу под свои нужды:
Пример файловой системы в памяти считывателя
При подключении к ПК по интерфейсу USB устройство определяется в ОС, как flash память с меткой ODFLASHxxxx. На встроенной памяти хранится исполняемая программа устройства и дополнительные данные.
Программа состоит из двух обязательных файлов и возможных дополнительных данных.
boot.py - файл, который всегда загружается первым.
main.py - основой файл программы.
pybcdc.inf - драйвер последовательного порта (для ОС Windows).

Для начала попробуем сделать программу, которая при запуске зажигает один светодиод, включает считыватель и "пищит" при поднесении любой карты.
Подробную инструкцию по языку можно скачать по ссылке.
Удалим всё в main.py и запишем:
import pyb

#иницилизируем светодиод
gled = pyb.LED(2)

#включаем RFID-считыватель 
mfrc = pyb.MFRC522()
mfrc.init(gain=pyb.MFRC522.G_43dB)

while 1:
    res = mfrc.scan()  #чтение карты
    gled.intensity((0, 255)[res is not None])  #если карта есть, ставим яркость на макс
    pyb.delay(200)
    gled.intensity(0) #яркость на минимум (выкл).
Вариант программы, которая передаёт UID поднесённой карты по радио абоненту 2.
Удалим всё в main.py и запишем:
import pyb

#иницилизируем светодиод
gled = pyb.LED(2)

#включаем RFID-считыватель 
mfrc = pyb.MFRC522()
mfrc.init(gain=pyb.MFRC522.G_43dB)

#включаем радио
radio = pyb.SI446X(address=2)


while 1:
    uids = tuple(mfrc)
    for uid, res in uids:  #uid и статус карты
        if res != pyb.MFRC522.EOK:
            continue
        if radio.send(1, uid) == pyb.SI446X.RES_OK:  # отправка по радио абоненту 1
            gled.on()
    pyb.delay(500)
    gled.off()
Следующий вариант для считывателей с замком:
сравниваем UID и открываем замок, если карта подходит.
Удалим всё в main.py и запишем:
from binascii import unhexlify
import pyb

MY_SECRET_CARD_UID = b'030e873e'  #UID карты в HEX 

#иницилизируем светодиод
gled = pyb.LED(2)

#включаем RFID-считыватель 
mfrc = pyb.MFRC522()
mfrc.init(gain=pyb.MFRC522.G_43dB)

#выход замка
lock = Pin('LOCK', Pin.OUT_PP)
lock.high()

while 1:
    uids = tuple(mfrc)
    for uid, res in uids:  #uid и статус карты
        if res != pyb.MFRC522.EOK:
            continue
        if uid == unhexlify(MY_SECRET_CARD_UID)  # отправка по радио абоненту 1
            gled.on()
            lock.low()
            pyb.delay(5000)  # даём 5 секунд на вход
    gled.off()
    lock.high()
    pyb.delay(500)
Полнофункциональный RFID считыватель - дверной замок в 50 строк:
Удалим всё в main.py и запишем:
from binascii import hexlify
import pyb
import json

class buzzer():
    def __init__(self, use_buzz=True):
        self.buz = pyb.LED(3)
        self.buz.intensity(0)
        if not use_buzz:
            self.beep = lambda x: None

    def beep(self, time_ms):
        self.buz.intensity(128)
        pyb.delay(time_ms)
        self.buz.intensity(0)

def run():
    settings = json.load(open('settings.cfg'))

    mfrc = pyb.MFRC522()
    mfrc.init(gain=pyb.MFRC522.G_43dB)

    gled = pyb.LED(2)
    rled = pyb.LED(1)

    lock = pyb.Pin('LOCK', pyb.Pin.OUT_PP)
    lock.high()

    buzz = buzzer(settings['USE_BUZZER'])

    while 1:
        uids = tuple(mfrc)
        for uid, res in uids:
            if res != pyb.MFRC522.EOK:
                continue
            if hexlify(uid).decode() in settings['USER_LIST']:
                lock.low()
                gled.on()
                buzz.beep(50)
                gled.off()
                pyb.delay(settings['LOCK_TIMEOUT_MS'])
                lock.high()
                break
            else:
                rled.on()
                buzz.beep(500)
                rled.off()
                pyb.delay(1500)
                continue
run()
Файл настроек settings.cfg:
{
	"SRC_ADDR": 41,
	"DST_ADDR": 1,
	"USE_BUZZER": 1,
	"CARD_FILTER_TIMEOUT": 5,
	"LOCK_TIMEOUT_MS": 15000,
	"USE_SLEEP": 0,
	"USER_LIST" : {"030e873e": "user1", "11111111": "user2", "11111112" : "user3"}
}
Дополнительные ресуры
Понравилось устройство?
Его всегда можно приобрести в нашем магазине. Изготовим в любом количестве.