Мазмұны:

MySQL, PHP5 және Python көмегімен Arduino YÚN -ге қатынауды басқару: 11 қадам (суреттермен)
MySQL, PHP5 және Python көмегімен Arduino YÚN -ге қатынауды басқару: 11 қадам (суреттермен)

Бейне: MySQL, PHP5 және Python көмегімен Arduino YÚN -ге қатынауды басқару: 11 қадам (суреттермен)

Бейне: MySQL, PHP5 және Python көмегімен Arduino YÚN -ге қатынауды басқару: 11 қадам (суреттермен)
Бейне: Установка PHP5 в Microsoft Windows 2024, Қараша
Anonim
MySQL, PHP5 және Python көмегімен Arduino YÚN -ге қатынауды басқару
MySQL, PHP5 және Python көмегімен Arduino YÚN -ге қатынауды басқару

Сәлем достар!

Өздеріңіз білетіндей, қыркүйек айында 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 Yun бағдарламалау
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 орнату
MySQL орнату

Енді біз MySQL серверінің орнатылуы мен конфигурациясын орнатамыз, консольге келесі пәрмендерді теріңіз:

  1. opkg libpthread libncurses libreadline mysql-серверін орнатыңыз
  2. sed -i, ^datadir.*, datadir =/srv/mysql/, g '/etc/my.cnf
  3. sed -i 's, ^tmpdir.*, tmpdir = /tmp /, g' /etc/my.cnf
  4. mkdir -p /srv /mysql
  5. mysql_install_db –- күш
  6. /etc/init.d/mysqld басталуы
  7. /etc/init.d/mysqld қосу
  8. 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 консоліне теріңіз:

  1. КЕСТЕ ЖАСАУ 'usuariosrfid` (
  2. `id` int (255) NULL AUTO_INCREMENT ЕМЕС,
  3. `nombre` varchar (300) NULL емес,
  4. `apellido` varchar (300) NULL емес,
  5. `correo` varchar (300) NULL ЕМЕС,
  6. `rfid` varchar (300) NULL емес,
  7. БАСТАУШЫ Кілт (`id ')
  8. ) Мотор = MyISAM DEFAULT CHARSET = латын1 AUTO_INCREMENT = 0;

* Есіңізде болсын, MySQL консоліндегі пәрмен жолының соңындағы ENTER пернесін басқанда, ол ';' белгісін таппайынша жұмыс істемейді. Сондықтан кодтың соңында ';' MySQL -ді орнатуды және конфигурациялауды аяқтау үшін біз базамыздағы кейбір сынақ өрістерін толтырамыз. Келесі жолдарды теріңіз:

  1. INSERT INTO `usuariosrfid` (` id`, `nombre`,` apellido`, `correo`,` rfid`) VALUES
  2. (1, 'Педро', 'Суарес', '[email protected]', '1234a-12345-b-123c'),
  3. (4, 'Matias', 'Lopez', '[email protected]', '987a-9876b-987c');

Енді оқырман жіберетін барлық RFID кодтары сақталатын 'ControlUsuarios' кестесін құруды жалғастырыңыз, бұл кесте 'id', 'rfid', 'date' деген 3 өрістен тұрады.

  • 'id' - индекстеуге арналған әрбір жазбаның идентификаторын қамтитын int өрісі немесе атрибуты.
  • 'rfid' атрибуты - RFID тег кодын қамтитын 'varchar' бағанын оқырман оқыды.
  • 'date' - карта оқылған күнді қамтитын 'varchar' атрибуты бағанасы.

'ControlUsuarios' кестесін құру үшін келесі кодты MySQL консоліне енгіземіз:

  1. Кестені жасау 'ControlUsuarios` (
  2. `id` int (255) NULL AUTO_INCREMENT ЕМЕС,
  3. `rfid` varchar (300) NULL емес,
  4. `fecha` varchar (300) ЕМЕС,
  5. БАСТАУШЫ Кілт (`id ')
  6. ) Мотор = MyISAM DEFAULT CHARSET = латын1 AUTO_INCREMENT = 0;

Соңында 'exit;' теріңіз MySQL сұранысынан шығу үшін консольде және SHH -ге оралу үшін біз PHP5 -тен бастай аламыз.

5 -қадам: PHP5 орнату

PHP5 орнату
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 қондырғысын орнату

PHP5 және Python үшін Conector MySQL орнату
PHP5 және Python үшін Conector MySQL орнату

MySQL мәліметтер базасын PHP және Python -мен байланыстыру үшін модульдерді орнатуды және конфигурациялауды жалғастырыңыз. PHP қосқышынан бастайық. Келесі кодты теріңіз:

  1. opkg php5-mod-mysql орнатыңыз
  2. 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 файлдары
Python файлдары

Жоғарыда айтылғандай, біздің Python сценарийлері бұрын орнатылған «MySQLdb» кітапханасымен немесе класымен жұмыс жасады. Редакторымызда 'comprobar.py' атты. Кітапхананы біздің Arduino Yun -мен байланысуға мүмкіндік беретін MySQL мәліметтер қорына қосылу үшін кітапхананы импорттаудан бастайық.

  1. MySQLdb импорттау
  2. жүйені импорттау

Осы кітапханаларды немесе сыныптарды импорттағаннан кейін, біз сіздің кодымызға айнымалыларды қосамыз, бұл біздің MySQL деректер қорынан қосылу деректері болады, сүйек:

  1. host = «127.0.0.1» # біздің MySQL серверінің адресіне сәйкес келеді.
  2. user = «your-seat» #-біздің мәліметтер қорының пайдаланушысы.
  3. passw = «сіздің пароліңіз» пайдаланушының құпия сөзіне арналған. base = «arduino» # Бұл сіз қолданатын мәліметтер базасының атауы.

Енді негізгі сценарий кодтарынан бастаңыз:

  1. шындық кезінде:
  2. db = MySQLdb.connect (хост, пайдаланушы, рұқсат, база)
  3. cur = db.курсор ()
  4. resultado = cur.execute («» «SELECT * FROM usuariosrfid WHERE rfid LIKE %s ORDER BY by id» «», (sys.argv [1],))
  5. егер (нәтиже == 1):
  6. басып шығару 1
  7. sys.exit (1)
  8. басқа:
  9. басып шығару 2
  10. 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' файлын түсіндіріңіз. Біздің редакторда файлға келесі кодты жоспарлаймыз:

  1. <? php
  2. / / Деректер сервері және мәліметтер базасы
  3. $ server = «localhost»;
  4. $ username = «сіздің орын»;
  5. $ password = «құпия сөз»;
  6. $ database_name = «arduino»;

Бұл arduino -да біздің мәліметтер қорына қосылуға қажет мәліметтер, біз Python сценарийлерінде қолданатын боламыз. Біздің сценарийді қолданатын connect операторын бағдарламалауды аяқтаңыз:

  1. $ conexion = mysql_connect ($ сервері, $ пайдаланушы аты, $ құпия сөзі) немесе өлу («Проблемалар аль -тратар де стайлцер ла конексион»);
  2. $ bd_sel = mysql_select_db ($ database_name) немесе өлу («Ақпараттық база мәселесі»);
  3. ?>

Басқа файлдар қоса беріледі.

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 жылы сәттілік тілеймін!

Ұсынылған: