Оглавление:
- Шаг 1. Настройка Arduino и RFID RC-522 (физическое соединение)
- Шаг 2: Код Arduino.,
- Шаг 3: Настройка MySQL
- Шаг 4: Настройка IDE обработки
- Шаг 5: Запуск программы
- Шаг 6: Заключение
Видео: Простое приложение для супермаркетов с использованием RFID RC-522 и Arduino Mega: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Приятно снова видеть вас, ребята, здесь, в моем другом руководстве, здесь я собираюсь помочь вам создать простое приложение для супермаркета с использованием RFID RC-522 и Arduino с обработкой для создания простого графического интерфейса.
Примечание: не запускайте последовательный монитор Arduino во время выполнения кода обработки, поскольку произойдет конфликт портов, поскольку оба должны использовать один и тот же порт.
Тебе нужно:
- Arduino Mega или Arduino Uno (я использовал Mega)
- RFID-RC522
- 7 перемычек между мужчинами и женщинами
- Некоторые удостоверения личности (необязательно)
- Библиотека RFID (обязательно, ссылка ниже)
- Wamp сервер
- Обработка IDE 2.2.1 (не используйте больше)
- Библиотека BezierSQLib-0.2.0 для обработки (ссылка для скачивания ниже)
Затем загрузите приведенную ниже библиотеку RFID и добавьте ее в свою IDE Arduino, щелкнув Sketch-> Include Library-> Add. Zip Library в меню файла.
Шаг 1. Настройка Arduino и RFID RC-522 (физическое соединение)
просто подключите Arduino к RFID-RC522, как показано на изображении выше. Предупреждение: подайте только 3,3 В, иначе модуль сгорит
Распиновка для Uno / Nano и Mega
МОДУЛЬ RC522 Uno / Nano MEGASDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ НЕТ НЕТ GND GND GND RST D9 D8 3.3V 3.3V 3.3V
Шаг 2: Код Arduino.,
Скопируйте приведенный ниже код и загрузите его на свой Arduino.
/ * ВЫВОД: МОДУЛЬ RC522 Uno / Nano MEGA SDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ N / AN / A GND GND GND RST D9 D8 3.3V 3.3V 3.3V * / / * Включает стандартную библиотеку Arduino SPI * / #include / * Включить библиотеку RFID * / #include
/ * Определяем DIO, используемый для выводов SDA (SS) и RST (сброс). * /
#define SDA_DIO 9 #define RESET_DIO 8
/ * Создаем экземпляр библиотеки RFID * /
RFID RC522 (SDA_DIO, RESET_DIO); int reader = 0;
установка void ()
{Serial.begin (9600); / * Включить интерфейс SPI * / SPI.begin (); / * Инициализировать считыватель RFID * / RC522.init (); }
пустой цикл ()
{/ * Счетчик временных циклов * / byte i;
/ * Карта была обнаружена? * /
if (RC522.isCard ()) {/ * Если да, то получить его серийный номер * / RC522.readCardSerial ();
/ * Вывод серийного номера в UART * / for (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum, HEX); } Serial.print (","); Serial.print (считыватель ++); Serial.println (); } задержка (1000); }
Шаг 3: Настройка MySQL
- Установите Wamp-сервер для MySQL и настройте его для хранения данных (
- Запустите wamp serveropen MySQL console
- выберите базу данных
- Затем создайте таблицу для своих данных
создать таблицу rfid (ID int (8), token int (1), Name varchar (20), Amount int (4));
Теперь просмотрите эту ссылку, чтобы узнать, как получить значение вашего тега RFID, а затем используйте приведенный ниже код для вставки данных. Не забудьте заменить значение идентификатора значением вашего тега RFID.
вставить в значения rfid (3756178, 1, 'Pencil', 20);
используйте значение токена как 1, чтобы после чтения значения тега в первый раз оно автоматически изменилось на 2, не используйте 0 для значения токена при чтении карты, которая не вставлена в БД, она присвоит 0, а затем отобразит ее как Неизвестная карта..
Шаг 4: Настройка IDE обработки
- Загрузите и установите Processing IDE 2.2.1
- Извлеките указанный выше ZIP-файл в MyDocuments / Processing / Libraries.
- Теперь откройте IDE обработки и проверьте, правильно ли установлена библиотека, как на изображении выше.
- Затем скопируйте приведенный ниже код в обработку и назовите его самостоятельно.
import de.bezier.data.sql. *; import processing.serial. *; // импорт java.math. BigInteger;
// создано 2005-05-10 пользователем fjenett
// обновлен fjenett 20080605
MySQL dbconnection;
Строка s = ""; int Wheight = 700; int Wwidth = 1200; длинный ID; int токен; int Amount; int Всего = 0;
String a = {"NULL", "NULL"};
int end = 10; // число 10 - это ASCII для перевода строки (конец serial.println), позже мы будем искать это, чтобы разбить отдельные сообщения String serial; // объявляем новую строку с именем 'serial'. Строка - это последовательность символов (тип данных, известный как «char») Последовательный порт; Строка curr, prev, Name; PFont f;
установка void ()
{// размер (ширина, ширина); размер (700, 500); f = createFont ("Arial", 24, истина); // в этом примере предполагается, что вы // запускаете сервер mysql локально (на "localhost"). // // заменяем --username--, --password-- своей учетной записью mysql. // Строка user = "root"; Строка pass = ""; // имя используемой базы данных // String database = "IOT_Database"; // имя создаваемой таблицы String table = ""; // подключаемся к базе данных сервера localhost dbconnection = new MySQL (this, localhost, database, user, pass); порт = новый последовательный (это, Serial.list () [0], 9600); // инициализация объекта путем назначения порта и скорости передачи (должна соответствовать таковой для Arduino) port.clear (); // функция из библиотеки последовательного порта, которая выдает первое чтение, если мы начали чтение в середине строки из Arduino serial = port.readStringUntil (end); // функция, которая читает строку из последовательного порта до println, а затем присваивает строку нашей строковой переменной (называемой 'serial') serial = null; } void draw () {фон (255); textFont (f, 24); заполнить (0); текст («Общая сумма рупий:», 400, 400); текст (Всего, 585, 400); данные(); while (port.available ()> 0) {// пока есть данные, поступающие из последовательного порта, прочтите их и сохраните serial = port.readStringUntil (end); } если (серийный! = null) {prev = curr; curr = a [1]; а = разделить (серийный, ','); // новый массив (называемый 'a'), в котором значения хранятся в отдельных ячейках (разделенных запятыми, указанными в вашей программе Arduino) if ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Предыдущая", предыдущая); функция (); }}}
функция void ()
{if (dbconnection.connect ()) {// теперь считываем его обратно // dbconnection.query ("SELECT * from rfid where ID =" + a [0] + ""); в то время как (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); token = dbconnection.getInt («токен»); Amount = dbconnection.getInt («Сумма»); } если (токен == 0) {println ("Хорошо"); textFont (f, 54); заполнить (255, 0, 0, 160); текст («Обнаружен неизвестный объект», 50, 300); задержка (2000); } else if (token == 1) {Итого = Итого + Сумма; dbconnection.query ("update rfid set token = 2, где ID =" + a [0] + ""); println ("Хорошо"); textFont (f, 24); заполнить (255, 0, 0, 160); // текст («Предмет добавлен», 10, 30); задержка (1000); } else if (token == 2) {Total = Total-Amount; dbconnection.query ("update rfid set token = 1, где ID =" + a [0] + ""); println ("Хорошо"); textFont (f, 24); заполнить (255, 0, 0, 160); // текст («Элемент удален», 10, 30); задержка (1000); } else {} dbconnection.close (); } else {// соединение не удалось! }}
пустые данные ()
{int position = 100; if (dbconnection.connect ()) {dbconnection.query ("ВЫБРАТЬ * из RFID, где токен = 2"); while (dbconnection.next ()) {Имя = dbconnection.getString ("Имя"); Amount = dbconnection.getInt («Сумма»); textFont (f, 24); заполнить (0, 0, 255, 160); текст (ФИО, 10, должность); заполнить (0, 0, 0, 160); текст (Сумма, 215, позиция); позиция = позиция + 30; }} dbconnection.close (); }
Шаг 5: Запуск программы
Запустите программу, нажав кнопку запуска, не закрывайте всплывающее окно, закрытие остановит выполнение и запрос ниже для просмотра сохраненных данных в MySQL …
Шаг 6: Заключение
Я хотел бы поблагодарить вас за то, что прочитали мой учебник. Буду признателен, если вы сочтете это полезным и поставите лайк (избранное) или спросите меня о чем-нибудь, поскольку это поддерживает меня в выполнении этих инструкций. не стесняйтесь задавать любые вопросы, которые вам нужно знать …
Удачного кодирования Arduino…
Рекомендуемые:
Создайте простое приложение Hello World с нуля во Flutter: 7 шагов
Создайте базовое приложение "Hello World" с нуля во Flutter: Здравствуйте, ребята, я создал учебник по Flutter для начинающих. Если вы хотите начать разработку Flutter сейчас, это поможет вам Руководство по Flutter для начинающих
Приложение для Android, часть 1: заставка с использованием фрагментов / Kotlin: 5 шагов
Приложение для Android, часть 1: заставка с использованием фрагментов / Котлин: И снова здравствуйте, скорее всего, у вас есть "бесплатные" время дома из-за COVID19, и вы можете вернуться, чтобы проверить темы, которые вы хотели выучить в прошлом. Разработка приложений для Android - определенно одна из них для меня, и несколько недель назад я решил дать
Создайте простое приложение для своего смартфона (без программирования): 10 шагов
Создайте простое приложение для своего смартфона (кодирование не требуется): ОБНОВЛЕНИЕ: этот метод устарел, теперь есть различные другие способы создания приложения .. это может больше не работать. Мое первое опубликованное приложение доступно для загрузки в приложении для Android Рынок здесь. Ниже приводится краткое руководство о том, как практически любой
Доска для рисования со светодиодной подсветкой Bluetooth и приложение для iOS: 9 шагов (с изображениями)
Доска для рисования светодиодов Bluetooth и приложение для iOS: в этом руководстве вы сможете создать плату светодиодов Bluetooth, которая может рисовать изображения из созданного нами приложения для iPhone. В этом приложении пользователи смогут создать игру Connect 4, которая также будет отображаться на этой игровой доске. Это будет ч
Простое приложение IOS для модулей BLE: 4 шага
Простое приложение IOS для модулей BLE: в этом руководстве рассказывается, как создать приложение iOS с очень простыми функциями. Эта инструкция не будет проходить через весь процесс создания приложения BLE для iOS. Это даст только общий обзор некоторых важных элементов без