Технический прогресс не стоит на месте, появляющиеся новые технологии со временем дешевеют и становятся доступны практически всем желающим. Как пример можно привести мобильные телефоны. Середина 80-ых — начало 90-ых были переносные таксофоны с ручками или кирпичи стоимостью несколько тысяч $, конец 90-ых — большого размера трубки, с торчащими антеннами со стоимостью от 100$ Такую же аналогию можно провести с NFC метками, используемыми в учетных целях.

  • Уникальный идентификатор nfc метки можно занести в типовой регистр штрих кодов(или доп.свойств) и использовать со смартфона при заполнении, например, инвентаризации административно хозяйственного отдела.
  • В более сложном варианте можно записывать uid номенклатуры и часть названия прямо в метку NFC, при таком варианте связь метки и номенклатуры можно хранить только в метках.
  • Также в случае использования билетов, возможно дешифровать напечатанный номер на билете или же записывать номер заново на карту в открытом формате. Это позволит иметь механизм ручного ввода при повреждении метки, аналогично штрихкодам. Универсальное приложение чтения NFC читает и печатный номер билета и срок действия.

В идеальном варианте и оборудование и расходники (метки) могут ничего не стоить при условии, что у работника имеется смартфон с поддержкой NFC и сам работник не против его использования. Ну и, конечно же, удалось раздобыть необходимое количество использованных билетов. На Ali стоимость от 6 рублей с лишним за метку.



Основные затраты по внедрению описанной технологии это только время программиста.
В задачи программиста входит реализовать в мобильном приложении требуемую вашим учетом логику инвентаризации и или складского учета, а также реализовать обмен данными с основной учетной базой данных.

Для обмена можно использовать http или web сервисы, ботов телеграмм или иное месенджероподобное решение.

Описанное нигде не подглядывал, видел когда-то статью про запись пароля wifi на билет, а также имел опыт работы с ТСД (штрих.кодами rdp на винмобайл), огромным и дорогим, на мой взгляд неудобным. С тех пор было желание повторить что-то подобное на более удобном смартфоне.

Группы из 4 байтов называются страницами. Первые несколько страниц, как правило заняты служебной информацией, на одном из скриншотов можно увидеть ID метки NFC на первых двух страницах.



Кроме ID также может содержаться информация о заблокированных readonly байтах. А также масса другой информации все зависит от типа метки и поддерживаемых возможностей. Также служебная информация может быть записана в конце метки на последних страницах. Более подробно описанное можно увидеть программе для чтения меток, например TagInfo.



Рекомендуется записывать данные с 8 страницы для пустых — купленных меток.

Для билетов рекомендуется записывать с 16 страницы. Длина имени справочника не должна превышать 60 символов, в случае использования билета.

Некоторые билеты, как правило проездные на много поездок, имеют всего 20 страниц, с учетом блокированных служебных записать на такой билет не получиться.

Данная разработка позволит быстро интегрировать в ваше мобильное приложение функционал чтения записи NFC.a меток.

Возможные варианты использования:
Складской учет номенклатуры, упаковок, ячеек, мест хранения.
Учет ОС, МБП: шкафов, столов, компьютеров.
Мобильный пропускной пункт.
И так далее.

Исходники приложения доступны по ссылке https://github.com/PloAl/RfIdTool

Приложение является «служебным» и не имеет основной activity, также нет в меню приложений android. Запуск происходит из других приложений, туда же передаются считанные данные или передаются данные для записи в метку.

Ниже на картинке видна, полупрозрачная область «Запись метки NFC» это единственная activity приложения.



Пример использование в android приложении:

protected void nfcStart(boolean read, String readedId) {
    
    if (read)) {
        Intent intent = new Intent("com.ploal.rfidtool.NFCREAD");
        intent.putExtra("IdLabel", readedId); //множественное чтение, предыдущий id метки 
    }
    else{
        Intent intent = new Intent("com.ploal.rfidtool.NFCWRITE");
        intent.putExtra("PageNumber", PageNumber); //глоб. переменная номер страницы 
        intent.putExtra("WriteString", WriteString); //глоб. переменная текст для записи
    }
    startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (null != data) {
        String event = data.getStringExtra("event");
        String uid = data.getStringExtra("uid");
        String result = data.getStringExtra("result");
        String text = data.getStringExtra("text");
        String[] techArr = data.getStringArrayExtra("tech");
        //обработка полученных данных ...
    }
}

