Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Если вы похожи на меня, то у вас на полу лежит небольшая куча одежды, которая может быть грязной, а может и нет. Это могут быть джинсы, классические рубашки и едва поношенные шорты. Так как же определить, какая одежда чистая, а какая грязная? Я придумал способ отслеживать различные предметы одежды с помощью NFC и Raspberry Pi. Вы просто вставляете карту NFC в карман, а затем сканируете ее, что дает информацию об этом предмете одежды, а также возможность его поменять.
Шаг 1: Сбор компонентов
DFRobot обратился ко мне, чтобы спонсировать этот проект, поэтому они прислали Raspberry Pi 3 и модуль PN532 NFC вместе с 5 картами NFC. Модуль NFC использует UART для связи с хост-устройством, поэтому сначала я попытался использовать Raspberry Pi, но столкнулся с несколькими проблемами. Библиотеки были сложными и трудными для взаимодействия с Python, поэтому я решил использовать Arduino Mega для связи с модулем NFC. Arduino Mega была необходима, потому что она использует два порта UART, один для модуля NFC и один для вывода информации.
Шаг 2: настройка Pi
Я зашел на страницу загрузок Raspberry Pi и загрузил самую последнюю версию Raspbian. Затем я извлек файл и поместил его в удобный каталог. Вы не можете просто скопировать / вставить файл.img на SD-карту, вы должны «записать его» на карту. Вы можете загрузить утилиту записи, например Etcher.io, чтобы легко перенести образ ОС. После того, как файл.img был на моей SD-карте, я вставил его в Raspberry Pi и подал питание. Примерно через 50 секунд я отключил шнур и вынул SD-карту. Затем я вставил SD-карту обратно в свой компьютер и перешел в «загрузочную» директорию. Я открыл Блокнот и сохранил его как пустой файл с именем «ssh» без расширения. Я также добавил файл под названием "wpa_supplicant.conf" и поместил в него этот текст: network = {ssid = psk =} Затем я сохранил, извлек карту и вставил ее обратно в Raspberry Pi 3. Теперь это должно позволить использование SSH и подключение к WiFi.
Шаг 3: Подключение
Проводка для этого довольно проста. Я подключил вывод Rx к Tx1 Mega, а вывод Tx - к выводу Rx1 Mega. 5 В переходит в 5 В, а GND переходит в GND. Я также подключил Arduino Mega к Raspberry Pi 3 через небольшой USB-кабель.
Шаг 4: программирование
Есть два файла: один для Arduino Mega и один для Raspberry Pi. Arduino Mega сначала отправляет модулю запрос на установление связи, а затем ожидает ответа. После получения ответа Mega начинает опрос устройства, чтобы узнать, были ли отсканированы какие-либо карты. Если да, считывается ID карты. Чтобы отправить краткую информацию на Pi, я использовал алгоритм псевдоконтрольной суммы, чтобы объединить пять байтов в одно число. Первые четыре байта складываются один раз, а последний байт - дважды. Также есть массив, содержащий номера каждой карты. Когда карта сканируется, ее контрольная сумма сравнивается с контрольными суммами в массиве, а затем сопоставляется. Наконец, эти данные отправляются по последовательному каналу на Raspberry Pi для дальнейшей обработки.
Raspberry Pi ждет новой серийной информации, а затем распечатывает ее. В начале кода создается словарь, который определяет, как каждый предмет одежды соответствует каждой карточке. У каждого есть имя, номер карты, цвет и статус (чистая или грязная). Есть возможность изменить статус после сканирования предмета одежды.
Шаг 5: Использование устройства
Я начал с того, что засунул карточки в карманы своей одежды и проверил их удостоверения личности, записав информацию в словарь. Если я хочу увидеть, чистые они или грязные, я просто подношу их к считывателю RFID, который затем отображает информацию через SSH.