Беспроводные метки NFC



    Технический прогресс не стоит на месте, появляющиеся новые технологии со временем дешевеют и становятся доступны практически всем желающим. Как пример можно привести мобильные телефоны. Середина 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
      0
      Сделайте, пожалуйста, скриншоты поменьше. Конечно, информация важная, но всё же…
        0
        Поправил
        +2
        nfc метки это очень здорово. И трудно недооценить ту оптимизацию которую они могут предоставить.
        НО еще слишком рано говорить о том что они дешевы. Особенно учитывая факт какого-нибудь склада с сотнями тысяч товаров.
        И когда начинают сравнивать затраты, на дополнительное оборудование, на метки, на простоту обращения, то ничего более пуленпробиваемого чем обычный штрих или qr код нет.

          0
          В статье не упоминались большие склады, у них как правило уже все есть. И дорогие ТСД, для них недорогие.
            0
            Я возможно живу в альтернативной реальности, но вот только что из магазина продуктов. Большооооого такого размера в 4 этажа. И там на типичных продуктах до сих пор нет nfc, а есть только на элитке.
            Задумывались почему?
              0
              В предыдущем своем ответе, я не писал что они используют именно NFC. В самом начале статьи написано про то что технологии со временем становятся доступней и про дорогие ТСД.
          0
          Кажется хаб Java тут лишний
            0
            В статье ссылка на исходники, а также приведен код использования исходников.
            0
            «Исходники приложения доступны по ссылке»
            только ссылки нету
              0
              Не было текста ссылки. Поправил.
              +3
              Штрих или QR-код, напечатанный на стикере в разы дешевле, простите.
                0
                Стоит заметить, что для складского учёта NFC-метки так себе — в таких случаях используют UHF-метки, работающие на частотах в районе 900МГц (±, несущая зависит от региона использования). UHF RFID работает на расстояниях до 10 метров, протокол специально рассчитан для быстрой инвентаризации и позволяет достаточно быстро «прозвонить» целый грузовик товара с расстояния.

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

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое