Оглавление:

Простое приложение для супермаркетов с использованием RFID RC-522 и Arduino Mega: 6 шагов
Простое приложение для супермаркетов с использованием RFID RC-522 и Arduino Mega: 6 шагов

Видео: Простое приложение для супермаркетов с использованием RFID RC-522 и Arduino Mega: 6 шагов

Видео: Простое приложение для супермаркетов с использованием RFID RC-522 и Arduino Mega: 6 шагов
Видео: #100. Работаем с Ардуино. Выпуск 2 2024, Ноябрь
Anonim
Простое приложение для супермаркетов с использованием RFID RC-522 и Arduino Mega
Простое приложение для супермаркетов с использованием RFID RC-522 и Arduino Mega

Приятно снова видеть вас, ребята, здесь, в моем другом руководстве, здесь я собираюсь помочь вам создать простое приложение для супермаркета с использованием RFID RC-522 и Arduino с обработкой для создания простого графического интерфейса.

Примечание: не запускайте последовательный монитор Arduino во время выполнения кода обработки, поскольку произойдет конфликт портов, поскольку оба должны использовать один и тот же порт.

Тебе нужно:

  1. Arduino Mega или Arduino Uno (я использовал Mega)
  2. RFID-RC522
  3. 7 перемычек между мужчинами и женщинами
  4. Некоторые удостоверения личности (необязательно)
  5. Библиотека RFID (обязательно, ссылка ниже)
  6. Wamp сервер
  7. Обработка IDE 2.2.1 (не используйте больше)
  8. Библиотека BezierSQLib-0.2.0 для обработки (ссылка для скачивания ниже)

Затем загрузите приведенную ниже библиотеку RFID и добавьте ее в свою IDE Arduino, щелкнув Sketch-> Include Library-> Add. Zip Library в меню файла.

Шаг 1. Настройка Arduino и RFID RC-522 (физическое соединение)

Настройка Arduino и RFID RC-522 (физическое соединение)
Настройка 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

Установка MySQL
Установка MySQL
  1. Установите Wamp-сервер для MySQL и настройте его для хранения данных (
  2. Запустите wamp serveropen MySQL console
  3. выберите базу данных
  4. Затем создайте таблицу для своих данных

создать таблицу 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 обработки

Настройка IDE обработки
Настройка IDE обработки
  1. Загрузите и установите Processing IDE 2.2.1
  2. Извлеките указанный выше ZIP-файл в MyDocuments / Processing / Libraries.
  3. Теперь откройте IDE обработки и проверьте, правильно ли установлена библиотека, как на изображении выше.
  4. Затем скопируйте приведенный ниже код в обработку и назовите его самостоятельно.

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…

Рекомендуемые: