Мазмұны:
- 1 -қадам: Бөлшектер
- 2 -қадам: Жинау
- 3 -қадам: Arduino Yun бағдарламалау
- 4 -қадам: MySQL орнату
- 5 -қадам: PHP5 орнату
- 6 -қадам: PHP5 және Python үшін MySQL Conector қондырғысын орнату
- 7 -қадам: кодтар
- 8 -қадам: Python файлдары
- 9 -қадам: PHP файлдары
- 10 -қадам: Соңында Arduino YN бағдарламасы
- 11 -қадам: Жаңа жылмен
Бейне: MySQL, PHP5 және Python көмегімен Arduino YÚN -ге қатынауды басқару: 11 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Сәлем достар!
Өздеріңіз білетіндей, қыркүйек айында Arduino -ның жаңа премьерасы Arduino YUN. Бұл кішкентай досында Linux орнатылған жүйесі бар, оның көмегімен біз сіз ойлаған нәрсені іске қоса аламыз (кем дегенде осы уақытқа дейін). Бұл жаңа тақтада өте аз ақпарат болса да, Arduino бетін қамтамасыз ететін нұсқаулықта (ол кейінірек сілтеме болады), сонымен қатар көптеген Linux -ті біле отырып, Control Access бағдарламасын жүзеге асыра алады. Бұл жолы мен бұл жобаны қалай жасау керектігін түсіндіремін, бірақ біздің Arduino арқылы жеткілікті түрде. Бұл жұмыс істейді, біздің YUN -да орналасатын MySQL мәліметтер базасы серверінің арқасында, бұл мәліметтер қоры екі кестені сақтайды, олардың біреуі RFID -пен байланысты пайдаланушыларға арналған, екіншісі - біздің оқырман арқылы өткен барлық карталардың жазбаларын жүргізуге арналған кесте. Біз PHP және Python сценарийлерін программалау тілдерін қолдана отырып, кейбір мәліметтермен жұмыс жасаймыз және деректермен жұмыс жасаймыз. Сонымен қатар, аппараттық жүктемеде біз 16 таңбалы сериялық СКД-нің жанында ID-20 оқырманы қолданамыз, сонымен қатар RGB светодиоды бізге хабар береді. Біз бұл қатынауды басқаруды ойластыратын, өзгерте алатын және реле немесе басқа идея қосатын барлық нәрсені қолдана аламыз. Сізде карталар бар және жазбаны қажет ететін кез келген жерде қолдануға болады. Естеріңізге сала кетейік, бұл құжат тегін жарияланады, коммерциялық мақсатта пайдалануға және босатылған өзгертулерге жол берілмейді. Бұл ашық бастапқы электрониканың кеңейтілген жолы деп үміттенемін. Сондықтан біз келесі кезеңге өтеміз, партияларға қажет!
1 -қадам: Бөлшектер
Бұл жобаны орындау үшін бізге қажет: * Arduino YUN https://www.sparkfun.com/products/12053 $ 71.95 * RFID Reader ID-20 (125 кГц) 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 * Сериялық қосылған СКД рюкзагы https:// www. sparkfun.com/products/258 $ 16.95 * LED RGB 5 мм. Егер сіз Sparkfun дүкенінен сатып алсаңыз, барлығы 150 долларға жуық болады. Егер сіз Латын Америкасында тұрсаңыз, мен бөлшектерді www.olimex.cl сайтынан сатып алуды ұсынар едім, бұл Чили электроникасының өте жақсы дүкені.
2 -қадам: Жинау
Бірнеше байланыстар бар, қысқаша түсіндіріңіз. RGB светодиоды үшін қызыл светодиод түйреуіші Arduino -ның 9 -штырында, жасыл светодиод Arduino 8 -ші түйреуіште, ал көк -жарық диодты Arduino -дың 7 -ші түйісінде болуы керек. ID-20 үшін кестеде көрсетілген келесі түйреуіштерді Arduino түйреуішіне түйістіру керек: PIN 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 Ақырында, сериялық СКД коннекторы Arduino 5V және GND түйреуіштеріне қажет болады, ал LCD Serial RX түйреуіші 11 істікке дейін жетеді. Arduino туралы.
3 -қадам: Arduino Yun бағдарламалау
Біздің жобаны жасау үшін біз бағдарламалық жасақтама бөлігінен бастауымыз керек, біздің файлдарды Arduino opkg Yun -ға орнатамыз:
- MySQL сервері
- PHP5
- Python 2.7 үшін MySQLdb
- MySQL үшін PHP5 модулі
Еске салайық, Bridge -де әдепкі бойынша Python 2.7 орнатылған, сондықтан сізге бұл үшін жаңартуды орнатудың қажеті жоқ. SSH журналын бастаңыз, біздің Arduino Yun кіруге батыл болыңыз, оларды енгізгеннен кейін opkg қосымшалар тізімін жаңарту үшін келесі пәрменді теріңіз:
opkg жаңарту
4 -қадам: MySQL орнату
Енді біз MySQL серверінің орнатылуы мен конфигурациясын орнатамыз, консольге келесі пәрмендерді теріңіз:
- opkg libpthread libncurses libreadline mysql-серверін орнатыңыз
- sed -i, ^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 түбірлік құпия сөзі 'tu-nueva-clave'
Біздің кодтарды енгізуді аяқтап, MySQL серверін іске қосқаннан кейін, сіз басқаратын дерекқорды конфигурациялауыңыз керек. Бірақ кодтарды теруді бастамас бұрын, біздің кестені алып жүретін өрістерді түсінуіміз керек. Басқарма 5 курстан тұрады, олардың кейбіреулерін сату үшін 'id', 'name', 'name', 'email', 'rfid' мен олардың қолданылуы туралы қысқаша түсініктеме беремін.
- 'id': пайдаланушы идентификаторына тағайындалған нөмірді білдіретін int өрісі немесе атрибуты болады ма, бұл нөмір сол дерекқормен тағайындалады және біздің жазбаларды индекстеу әдісі болады.
- 'nombre': атрибут бағанында 'varchar' болады, біздің картаны пайдаланушы анықталған атымен көрсетілуі мүмкін.
- 'apellido': атрибут бағанында 'varchar' болады, біздің қолданушы байланысқан фамилиямен көрсетілуі мүмкін.
- 'correo': байланысқан пайдаланушыға электрондық поштаны қамтитын 'varchar' атрибуты бағанасы.
- 'rfid' - бұл сіз қолданатын RFID картасының кодын қамтитын 'varchar' атрибуты бағанасы.
(Мен айнымалыларды испан тілінде қолданамын, себебі менің ана тілім және маған c ұнайды:) Енді біз дерекқорды еш қиындықсыз конфигурациялай аламыз, сондықтан MySQL «arduino» қоңырауын жасаймыз. Сіз келесі кодты теруіңіз керек:
mysqladmin -u root -p arduino құрады
Біз орнатуда бұрын енгізген парольді сұраймыз, біз оны базаны құруды аяқтау үшін жібереміз. Мұның бәрін аяқтадық, біз сұрауды MySQL -ге енгіземіз, консольге келесі кодты енгізу керек:
mysql -root -p
Біз қайтадан құпия сөзді сұраймыз, сіз оны қайтадан жіберуіңіз керек. MySQL консольдық пәрменіне кіргенде, біз көрсеткіш ('mysql>') теруге дайын болып көрінуіміз керек. Біз жасай алатын бірінші нәрсе - 'arduino' деректерінің жұмыс істеуіне негізді жылжыту. Бұл MySQL консолінде келесі пәрменді енгізу арқылы жасалады:
Arduino қолданыңыз
Дерекқордағы «usuariosrfid» атау кестесі осы жоба үшін қолданылатынына сенеміз, бұл кодты MySQL консоліне теріңіз:
- КЕСТЕ ЖАСАУ 'usuariosrfid` (
- `id` int (255) NULL AUTO_INCREMENT ЕМЕС,
- `nombre` varchar (300) NULL емес,
- `apellido` varchar (300) NULL емес,
- `correo` varchar (300) NULL ЕМЕС,
- `rfid` varchar (300) NULL емес,
- БАСТАУШЫ Кілт (`id ')
- ) Мотор = MyISAM DEFAULT CHARSET = латын1 AUTO_INCREMENT = 0;
* Есіңізде болсын, MySQL консоліндегі пәрмен жолының соңындағы ENTER пернесін басқанда, ол ';' белгісін таппайынша жұмыс істемейді. Сондықтан кодтың соңында ';' MySQL -ді орнатуды және конфигурациялауды аяқтау үшін біз базамыздағы кейбір сынақ өрістерін толтырамыз. Келесі жолдарды теріңіз:
- INSERT INTO `usuariosrfid` (` id`, `nombre`,` apellido`, `correo`,` rfid`) VALUES
- (1, 'Педро', 'Суарес', '[email protected]', '1234a-12345-b-123c'),
- (4, 'Matias', 'Lopez', '[email protected]', '987a-9876b-987c');
Енді оқырман жіберетін барлық RFID кодтары сақталатын 'ControlUsuarios' кестесін құруды жалғастырыңыз, бұл кесте 'id', 'rfid', 'date' деген 3 өрістен тұрады.
- 'id' - индекстеуге арналған әрбір жазбаның идентификаторын қамтитын int өрісі немесе атрибуты.
- 'rfid' атрибуты - RFID тег кодын қамтитын 'varchar' бағанын оқырман оқыды.
- 'date' - карта оқылған күнді қамтитын 'varchar' атрибуты бағанасы.
'ControlUsuarios' кестесін құру үшін келесі кодты MySQL консоліне енгіземіз:
- Кестені жасау 'ControlUsuarios` (
- `id` int (255) NULL AUTO_INCREMENT ЕМЕС,
- `rfid` varchar (300) NULL емес,
- `fecha` varchar (300) ЕМЕС,
- БАСТАУШЫ Кілт (`id ')
- ) Мотор = MyISAM DEFAULT CHARSET = латын1 AUTO_INCREMENT = 0;
Соңында 'exit;' теріңіз MySQL сұранысынан шығу үшін консольде және SHH -ге оралу үшін біз PHP5 -тен бастай аламыз.
5 -қадам: PHP5 орнату
PHP5 орнатуды және конфигурациясын жалғастырыңыз. Бұл орнату MySQL -ке қарағанда оңай, сондықтан оларға ештеңе кетпеуі керек. Алдымен Arduino Yun жүктеу мен орнатудан opkg бумасын орнатыңыз, сондықтан Arduino SSH консоліне мынаны теріңіз:
opkg php5 php5-cgi орнатыңыз
Жүктелгеннен кейін және PHP5 біздің Arduino Yun -ға орнатылды, сондықтан біз uHTTPd түбірлік файлын конфигурацияладық, Arduino әдепкі мәнін беретін http сервері, мен сізге тек осы http серверін қолдануды ұсынамын, себебі ол әмбебап және конфигурацияда қол жетімді, Apache немесе Lighttpd қиын емес. осы салада жаңадан орнатқан кезде. Мұны конфигурациялау үшін 'vi' SSH файлдық редакторын қолданыңыз, ол үшін бұл редакторды пайдалану үшін ең аз біліміңіз болуы керек. UHTTPd параметрлер файлына кіру үшін консольге осы кодты енгізуді бастаңыз:
vi/etc/config/uhttpd
Файлды өңдеу үшін 'i' түймесін басыңыз, содан кейін сіз жазған кодтың жолына өтіңіз '# тізім аудармашы. «php = / usr / bin / php-cgi» '. Жолдың басында '#' таңбасын өшіру керек, содан кейін esc («ESC» пернесі) пернесін басу керек, дайын болған соң, файлды сақтау үшін «: wq» пәрменін теру керек. Сіз uHTTPd серверін қайта іске қосуыңыз керек, ол үшін SSH командалық консолінде келесі кодты теріңіз:
/etc/init.d/uhttpd қайта іске қосыңыз
6 -қадам: PHP5 және Python үшін MySQL Conector қондырғысын орнату
MySQL мәліметтер базасын PHP және Python -мен байланыстыру үшін модульдерді орнатуды және конфигурациялауды жалғастырыңыз. PHP қосқышынан бастайық. Келесі кодты теріңіз:
- opkg php5-mod-mysql орнатыңыз
- sed -i ';
Дайын болғаннан кейін uHTTPd серверін қайта іске қосудың қажеті жоқ, ол бірден пайдалануға дайын болады. Енді Python қосқышымен жалғастырыңыз, ол үшін келесі кодты енгізу қажет:
opkg python-mysql орнатыңыз
Бұл соңғы қадамда бізде Arduino Yun-ды 125 кГц ID-20 карта оқу құрылғысымен жобамызға дайындайды. Бұл бөлімді біз жасаған нәрселер туралы кері байланыспен аяқтаңыз:
- Біз MySQL серверін Arduino Yun -ға орнаттық, содан кейін оны тестілеу деректерін енгізумен аяқтаймыз.
- PHP қосымшасын біздің серверге орнатыңыз.
- Біз PHP және Python үшін MySQL қосқышын орнатуды және конфигурациялауды аяқтадық.
7 -қадам: кодтар
Бұл салада біз осы жобада қолданылатын бағдарламалау кодтарын талқылаймыз. Біз Python кодымен кетеміз, ол екі файлға бөлінеді: 'comprobar.py', ол мәліметтер базасына қосылады және егер нәтиже Юн Ардуинодан іздейтін болса және файлды басқарады. py ', тіркелген пайдаланушылардың мәліметтер базасында ID-20 оқырманы оқитын кез келген картаны жазуға жауапты. Содан кейін PHP файлдарының сипаттамасын жалғастырыңыз: 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'delete2. php ',' guardar.php '' consulta.php ',' configuracion.php '. Бұл файлдар екеуін де қайталайды, себебі оларды түсіну оңай. Соңында біздің Arduino эскизі ретінде көтерілетін кодпен аяқтаңыз.
8 -қадам: Python файлдары
Жоғарыда айтылғандай, біздің Python сценарийлері бұрын орнатылған «MySQLdb» кітапханасымен немесе класымен жұмыс жасады. Редакторымызда 'comprobar.py' атты. Кітапхананы біздің Arduino Yun -мен байланысуға мүмкіндік беретін MySQL мәліметтер қорына қосылу үшін кітапхананы импорттаудан бастайық.
- MySQLdb импорттау
- жүйені импорттау
Осы кітапханаларды немесе сыныптарды импорттағаннан кейін, біз сіздің кодымызға айнымалыларды қосамыз, бұл біздің MySQL деректер қорынан қосылу деректері болады, сүйек:
- host = «127.0.0.1» # біздің MySQL серверінің адресіне сәйкес келеді.
- user = «your-seat» #-біздің мәліметтер қорының пайдаланушысы.
- passw = «сіздің пароліңіз» пайдаланушының құпия сөзіне арналған. base = «arduino» # Бұл сіз қолданатын мәліметтер базасының атауы.
Енді негізгі сценарий кодтарынан бастаңыз:
- шындық кезінде:
- db = MySQLdb.connect (хост, пайдаланушы, рұқсат, база)
- cur = db.курсор ()
- resultado = cur.execute («» «SELECT * FROM usuariosrfid WHERE rfid LIKE %s ORDER BY 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])' - бұл Arduino RFID картасының коды, барлық деректері бар 'rfid' кестесі 'usuariosrfid', ол arduino -дан теңдік кодын және дерекқорда сақталған кодтарды табады. қайтару 1, егер бұл дұрыс емес және arduino мен базаның кейбір кодтары арасында теңдік болмаса, біз 2 қайтарамыз. Бұл сандарды Arduino қабылдайды. Біз келесі 'control.py файлын жалғастырамыз. Бұл файл жоғарыда көрсетілгендей жұмыс істейді, тек қана үстелде дәмді сақтайды, бұл жазбаларды біздің Arduino Yun-ға қосылған ID-20 оқырманы жинайды, сондықтан біз RFID оқу құралын қолданатын барлық тіркелген пайдаланушыларды сақтай аламыз.
9 -қадам: PHP файлдары
Содан кейін файлдарды жалғастырыңыз. Қалтаны біздің серверден сақтайтын 'Php', бұл үшін бұл файлдар дайын болған кезде біздің жобада сақталуы қажет екенін ұмытпаңыз, ол автоматты түрде IDE Arduino шығарады, бірақ мен есте сақтауым керек, бірақ мен күтемін. бұл Yun Arduino нобайына көтерілгенде, біз 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 = «localhost»;
- $ username = «сіздің орын»;
- $ password = «құпия сөз»;
- $ database_name = «arduino»;
Бұл arduino -да біздің мәліметтер қорына қосылуға қажет мәліметтер, біз Python сценарийлерінде қолданатын боламыз. Біздің сценарийді қолданатын connect операторын бағдарламалауды аяқтаңыз:
- $ conexion = mysql_connect ($ сервері, $ пайдаланушы аты, $ құпия сөзі) немесе өлу («Проблемалар аль -тратар де стайлцер ла конексион»);
- $ bd_sel = mysql_select_db ($ database_name) немесе өлу («Ақпараттық база мәселесі»);
- ?>
Басқа файлдар қоса беріледі.
10 -қадам: Соңында Arduino YN бағдарламасы
Біз осы оқулықтың негізгі бөлігіне жеттік, біздің Arduino Yun бағдарламалау, ешқандай мәліметтер барлық кодты бөліп көрсетпейді, өйткені ол өте кең, тек келесі маңызды сәттерді атап өтіңіз:
- Код 6 негізгі функциядан және 13 қосалқы функциядан тұрады, олар тек СКД -ді қолдануға қолдау болып табылады.
- ID-20 мен Serial LCD, Linux пен ATMEGA32U4 арасында байланыс орнататын негізгі класс «Bridge.h» -мен қосылу үшін Serial Attached енгізілетін үш бағдарламалық жасақтамасы бар «SoftwareSerial.h» импортталады, және 'Process.h' класы Linux жүйесінде кеңес беру процестеріне қызмет етеді.
- Басқалары тегін болатын тек үш түйреуішті анықтаңыз.
Код тіркелген
11 -қадам: Жаңа жылмен
Мен мұны сізге қызмет ету үшін жалғастырамын және сізге Arduino Yun туралы қосымша ақпарат алуға көмектесемін. Барлық файлдарды соңына тіркеңіз. Испан тілінде сөйлейтіндер үшін мен бұл оқулықты қалдырамын, бірақ испан тілінде қажетті файлдар бар. Сізді жаңа 2014 жылмен құттықтаймын, оны жақсы өткізіңіз және осы 2014 жылы сәттілік тілеймін!
Ұсынылған:
Raspberry Pi және LIS3DHTR көмегімен қозғалысты басқару, 3 осьті акселерометр, Python көмегімен: 6 қадам
Raspberry Pi және LIS3DHTR көмегімен қозғалысты басқару, 3 осьті акселерометр, Python көмегімен: Сұлулық бізді қоршап тұрады, бірақ әдетте оны білу үшін біз бақта серуендеуіміз керек. - Біз білетін топ ретінде біз энергияның көп бөлігін компьютерлер мен ұялы телефондардың алдында жұмыс істеуге жұмсаймыз. Сондықтан біз өз денсаулығымызға жиі рұқсат береміз
Жарықтықты басқару PWM негізіндегі жарықдиодты басқару түймелері, Raspberry Pi және Scratch көмегімен: 8 қадам (суреттермен)
Жарықтықты басқару PWM негізіндегі жарықдиодты басқару түймелері, Raspberry Pi және Scratch көмегімен: Мен оқушыларға PWM қалай жұмыс жасайтынын түсіндірудің жолын табуға тырыстым, сондықтан мен 2 түймені қолданып жарық диодты жарықтылықты басқаруға тырысамын. - бір түйме жарық диодты жарықтандыруды арттырады, ал екіншісі оны өшіреді. Бағдарламаға
HT12D HT12E көмегімен RF 433MHZ радиобасқару - HT12E және HT12D көмегімен 433 МГц жиілікпен қашықтан басқару пультін жасау: 5 қадам
HT12D HT12E көмегімен RF 433MHZ радиобасқару | HT12E мен HT12D көмегімен 433 мГц жиілікпен қашықтан басқару пультін жасау: Бұл нұсқаулықта мен сізге HT12E коды бар 433 мГц таратқыш қабылдағыш модулін қолдану арқылы RADIO қашықтан басқару құралын жасауды көрсетемін. HT12D декодер IC. Бұл нұсқаулықта сіз өте арзан ҚҰРАМДАР арқылы деректерді жібере және қабылдай аласыз: HT
Makey Makey көмегімен қатынауды ауыстыру: 3 қадам (суреттермен)
Makey Makey көмегімен қосқышқа қол жеткізу: Бұл екі коммутатор жүйесінде лоток (мен оны IKEA -дан қолдандым), өткізгіш материал (мен алюминий мен мыс таспаны қолдандым, бірақ сіз әрқашан ас үйдің алюминий фольгасын қолдана аласыз), жабысқақ таспа мен макей қолданылады. Тек сенсорлық қосқышты жасау үшін Makey. Жүйе c
Arduino Yun және Raspberry Pi көмегімен RFID қатынауды басқару: 11 қадам
Arduino Yun және Raspberry Pi көмегімен RFID қатынауды басқару: Менің нұсқаулығыма қош келдіңіз! Сіз Интернетте RFID қатынауды басқару жүйесін іздедіңіз бе, оны бағдарламалау үшін басты кілтсіз бірнеше қолданушы болуы мүмкін бе? Адамдардың атымен қатынауды тіркеуге болатын жүйе? Оларды оңай қосуға болатын жүйе