Оглавление:
- Шаг 1: Детали
- Шаг 2: Сборка
- Шаг 3: Программирование Arduino Yun
- Шаг 4: установка MySQL
- Шаг 5: Установка PHP5
- Шаг 6: Установка Conector MySQL для PHP5 и Python
- Шаг 7: коды
- Шаг 8: файлы Python
- Шаг 9: Файлы PHP
- Шаг 10: Наконец, программа Arduino YN
- Шаг 11: С Новым годом
Видео: Управление доступом Arduino YÚN с помощью MySQL, PHP5 и Python: 11 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Привет друзья!
Что ж, как известно, в сентябре состоится премьера нового щита Arduino, Arduino YUN. У этого маленького друга есть встроенная система Linux, с которой мы можем запускать все, о чем вы можете подумать (по крайней мере, пока). Хотя об этой новой плате очень мало информации, с отступлением в руководстве, которое предоставляет страницу Arduino (ссылка на которую будет позже), плюс небольшое знание многих Linux, можно выполнить крупный проект Control Access. На этот раз я объясню, как сделать этот проект, но достаточно подробно для всего нашего Arduino. Это работает, благодаря серверу базы данных MySQL, который будет размещен в нашем YUN, эта база данных будет хранить две таблицы, одну для пользователей, связанных с конкретным RFID, и другую таблицу для хранения записей всех карт, которые прошли через наш считыватель. Пока мы используем языки программирования PHP и скрипты Python для выполнения некоторых базовых задач и работы с нашими данными. Кроме того, из-за накладных расходов на оборудование мы используем считыватель ID-20 рядом с последовательным ЖК-дисплеем из 16 символов, а также светодиод RGB, который будет нашим информатором. Мы можем использовать этот контроль доступа для всего, что мы можем придумать, изменить и добавить реле или другую идею. Его можно использовать на чем угодно, где у вас есть карточки и вы хотите записать. Напомним, что этот документ является бесплатной публикацией, коммерческое использование и внесение изменений в него не допускается. Я надеюсь, что это более обширный путь к электронике с открытым исходным кодом. Итак, переходим к следующему этапу, партиям нужна!
Шаг 1: Детали
Для реализации этого проекта нам необходимы: * Arduino YUN https://www.sparkfun.com/products/12053 $ 71,95 * Считыватель RFID ID-20 (125 кГц) https://www.sparkfun.com/products/11828 34,95 долл. США * RFID-считыватель Breakout https://www.sparkfun.com/products/8423 0,95 долл. США * Базовый ЖК-дисплей 16x2 символов 5 В https://www.sparkfun.com/products/790 16,95 долл. США * Рюкзак с ЖК-дисплеем с последовательным подключением https:// www. sparkfun.com/products/258 16,95 долл. США * LED RGB 5 мм https://www.sparkfun.com/products/105 1,95 долл. США * Зуммер https://www.sparkfun.com/products/7950 1,95 долл. США * Штырь и провод разъема Somes Приблизительно 5 долл. США. Всего, если покупать в магазине Sparkfun, все будет около 150 долларов. Если вы живете в Латинской Америке, я бы порекомендовал покупать запчасти на www.olimex.cl, это очень хороший чилийский магазин электроники.
Шаг 2: Сборка
Несколько подключений сделать, изложив вкратце объясню. Для RGB-светодиода вывод красного светодиода должен быть на выводе 9 Arduino, вывод зеленого светодиода должен подключаться к выводу 8 Arduino, а вывод синего светодиода должен быть на выводе 7 Arduino. Для ID-20 вы должны подключить следующие контакты, как указано в таблице в соответствующем порядке, считыватель контактов к контакту Arduino: контакт ID-20 к контакту Arduino ID-20 / Arduino PIN 1 - GND PIN 2 - 5V PIN 7 - GND PIN 9 - PIN 10 PIN 10 - ЗУММЕР PIN 11 - 5V И, наконец, для последовательного разъема ЖК-дисплея потребуются только выводы 5v и GND Arduino, в то время как вывод последовательного RX ЖК-дисплея идет на вывод 11 Ардуино.
Шаг 3: Программирование Arduino Yun
Для создания нашего проекта нам нужно начать с части программного обеспечения, установить некоторые файлы на наш Arduino opkg Yun:
- Сервер MySQL
- PHP5
- MySQLdb для Python 2.7
- Модификация PHP5 на MySQL
Напомним, что по умолчанию в Bridge установлен Python 2.7, поэтому вам не нужно устанавливать никаких обновлений для этого. Начните регистрацию SSH, осмелитесь войти в нашу Arduino Yun, как только вы их запустите, введите следующую команду, чтобы обновить список приложений opkg:
обновление opkg
Шаг 4: установка MySQL
Теперь мы установим установку и настройку MySQL Server, наберите в консоли следующие команды:
- opkg установить libpthread libncurses libreadline mysql-server
- sed -i, ^ datadir. *, datadir = / SRV / mysql /, g '/etc/my.cnf
- sed -i, ^ tmpdir. *, tmpdir = / tmp /, g '/etc/my.cnf
- mkdir -p / SRV / MySQL
- mysql_install_db –-force
- /etc/init.d/mysqld start
- /etc/init.d/mysqld включить
- mysqladmin -u пароль root 'tu-nueva-clave'
После завершения ввода наших кодов и запуска сервера MySQL вы должны настроить базу данных, с которой будут работать. Но прежде чем начать набирать коды, нам нужно разобраться в полях, в которых хранится наша таблица. Доска должна состоять из 5 курсов, «id», «name», «name», «email», «rfid», чтобы продавать некоторые из них, я дам краткое объяснение их использования.
- 'id': будет поле или атрибут int столбец, который сообщит нам номер, присвоенный идентификатору пользователя, этот номер назначается той же базой данных и будет способом индексировать наши записи.
- 'nombre': столбец атрибутов будет 'varchar' может обозначаться именем, с которым идентифицирован наш пользователь карты.
- 'apellido': столбец атрибутов будет 'varchar' может обозначаться фамилией, с которой связан наш пользователь.
- «correo»: это столбец атрибутов «varchar», который будет содержать электронную почту связанного пользователя.
- 'rfid': это столбец атрибута 'varchar', который будет содержать код используемой RFID-карты.
(Я буду использовать переменные на испанском, потому что это мой родной язык и мне нравится c:) Теперь мы можем без проблем настроить нашу базу данных, поэтому мы создаем MySQL-вызов arduino. Вы должны ввести следующий код:
mysqladmin -u root -p создать arduino
Просим пароль, который мы ввели ранее при установке, мы отправим его для завершения создания базы. Закончив все это, вводим запрос в MySQL, в консоли следует набрать следующий код:
mysql -root -p
Снова просим пароль, вы должны отправить его снова. Оказавшись внутри команды консоли MySQL, мы должны увидеть указатель ('mysql>') готовым к вводу. Первое, что мы сделаем, это переместим базу для данных arduino, чтобы с ней работали. Это делается путем ввода следующей команды в консоли MySQL:
ИСПОЛЬЗУЙТЕ arduino
Мы полагаем, что таблица имен usuariosrfid в базе данных будет использоваться для этого проекта, введите этот код в консоль MySQL:
- СОЗДАТЬ ТАБЛИЦУ `usuariosrfid` (
- `id` int (255) NOT NULL AUTO_INCREMENT,
- varchar (300) NOT NULL,
- varchar (300) NOT NULL,
- varchar (300) NOT NULL,
- `rfid` varchar (300) NOT NULL,
- ПЕРВИЧНЫЙ КЛЮЧ (`id`)
- ) ENGINE = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 0;
* Помните, что при нажатии клавиши ENTER в конце командной строки в консоли MySQL он не запустится, пока вы не найдете ';' Следовательно, в конце кода стоит ';' Чтобы завершить установку и настройку MySQL, мы заполняем несколько тестовых полей в нашей базе. Введите следующие строки:
- ВСТАВИТЬ `usuariosrfid` (` id`, `nombre`,` apellido`, `correo`,` rfid`) ЗНАЧЕНИЯ
- (1, 'Педро', 'Суарес', '[email protected]', '1234a-12345-b-123c'),
- (4, «Матиас», «Лопес», «[email protected]», «987a-9876b-987c»);
Теперь продолжите создание таблицы «ControlUsuarios», в которой будут храниться все коды RFID, передаваемые считывателем. Эта таблица состоит из 3 полей: «id», «rfid», «date».
- 'id' - это поле или столбец атрибута int, который будет содержать идентификатор каждой записи для индексации.
- Атрибут 'rfid' - это столбец 'varchar', содержащий код метки RFID, прочитанный считывателем.
- 'date' - это столбец атрибута 'varchar', который будет содержать дату чтения карты.
Чтобы создать таблицу ControlUsuarios, мы вводим следующий код в консоль MySQL:
- СОЗДАТЬ ТАБЛИЦУ `ControlUsuarios` (
- `id` int (255) NOT NULL AUTO_INCREMENT,
- `rfid` varchar (300) NOT NULL,
- varchar (300) NOT NULL,
- ПЕРВИЧНЫЙ КЛЮЧ (`id`)
- ) ENGINE = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 0;
Наконец, введите "exit;" в консоли, чтобы выйти из MySQL Query, и вернуться в SHH, чтобы мы могли начать с PHP5.
Шаг 5: Установка PHP5
Продолжите установку и настройку PHP5. Эта установка проще, чем MySQL, поэтому она им ничего не должна стоить. Сначала установите пакет opkg из загрузки и установки Arduino Yun, поэтому введите в консоли SSH Arduino следующее:
opkg установить php5 php5-cgi
После загрузки и установки PHP5 на нашем Arduino Yun, поэтому мы настроили корневой файл uHTTPd, http-сервер, который обеспечивает Arduino по умолчанию, я рекомендую вам использовать только этот http-сервер, потому что он более универсален и доступен в конфигурации, а не Apache или Lighttpd более сложны настроить, когда вы новичок в этой области. Чтобы настроить это, используйте редактор файлов 'vi' SSH, для этого у вас должны быть минимальные знания, чтобы использовать этот редактор. Начните вводить этот код в консоли, чтобы получить доступ к файлу настроек uHTTPd:
vi / и т. д. / config / uhttpd
Нажмите 'i', чтобы отредактировать файл, затем перейдите к строке кода, которую вы написали '# list интерпретатор. "php = / usr / bin / php-cgi" '. Вы должны удалить символ '#' в начале строки, затем нажать клавишу escape (клавиша 'ESC'), когда вы будете готовы, вы должны ввести команду ': wq', чтобы сохранить файл и выйти из. Вы должны перезапустить сервер uHTTPd, для этого вы должны ввести в командной консоли SSH следующий код:
/etc/init.d/uhttpd перезапуск
Шаг 6: Установка Conector MySQL для PHP5 и Python
Продолжите установку и настройку модулей для подключения базы данных MySQL с PHP и Python. Начнем с коннектора PHP. Введите следующий код:
- opkg установить php5-mod-mysql
- sed -i 's,; extension = mysql.so, extension = mysql.so, g' /etc/php.ini
Когда все будет готово, не потребуется перезапускать сервер uHTTPd, готовый к немедленному использованию. Теперь продолжите работу с коннектором для Python, для этого вы должны ввести следующий код:
opkg установить python-mysql
На этом последнем шаге мы подготовим нашу Arduino Yun для нашего проекта с картридером ID-20 RFID 125 кГц. Завершите эту часть отзывом о том, что мы сделали:
- Мы установили сервер MySQL на наш Arduino Yun, затем настроили его, закончив вставкой тестовых данных.
- Установите дополнение PHP на наш сервер.
- Мы закончили установку и настройку MySQL Connector для PHP и Python.
Шаг 7: коды
В этой области мы обсуждаем программные коды, которые будут использоваться в этом проекте. Мы уходим с кодом Python, который разделен на два файла: comprobar.py, который будет подключаться к базе данных и искать Yun Arduino, если результат находится в нем, и файл control. py ', отвечающий за запись любой карты, считываемой считывателем ID-20, независимо от того, находится ли она в базе данных зарегистрированных пользователей. Затем перейдите к описанию файлов PHP: «consultaRelacion.php», «consultaControl.php», «index.php», «modificar2.php», «modificar.php», «borrar.php», «delete2». php ',' guardar.php '' consulta.php ',' configuracion.php '. Для этих файлов redundaremos оба потому, что они просты для понимания. Наконец, закончите с кодом, который станет нашим скетчем Arduino.
Шаг 8: файлы Python
Как упоминалось ранее, наши сценарии Python работали с библиотекой или классом MySQLdb, который уже был установлен ранее. Начните с создания файла с.py под названием comprobar.py в нашем редакторе, я рекомендую использовать эти кейсы для программирования на Python, редактор Sublime Text 3, который вы можете скачать на их сайте www.sublimetext.com. Начнем с импорта библиотеки для подключения к нашей базе данных MySQL, библиотеки sys, которая позволит нам общаться с нашим Arduino Yun:
- импортировать MySQLdb
- import sys
После импорта этих библиотек или классов мы добавляем в ваш код переменные, которые будут данными подключения из нашей базы данных MySQL, bone:
- host = "127.0.0.1" # соответствует адресу нашего сервера MySQL.
- user = "your-seat" # является пользователем нашей базы данных.
- passw = "your-password" используется для пароля пользователя. base = "arduino" # Это имя используемой базы данных.
Теперь начнем с базовых кодов скрипта:
- в то время как True:
- db = MySQLdb.connect (хост, пользователь, пароль, база)
- cur = db.cursor ()
- resultado = cur.execute ("" "ВЫБРАТЬ * ИЗ usuariosrfid ГДЕ rfid НРАВИТСЯ% s ORDER BY id" "", (sys.argv [1],))
- если (resultado == 1):
- печать 1
- sys.exit (1)
- еще:
- печать 2
- sys.exit (1)
Если мы понимаем, что в суждении 'cur.execute result = ("" "SELECT * FROM WHERE rfid usuariosrfid LIKE% s ORDER BY id" "" (sys.argv [1]))' команда для выполнения нашего запроса сравните переменную '(sys.argv [1])', который представляет собой код с RFID-карты Arduino со всеми данными поля 'rfid', таблица 'usuariosrfid', которая при нахождении кода равенства из arduino и кодов or, хранящихся в базе данных, будет вернуть 1, если это не так и нет равенства между кодом от Arduino и некоторой базы, мы вернем 2. Эти числа будут получены Arduino. Переходим к следующему файлу control.py. Этот файл работает так же, как и выше, только сохраняет послевкусие на столе. Эти сохраненные записи будут собираться считывателем ID-20, подключенным к нашему Arduino Yun, поэтому мы можем сохранить всех зарегистрированных пользователей, которые используют наш считыватель RFID.
Шаг 9: Файлы PHP
Затем приступайте к файлам. 'Php', который будет хранить папку с нашего сервера, для этого помните, что необходимо, чтобы эти файлы, когда они были готовы, были сохранены в ските нашего проекта, который автоматически генерирует IDE Arduino, вам также нужно помнить, хотя я ожидаю Это то, что когда мы подходим к нашему скетчу Arduino Yun, мы загружаем его через Wi-Fi, поэтому я оставляю его на той же странице руководства Arduino, www.arduino. cc / en / Guide / Arduino Yun # toc14, в котором подробно рассказывается об этом и о том, как вы должны использовать подготовленную карту MicroSD для этого типа проекта, где файлы должны храниться на сервере. Файлы PHP будут иметь следующие названия: 10 «consultaRelacion.php», «consultaControl.php», «index.php», «modificar2.php», «modificar.php», «borrar.php», «borrar2.php», «guardar». php '' consulta.php ',' configuracion.php ', который будет связан гиперссылкой с другим, чтобы основное меню всегда работало и было доступно. Просто объясните файл configuracion.php, который работает как соединитель с нашей базой данных. В нашем редакторе мы добавляем в файл следующий код:
- <? php
- // Сервер данных и база данных
- $ server = "локальный хост";
- $ username = "ваше место";
- $ password = "пароль";
- $ database_name = "ардуино";
Это данные, которые необходимо подключить к нашей базе данных в Arduino, они будут такими же, как мы используем в наших скриптах Python. Завершаем программирование оператора подключения, который использовал наш скрипт:
- $ conexion = mysql_connect ($ server, $ username, $ password) или die ("Problemas al tratar de establecer la conexion");
- $ bd_sel = mysql_select_db ($ database_name) или die ("Проблемы выбора базы данных");
- ?>
Остальные файлы прилагаются.
Шаг 10: Наконец, программа Arduino YN
Мы подошли к основной части этого руководства, программированию нашего Arduino Yun, никакие детали не выделят весь код, так как он довольно обширный, упомяните только следующие важные моменты:
- Код состоит из 6 основных функций и 13 второстепенных функций, которые предназначены только для использования последовательного ЖК-дисплея.
- Импортируются только три класса SoftwareSerial.h, с помощью которых мы будем вводить Serial Attached для подключения к ID-20 и последовательному ЖК-дисплею, основной класс Bridge.h, с помощью которого мы будем устанавливать соединение между Linux и ATMEGA32U4, а класс «Process.h» будет служить для процессов консультаций в Linux.
- Определите только три контакта, которые используют остальные.
Код прилагается
Шаг 11: С Новым годом
Я продолжаю это тщательно, чтобы служить вам и помочь вам получить больше информации об Arduino Yun. Оставьте все файлы прикрепленными к концу. Для носителей испанского языка я оставляю это руководство, но на испанском языке с необходимыми файлами. Желаю вам счастливого Нового года, желаю вам удачи и успехов в этом 2014 году!
Рекомендуемые:
ДВИГАТЕЛЬ ПОСТОЯННОГО ТОКА Управление жестами рук и управление скоростью и направлением с помощью Arduino: 8 шагов
ДВИГАТЕЛЬ ПОСТОЯННОГО ТОКА Управление жестами рук, скорость и направление с помощью Arduino: в этом руководстве мы узнаем, как управлять двигателем постоянного тока с помощью жестов рук с помощью Arduino и Visuino. Посмотрите видео! Также ознакомьтесь с этим: Учебное пособие по жестам руки
Управление яркостью Управление светодиодами на основе ШИМ с помощью кнопок, Raspberry Pi и Scratch: 8 шагов (с изображениями)
Управление яркостью Управление светодиодами на основе ШИМ с помощью кнопок, Raspberry Pi и Scratch: я пытался найти способ объяснить своим ученикам, как работает ШИМ, поэтому я поставил себе задачу попытаться управлять яркостью светодиода с помощью 2 кнопок - одна кнопка увеличивает яркость светодиода, а другая - затемняет. Чтобы запрограммировать
Управление устройствами с помощью голосовых команд с помощью NodeMCU: 7 шагов (с изображениями)
Управление устройствами с помощью голосовых команд с помощью NodeMCU: я просто хочу сказать всем привет, я впервые пишу обучающий проект. Английский не является моим родным языком, поэтому я постараюсь изложить его как можно короче и понятнее. Управление устройствами с помощью голосовых команд - вещь не странная
8 Управление реле с помощью NodeMCU и ИК-приемника с помощью Wi-Fi, ИК-пульта ДУ и приложения для Android: 5 шагов (с изображениями)
8 Управление реле с помощью NodeMCU и ИК-приемника с помощью Wi-Fi и ИК-пульта дистанционного управления и приложения для Android: управление 8 релейными переключателями с помощью nodemcu и ИК-приемника через Wi-Fi, ИК-пульт и приложение для Android. ИК-пульт работает независимо от Wi-Fi-соединения. ЗДЕСЬ
Стиль iPhone на любом сотовом телефоне с сенсорным экраном и доступом в Интернет: 6 шагов
Стиль iPhone на любом сотовом телефоне с сенсорным экраном и доступом в Интернет: здесь я расскажу, как настроить домашнюю страницу LG Voyager на соответствующую страницу myphonetoo для этого эффекта. Это лучше всего работает на телефоне с сенсорным экраном. Разработан веб-сайт, который выглядит как iPhone, все ссылки ведут на разработанные