Съдържание:
- Стъпка 1: Частите
- Стъпка 2: Сглобяването
- Стъпка 3: Програмиране на Arduino Yun
- Стъпка 4: Инсталиране на MySQL
- Стъпка 5: Инсталиране на PHP5
- Стъпка 6: Инсталиране на Conector MySQL за PHP5 и Python
- Стъпка 7: Кодове
- Стъпка 8: Файлове Python
- Стъпка 9: Файлове PHP
- Стъпка 10: И накрая, програмата на Arduino YÚN
- Стъпка 11: Честита Нова година
Видео: Контролирайте достъпа на Arduino YÚN с MySQL, PHP5 и Python: 11 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Здравейте приятели!
Е, както знаете, през септември новият премиерен щит на Arduino, Arduino YUN. Този малък приятел има вградена система за Linux, с която можем да изпълняваме всичко, за което се сетите (поне досега). Въпреки че има много малко информация за тази нова платка, с напускане в ръководството, което предоставя страницата Arduino (която ще се свърже по -късно), плюс малко познания за много Linux, може да се извърши голям проект с контролен достъп. Този път ще обясня как да направя този проект, но по начин, достатъчен конкретно през нашия Arduino. Това работи, благодарение на сървър на база данни MySQL, който ще се установи в нашия YUN, тази база данни ще съхранява две таблици, една за потребители, свързани с конкретен RFID, и друга таблица, за да съхранява записи на всички карти, които са преминали през нашия четец. Докато използваме езици за програмиране PHP и Python скриптове, за да изпълняваме някои основни и да работим с нашите данни. Освен това, хардуерните режийни разходи, ние използваме четец ID-20 до сериен LCD дисплей от 16 знака, плюс RGB LED, който ще бъде информаторът ни. Можем да използваме този контрол на достъпа всичко, което ни хрумне, модифицираме и добавим реле или друга идея. Може да се използва на всичко, където имате карти и искате запис. Припомнете, че този документ е безплатна публикация, не се допуска търговска употреба и изключени модификации. Надявам се това да е по -обширен път към електрониката с отворен код. Така че преминаваме към следващата стъпка, от която страните се нуждаят!
Стъпка 1: Частите
За да направим този проект, трябва да имаме: * Arduino YUN https://www.sparkfun.com/products/12053 $ 71,95 * * RFID Reader ID-20 (125 kHz) https://www.sparkfun.com/products/11828 $ 34,95 * Пробив на RFID четец https://www.sparkfun.com/products/8423 $ 0,95 * Основен 16x2 символен LCD 5V https://www.sparkfun.com/products/790 $ 16,95 * LCD раница с активиран сериен интерфейс 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 * Сомерен заглавен щифт и проводник $ 5,00 приблизително. Като цяло, ако купувате в магазина Sparkfun, всичко ще бъде близо 150 долара. Ако живеете в Латинска Америка, бих препоръчал закупуването на частите в www.olimex.cl, е много добър чилийски магазин за електроника.
Стъпка 2: Сглобяването
Няколко връзки, които трябва да се направят, определянето накратко обяснява. За RGB LED, червеният светодиоден щифт трябва да е на щифт 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- BUZZER PIN 11- 5V И накрая, за серийния LCD конектор ще са необходими само 5v и GND щифтове на Arduino, докато LCD Serial RX щифтът отива на пин 11 на Arduino.
Стъпка 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-сървър
- sed -i 's, ^datadir.*, datadir =/srv/mysql/, g' /etc/my.cnf
- sed -i 's, ^tmpdir.*, tmpdir = /tmp /, g' /etc/my.cnf
- mkdir -p /srv /mysql
- mysql_install_db –- сила
- /etc/init.d/mysqld старт
- /etc/init.d/mysqld активиране
- mysqladmin -u root парола 'tu-nueva-clave'
След като приключите с въвеждането на нашите кодове и стартирате MySQL сървъра, трябва да конфигурирате базата данни, която ще манипулира. Но преди да започнем да въвеждаме кодовете, трябва да разберем полетата, които носят нашата таблица. Бордът ще се състои от 5 курса, „id“, „name“, „name“, „email“, „rfid“, за да пусне на пазара някои от тях. Ще дам кратко обяснение за тяхното използване.
- 'id': ще бъде полето или атрибута int колона, която ще ни каже номера, присвоен на User ID, този номер е присвоен от същата база данни и ще бъде начинът да индексираме нашите записи.
- 'nombre': колоната с атрибути ще бъде 'varchar' може да бъде обозначена с името, с което е идентифициран потребителят на нашата карта.
- 'apellido': колоната с атрибути ще бъде 'varchar' може да бъде обозначена с фамилното име, с което е свързан нашият потребител.
- 'correo': е колоната с атрибути 'varchar', която ще съдържа имейла на свързания потребител.
- 'rfid': е колоната с атрибути 'varchar', която ще съдържа кода на RFID картата, която използвате.
(Ще използвам променливите на испански, защото е моят роден език и харесвам c:) Сега можем да конфигурираме нашата база данни без проблеми, затова създаваме „arduino“извикване MySQL. Трябва да въведете следния код:
mysqladmin -u root -p създайте arduino
Ние искаме паролата, която въведохме по -рано в инсталацията, ще я изпратим, за да завършим създаването на базата. Завършихме всичко това, въвеждаме заявката към MySQL, трябва да въведете следния код в конзолата:
mysql -root -p
Отново искаме паролата, трябва да я изпратите отново. След като влезем в конзолната команда на MySQL, показалецът ('mysql>') трябва да изглежда готов за въвеждане. Първото нещо, което ще направим, е да преместим базата за „arduino“данни, за да работят върху нея. Това става чрез въвеждане на следната команда в MySQL конзолата:
ИЗПОЛЗВАЙТЕ arduino
Вярваме, че таблицата с имена „usuariosrfid“в базата данни ще се използва за този проект, въведете този код в MySQL конзолата:
- СЪЗДАЙТЕ ТАБЛИЦА `usuariosrfid` (
- `id` int (255) NOT NULL AUTO_INCREMENT,
- `nombre` varchar (300) НЕ НУЛ,
- `apellido` varchar (300) НЕ НУЛ,
- `correo` varchar (300) NOT NULL,
- `rfid` varchar (300) НЕ НУЛ,
- ОСНОВЕН КЛЮЧ (`id`)
- ) ДВИГАТЕЛ = МАЙЗАМ ПО УМОЛЧЕНИЕ ЧАРСЕТ = латински1 AUTO_INCREMENT = 0;
* Не забравяйте, че когато натиснете клавиша ENTER в края на командния ред в MySQL конзолата, той няма да работи, докато не намерите ';' Следователно в края на кода е ';' За да завършим инсталацията и конфигурацията на MySQL, попълваме някои тестови полета в нашата база. Въведете следните редове:
- ВМЕСТВАНЕ НА `usuariosrfid` (` id`, `nombre`,` apellido`, `correo`,` rfid`) СТОЙНОСТИ
- (1, „Pedro“, „Suarez“, „[email protected]“, „1234a-12345-b-123c“),
- (4, „Matias“, „Lopez“, „[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) НЕ НУЛ,
- `fecha` varchar (300) НЕ НУЛ,
- ОСНОВЕН КЛЮЧ (`id`)
- ) ДВИГАТЕЛ = МАЙЗАМ ПО УМОЛЧЕНИЕ ЧАРСЕТ = латински1 AUTO_INCREMENT = 0;
Накрая въведете „exit;“в конзолата, за да излезете от MySQL Query и да се върнете към SHH, за да започнем с PHP5.
Стъпка 5: Инсталиране на PHP5
Продължете с инсталирането и конфигурирането на PHP5. Тази инсталация е по -лесна от MySQL, така че не бива да им струва нищо. Първо инсталирайте пакета opkg от изтеглянето и инсталирането на Arduino Yun, така че въведете в SSH конзолата на Arduino това:
opkg инсталирайте php5 php5-cgi
След като изтеглите и инсталирате PHP5 на нашия Arduino Yun, така че конфигурирахме root файла uHTTPd, http сървъра, който носи Arduino по подразбиране, препоръчвам ви да използвате само този http сървър, защото той е по -гъвкав и достъпен по конфигурация, а не Apache или Lighttpd са по -трудни да настроите, когато сте нови в тази област. За да конфигурирате това, използвайте файловия редактор 'vi' SSH, за това трябва да имате минимални познания, за да използвате този редактор. Започнете да въвеждате този код в конзолата за достъп до файла с настройки uHTTPd:
vi/etc/config/uhttpd
Натиснете 'i', за да редактирате файла, след това отидете до реда с код, който сте написали '# списъчен интерпретатор. "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 125khz. Завършете тази част с обратна връзка за това, което сме направили:
- Инсталирахме MySQL сървъра на нашия Arduino Yun, след което го конфигурирахме, завършвайки с вмъкване на тестови данни.
- Инсталирайте PHP допълнението на нашия сървър.
- Приключихме с инсталирането и конфигурирането на MySQL Connector както за PHP, така и за Python.
Стъпка 7: Кодове
В тази област обсъждаме програмните кодове, които ще се използват за този проект. Оставяме с кода на Python, който е разделен на два файла: 'comprobar.py', който ще се свърже с базата данни и ще търси Yun Arduino, ако резултатът е в нея, и контрола на файла '. py ', отговорен за запис на всяка карта, която е прочетена от четеца ID-20, независимо дали в базата данни на регистрирани потребители. След това продължете с описанието на PHP файловете, които са: 'consuRelacion.php', 'consuControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'delete2. php ',' guardar.php '' advice.php ',' configiguracion.php '. И за тези файлове, и за резервните, тъй като те са лесни за разбиране. Накрая завършете с кода, който ще се покачи като нашата скица на Arduino.
Стъпка 8: Файлове Python
Както бе споменато по -рано, нашите скриптове на Python функционираха с библиотеката или класа „MySQLdb“, който вече е инсталиран по -рано. Започнете, като създадете файл с „.py“, наречен „comprobar.py“в нашия редактор, препоръчвам да използвате тези случаи за програмиране в Python, редактора Sublime Text 3, който можете да изтеглите на техния уебсайт www.sublimetext.com. Нека започнем с импортирането на библиотеката, за да се свържем с нашата база данни MySQL, библиотеката „sys“, която ще ни позволи да комуникираме с нашия Arduino Yun:
- импортиране на MySQLdb
- import sys
След като импортирате тези библиотеки или класове, ние добавяме променливи към вашия код, които ще бъдат данните за връзката от нашата база данни MySQL, кост:
- host = "127.0.0.1" # съответства на адреса на нашия MySQL сървър.
- user = "your-seat" # е потребителят на нашата база данни.
- passw = "your-password" е за паролата на потребителя. base = "arduino" # Това е името на базата данни, която използвате.
Сега започнете с кодовете на базовия скрипт:
- докато е вярно:
- db = MySQLdb.connect (хост, потребител, пропуск, база)
- cur = db.cursor ()
- resultado = cur.execute ("" "SELECT * FROM usuariosrfid WHERE rfid КАТО %s ORDER BY id" "", (sys.argv [1],))
- ако (резултат == 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 и / или кодовете, съхранявани в базата данни, ще връщане 1, ако това не е вярно и няма равенство между кода от arduino и част от базата, ние ще върнем 2. Тези числа ще бъдат получени от Arduino. Продължаваме със следващия файл 'control.py. Този файл работи по същия начин, както по-горе, като запазва само послевкус на маса, тези записани записи се събират от четеца ID-20, свързан с нашия Arduino Yun, така че можем да запазим всички регистрирани потребители, които използват нашия RFID четец.
Стъпка 9: Файлове PHP
След това продължете с файловете. "Php", който ще запази папката от нашия сървър, за да направите това, не забравяйте, че е необходимо тези файлове, след като са готови, да бъдат запазени в скита на нашия проект, който автоматично генерира IDE Arduino, вие също трябва да запомните, въпреки че очаквам това, че когато отидем до нашата скица на Arduino Yun, качваме през Wi -Fi, така че я оставям на същата страница ръководството Arduino, www.arduino. cc / bg / Guide / Arduino Yun # toc14, което обяснява повече за него и как трябва да отидете подготвени MicroSD карта за този тип проекти, където файловете трябва да се съхраняват на сървъра. PHP файловете ще бъдат 10 'consuRelacion.php', 'consuControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'borrar2.php', 'guardar. php '' consul.php ',' configiguracion.php ', който ще бъде хипервръзка към другия, за да поддържа основно меню, винаги работещо и достъпно. Просто обяснете файла „configiguracion.php“, който функционира като съединител с нашата база данни. В нашия редактор ние планираме следния код във файла:
- <? php
- / / Сървър за данни и база данни
- $ server = "localhost";
- $ username = "your-seat";
- $ password = "парола";
- $ database_name = "arduino";
Това са данните, които трябва да се свържат с нашата база данни в arduino, ще бъдат същите, които използваме в нашите скриптове на Python. Завършете програмирането на оператора connect, който използва нашия скрипт:
- $ conexion = mysql_connect ($ сървър, $ потребителско име, $ парола) или умрете ("Problems al tratar de establecer la conexion");
- $ bd_sel = mysql_select_db ($ database_name) или умира ("Проблеми, избрани от базата данни");
- ?>
Другите файлове са прикачени.
Стъпка 10: И накрая, програмата на Arduino YÚN
Стигнахме до основната част на този урок, програмирайки нашия Arduino Yun, никакви подробности няма да подчертаят целия код, тъй като е доста обширен, само споменете следните важни моменти:
- Кодът се състои от 6 основни функции и 13 вторични функции, които са само поддръжка за използването на серийния LCD.
- Да бъдат импортирани само три класа „SoftwareSerial.h“, с които ще въведем Serial Attached, за да се свържем с ID-20 и Serial LCD, основният клас „Bridge.h“, с който ще осъществим връзката между Linux и ATMEGA32U4, и клас 'Process.h' ще служат за консултационни процеси в Linux.
- Определете само три пина, които използват други, за да бъдат безплатни.
Кодът е приложен
Стъпка 11: Честита Нова година
Продължавам внимателно това, за да ви обслужа и да ви помогна да получите повече информация за Arduino Yun. Оставете всички файлове прикачени до края. За говорителите на испански език оставям този урок, но на испански с необходимите файлове. Надявам се да имате щастлива нова година, да й се насладите и успех тази 2014!
Препоръчано:
Контрол на достъпа до храна за котки (ESP8266 + серво мотор + 3D печат): 5 стъпки (със снимки)
Контрол на достъпа до котешка храна (ESP8266 + сервомотор + 3D печат): Този проект преминава през процеса, който използвах за създаването на автоматизирана купа за котешка храна за моята възрастна котка с диабет Chaz. Вижте, той трябва да закуси, преди да си вземе инсулин, но често забравям да си взема ястието с храна, преди да си легна, което спо
Light Jewel ✽ Контролирайте вашата LED лента без Arduino и код: 5 стъпки (със снимки)
Light Jewel ✽ Контролирайте вашата LED лента без Arduino и код: Това е интелигентна лампа, която променя яркостта чрез сгъване на горната част. Концепция: Това е удобна за потребителя лампа за всеки, който обича да чете в спокойна обстановка. Опитайте се да си представите хора, седнали на бюрото до прозорец с някоя готина марка
Нощен превключвател Arduino (контролирайте усилвателя за китара с Arduino): 10 стъпки (със снимки)
Arduino Footswitch (контролирайте усилвателя за китара с Arduino): Това е първият ми проект в тази общност и в платформата arduino, а сега току -що беше представено на официалния уебсайт на Arduino. Благодаря на всички за подкрепата! Така че пускате музика на живо и използвате метроном или щракване, за да синхронизирате вашите
Количествено определяне на достъпа до ума ви: 8 стъпки (със снимки)
Количествено определяне на достъпа до ума ви: Така че аз ръководя лаборатория за творчески технологии в Калифорнийския колеж по изкуствата. Това е по същество образователно хакерско пространство за студенти по изкуство и дизайн. Доста страхотно, нали? След като завършва университета в Минесота със специалност механик
RFID контрол на достъпа с Arduino Yun и Raspberry Pi: 11 стъпки
RFID контрол на достъпа с Arduino Yun и Raspberry Pi: Добре дошли в моя Instructable! Търсили ли сте онлайн система за контрол на достъпа до RFID, която може да има множество потребители, без да използвате главен ключ за програмирането й? Система, която може да регистрира достъпа с името на лицата? Система, в която лесно можете да добавите o