Пример использование в мобильном приложении(клиенте) 1с:

&НаКлиенте
Процедура ЗапускПриложенияNFC(Чтение=Истина,ПрочитанныйID="")
    ЗПМУ = Новый ЗапускПриложенияМобильногоУстройства();
        
    Если Чтение Тогда
        ЗПМУ.Действие = "com.ploal.rfidtool.NFCREAD";
        ЗПМУ.ДополнительныеДанные.Добавить("IdLabel",ПрочитанныйID);
    Иначе
        ЗПМУ.Действие = "com.ploal.rfidtool.NFCWRITE";
        ЗПМУ.ДополнительныеДанные.Добавить("PageNumber",""+НомерСтраницы);
        ЗПМУ.ДополнительныеДанные.Добавить("WriteString",ТекстЗаписи);
    КонецЕсли;
    
    Если ЗПМУ.ПоддерживаетсяЗапуск() Тогда
        ЗПМУ.Запустить(Истина);	
        Событие = "";
        Для Каждого Стр Из ЗПМУ.ДополнительныеДанные Цикл
            Если Стр.Ключ = "event" Тогда
                Событие = Стр.Значение;
            ИначеЕсли Стр.Ключ = "uid" Тогда
                УИД = Стр.Значение;	
            ИначеЕсли Стр.Ключ = "result" Тогда
                Результат = Стр.Значение; //HEX строка
            ИначеЕсли Стр.Ключ = "text" Тогда
                Текст = Стр.Значение;	
            ИначеЕсли Стр.Ключ = "tech" Тогда
                Техлист = Стр.Значение;	
            КонецЕсли;
        КонецЦикла;
        //обработка полученных данных ...
    КонецЕсли;	
КонецПроцедуры 

Комментарии (14)


  1. AndreyYu
    06.11.2018 13:17

    Сделайте, пожалуйста, скриншоты поменьше. Конечно, информация важная, но всё же…


    1. PloAl Автор
      06.11.2018 14:28

      Поправил


  1. demimurych
    06.11.2018 13:18

    nfc метки это очень здорово. И трудно недооценить ту оптимизацию которую они могут предоставить.
    НО еще слишком рано говорить о том что они дешевы. Особенно учитывая факт какого-нибудь склада с сотнями тысяч товаров.
    И когда начинают сравнивать затраты, на дополнительное оборудование, на метки, на простоту обращения, то ничего более пуленпробиваемого чем обычный штрих или qr код нет.


    1. PloAl Автор
      06.11.2018 14:31

      В статье не упоминались большие склады, у них как правило уже все есть. И дорогие ТСД, для них недорогие.


      1. demimurych
        06.11.2018 14:39

        Я возможно живу в альтернативной реальности, но вот только что из магазина продуктов. Большооооого такого размера в 4 этажа. И там на типичных продуктах до сих пор нет nfc, а есть только на элитке.
        Задумывались почему?


        1. PloAl Автор
          06.11.2018 17:07

          В предыдущем своем ответе, я не писал что они используют именно NFC. В самом начале статьи написано про то что технологии со временем становятся доступней и про дорогие ТСД.


  1. jreznot
    06.11.2018 14:43

    Кажется хаб Java тут лишний


    1. PloAl Автор
      06.11.2018 17:11
      -1

      В статье ссылка на исходники, а также приведен код использования исходников.


  1. Tahallus
    06.11.2018 17:16

    «Исходники приложения доступны по ссылке»
    только ссылки нету


    1. PloAl Автор
      06.11.2018 17:17

      Не было текста ссылки. Поправил.


  1. LumberJack
    06.11.2018 18:54

    Штрих или QR-код, напечатанный на стикере в разы дешевле, простите.


  1. NetNazgul
    08.11.2018 09:32

    Стоит заметить, что для складского учёта NFC-метки так себе — в таких случаях используют UHF-метки, работающие на частотах в районе 900МГц (±, несущая зависит от региона использования). UHF RFID работает на расстояниях до 10 метров, протокол специально рассчитан для быстрой инвентаризации и позволяет достаточно быстро «прозвонить» целый грузовик товара с расстояния.

    NFC конечно более удобен для домашнего использования, т.к. достаточно только смартфона под рукой.


  1. zolti
    08.11.2018 15:28

    очень напугала меня картинка в обложке. использую такой же корпус для домашнего сервера, перечеркнутый красными линиями он очень пугает :)


  1. PloAl Автор
    08.11.2018 20:15

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