Мазмуну:
- 1 -кадам: Бөлүктөр
- 2 -кадам: Ассамблея
- 3 -кадам: Arduino Yun программасы
- 4 -кадам: MySQL орнотуу
- 5 -кадам: PHP5ти орнотуу
- 6 -кадам: PHP5 жана Python үчүн Conector MySQL орнотуу
- 7 -кадам: Коддор
- 8 -кадам: Файлдар Python
- 9 -кадам: PHP файлдары
- 10 -кадам: Акырында, Arduino YN программасы
- 11 -кадам: Жаңы жылыңыз менен
Video: MySQL, PHP5 жана Python менен Arduino YÚN жеткиликтүүлүгүн көзөмөлдөө: 11 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Салам достор!
Белгилүү болгондой, сентябрда Arduinoдун жаңы премьерасы Arduino YUN. Бул кичинекей досубузда Linux камтылган системасы бар, анын жардамы менен биз сиз ойлогондун баарын иштете алабыз (жок дегенде азырынча). Бул жаңы тактада маалымат аз болсо да, Arduino баракчасын (кийинчерээк байланыштыра турган) көрсөтмөдөн кетүү менен бирге, көптөгөн Linuxту бир аз билүү, Control Access мүмкүн болгон чоң долбоорду ишке ашыра алат. Бул жолу мен бул долбоорду кантип жасоону түшүндүрөм, бирок биздин Arduino аркылуу жетишерлик түрдө. Бул иштейт, биздин YUNда жайгашкан MySQL маалымат базасы серверине рахмат, бул маалымат базасы эки таблицаны сактайт, бирөө белгилүү бир RFID менен байланышкан колдонуучулар үчүн жана башка окурманыбыз аркылуу өткөн бардык карттардын эсебин жүргүзүү үчүн. PHP жана Python сценарийлерин программалоо тилдерин колдонуп, кээ бир негизги иштерди аткаруу жана биздин маалыматтар менен иштөө. Мындан тышкары, аппараттык чыгымдарда биз 16 белгиден турган сериялык ЖКнын жанында окурман ID-20, плюс RGB LEDди колдонобуз, бул биздин маалымат берүүчү мамлекеттерибиз болот. Биз бул кирүү контролун колдонуп, биз ойлогон, өзгөртө алган жана релени же башка идеяны кошо алабыз. Аны карталарыңыз бар жана рекорд каалаган жерде колдонсо болот. Эске салсак, бул документ бекер жарыяланган, коммерциялык колдонуу жана бошотулган өзгөртүүлөргө жол берилбейт. Бул ачык булак электроникасынын кеңири жолу деп үмүттөнөм. Ошентип, биз кийинки кадамга барабыз, партияларга керек!
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 Reader Breakout https://www.sparkfun.com/products/8423 $ 0.95 * Basic 16x2 Character 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 * Buzzer https://www.sparkfun.com/products/7950 $ 1.95 * Somes Header PIN жана зым болжол менен $ 5.00. Жалпысынан Sparkfun дүкөнүнөн сатып алсаңыз, бардыгы 150 долларга жакын болот. Эгерде сиз Латын Америкасында жашасаңыз, анда мен тетиктерди www.olimex.cl сайтынан сатып алууну сунуштайт элем, бул абдан жакшы Чилилик электроника дүкөнү.
2 -кадам: Ассамблея
Кыскача түшүндүрүп жатып, жасай турган бир нече байланыш. RGB LED үчүн кызыл LED пин Ардуинонун 9 пининде болушу керек, жашыл LED Arduino пин 8де жана көк LED 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 ПИН 10- БУЗЗЕР ПИН 11- 5В Жана акырында, Сериялык ЖК туташтыргычы Arduino 5V жана GND казыктарына гана керек болот, ал эми LCD Serial RX пини пин 11ге өтөт. Arduino жөнүндө.
3 -кадам: Arduino Yun программасы
Биздин долбоорду ишке ашыруу үчүн, биз программалык камсыздоонун бир бөлүгүнөн башташыбыз керек, кээ бир файлдарды Arduino opkg Yun'га орнотуңуз:
- MySQL Server
- PHP5
- Python 2.7 үчүн MySQLdb
- PHP5тин MySQLге болгон режими
Эске салсак, Бриджде демейки боюнча 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 тамыры сырсөзү 'tu-nueva-clave'
Биздин коддорду киргизип бүтүп, MySQL серверин иштеткенден кийин, сиз иштей турган маалымат базасын конфигурациялашыңыз керек. Бирок коддорду терүүнү баштоодон мурун, биздин столубузду алып жүргөн талааларды түшүнүшүбүз керек. Такта 5 курстан турат, 'id', 'name', 'name', 'email', 'rfid', алардын айрымдарын сатуу үчүн, мен алардын колдонулушу жөнүндө кыскача түшүндүрмө берем.
- 'id': талаасы же атрибуту int мамычасы бизге User IDге берилген номерди айтабы, бул сан ошол эле маалымат базасы тарабынан дайындалган жана биздин жазууларды индекстөө жолу болуп калат.
- 'nombre': атрибут тилкеси 'varchar' болот, биздин картты колдонуучу аныкталган ысым менен көрсөтүлүшү мүмкүн.
- 'apellido': атрибут тилкеси 'varchar' болот, биздин колдонуучу байланыштырылган фамилия менен көрсөтүлүшү мүмкүн.
- 'correo': байланышкан колдонуучунун электрондук почтасын камтыган 'varchar' атрибуту мамычасы.
- 'rfid': сиз колдонгон RFID картанын кодун камтыган 'varchar' атрибуту мамычасы.
(Мен испан тилинде өзгөрмөлөрдү колдоном, анткени менин эне тилим жана мага c жагат:) Эми биз маалымат базабызды эч кандай көйгөйсүз конфигурациялай алабыз, андыктан биз "arduino" чалуусун MySQL түзөбүз. Сиз төмөнкү кодду теришиңиз керек:
mysqladmin -u root -p arduino түзөт
Биз орнотууда мурда киргизилген сырсөздү сурайбыз, биз базаны түзүүнү аягына чыгаруу үчүн тапшырабыз. Мунун баарын бүтүрүп, биз MySQLге суроо киргизебиз, консолго төмөнкү кодду теришиңиз керек:
mysql -root -p
Кайра биз сырсөздү сурайбыз, аны кайра тапшырышыңыз керек. MySQL консолундагы буйрукка киргенде, биз көрсөткүчтү ('mysql>') терүүгө даяр болуп көрүнүшүбүз керек. Биз жасай турган биринчи нерсе - 'arduino' маалыматтарынын үстүндө иштөө. Бул MySQL консолуна төмөнкү буйрукту терүү аркылуу жасалат:
Колдонуу arduino
Биз маалымат базасындагы 'usuariosrfid' аталыш таблицасы бул долбоор үчүн колдонула турганына ишенебиз, бул кодду MySQL консолуна териңиз:
- TABLE `usuariosrfid` түзүү
- `id` int (255) NULL AUTO_INCREMENT эмес,
- `nombre` varchar (300) NULL эмес,
- `apellido` varchar (300) NULL эмес,
- `correo` varchar (300) NULL эмес,
- `rfid` varchar (300) NULL эмес,
- БАШКЫ АЧкыч (`id ')
- ) MOTOR = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 0;
* Эсиңизде болсун, MySQL консолундагы буйрук сабынын аягындагы ENTER баскычын басканда, ал ';' тапмайынча иштебей турганын унутпаңыз. Ошондуктан, коддун аягында ';' MySQLтин орнотулушун жана конфигурациясын бүтүрүү үчүн, биз базабыздын ичиндеги кээ бир сыноо талааларын толтурабыз. Төмөнкү саптарды териңиз:
- INSERT INTO `usuariosrfid` (` id`, `nombre`,` apellido`, `correo`,` rfid`) БААЛЫКТАРЫ
- (1, 'Педро', 'Суарес', '[email protected]', '1234a-12345-b-123c'),
- (4, 'Matias', 'Lopez', '[email protected]', '987a-9876b-987c');
Эми окурмандын жанынан өткөн бардык RFID коддорун камтыган 'ControlUsuarios' таблицасын түзүүнү улантыңыз, бул таблица 'id', 'rfid', 'дата' деген 3 талаадан турат.
- 'id' - индекстөө үчүн ар бир жазуунун идентификаторун камтыган int талаасы же атрибуту.
- 'rfid' атрибуту RFID тэг кодун камтыган 'varchar' тилкеси окурман тарабынан окулган.
- 'дата' - бул картанын окулган күнүн камтыган 'varchar' атрибуту мамычасы.
"ControlUsuarios" столун түзүү үчүн, биз төмөнкү кодду MySQL консолуна киргизебиз:
- TABLE CREATE `ControlUsuarios` (
- `id` int (255) NULL AUTO_INCREMENT эмес,
- `rfid` varchar (300) NULL эмес,
- `fecha` varchar (300) NOT NULL,
- БАШКЫ АЧкыч (`id ')
- ) MOTOR = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 0;
Акыры 'exit;' териңиз MySQL Queryден чыгуу үчүн консолдо жана SHHге кайтуу үчүн PHP5 менен баштайбыз.
5 -кадам: PHP5ти орнотуу
PHP5тин орнотулушун жана конфигурациясын улантыңыз. Бул орнотуу MySQLке караганда жеңилирээк, андыктан аларга эч кандай чыгым болбошу керек. Биринчиден, Arduino Yun жүктөөдөн жана орнотуудан opkg пакетин орнотуңуз, андыктан Arduino SSH консолуна териңиз:
opkg php5 php5-cgi орнотуңуз
Жүктөлүп, PHP5 биздин Arduino Yunго орнотулгандыктан, uHTTPd түп файлын конфигурацияладык, http сервери Arduino, демек, бул http серверин гана колдонууну сунуштайм, анткени ал ар тараптуу жана конфигурацияда жеткиликтүү, Apache же Lighttpd кыйын эмес. сиз бул тармакта жаңы болгон учурда орнотуу үчүн. Муну конфигурациялоо үчүн 'vi' SSH файл редакторун колдонуңуз, бул үчүн сиз бул редакторду колдонуу үчүн минималдуу билимге ээ болушуңуз керек. UHTTPd жөндөөлөр файлына кирүү үчүн консолго бул кодду жаза баштаңыз:
vi/etc/config/uhttpd
Файлды түзөтүү үчүн 'i' баскычын басыңыз, андан кийин сиз жазган коддун сабына өтүңүз '# тизме котормочу. "php = / usr / bin / php-cgi" '. Сиз саптын башында "#" белгисин жок кылышыңыз керек, андан кийин качып кетүү ("ESC" баскычы) баскычын басыңыз, даяр болгондон кийин, файлды сактоо үчүн ": wq" буйругун теришиңиз керек. Сиз uHTTPd серверин өчүрүп күйгүзүшүңүз керек, бул үчүн SSHдин командалык консолуна төмөнкү кодду теришиңиз керек:
/etc/init.d/uhttpd өчүрүп күйгүзүү
6 -кадам: PHP5 жана Python үчүн Conector MySQL орнотуу
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 комплементин биздин серверге орнотуңуз.
- PHP жана Python үчүн MySQL Connector орнотуу жана конфигурациялоо менен аяктадык.
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 '. Бул файлдар үчүн redundaremos экөөнү тең түшүнүү оңой болгондуктан. Акырында биздин Arduino эскизи боло турган код менен бүтүрүңүз.
8 -кадам: Файлдар Python
Жогоруда айтылгандай, биздин Python сценарийлери мурда орнотулган китепкана же 'MySQLdb' классы менен иштечү. Редакторубузда 'comprobar.py' деп аталган. Китепкананы импорттоодон баштайлы, биздин MySQL маалымат базасына кошулуу үчүн, китепкананын 'sys', бул биздин Arduino Yun менен байланышууга мүмкүндүк берет:
- MySQLdb импорттоо
- 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 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', бул ардуинодон теңчилик кодун жана маалымат базасында сакталган коддорду табат. кайтаруу 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 ($ сервер, $ колдонуучунун аты, $ сырсөз) же өлүү ("Problemler al tratar de destlecer la conexion");
- $ bd_sel = mysql_select_db ($ database_name) же өлүп калуу ("Проблемалар селекционаровые база дата");
- ?>
Башка файлдар тиркелет.
10 -кадам: Акырында, Arduino YN программасы
Биз бул үйрөткүчтүн негизги бөлүгүнө кирдик, биздин Arduino Yun программасын, эч кандай деталдар коддун бардыгын баса белгилебейт, анткени ал абдан кеңири, болгону төмөнкү маанилүү ойлорду айт:
- Код 6 негизги функциясынан жана 13 экинчилик функциясынан турат, алар Serial LCDди колдонуу үчүн гана колдоо болуп саналат.
- Болгону үч класстын импорту болот, 'SoftwareSerial.h', биз ID-20 жана Serial LCD менен туташуу үчүн Serial тиркемесин киргизебиз, негизги класс 'Bridge.h' менен Linux менен ATMEGA32U4 ортосундагы байланышты түзөбүз, жана 'Process.h' классы Linuxта консультация процесстери үчүн кызмат кылат.
- Башкалары бекер колдонулган үч гана казыкты аныктаңыз.
Код тиркелет
11 -кадам: Жаңы жылыңыз менен
Мен муну кылдаттык менен улантып, сизге кызмат кылып, Arduino Yun жөнүндө көбүрөөк маалымат алууга жардам берем. Бардык файлдарды аягына чейин тиркеп коюңуз. Испан тилинде сүйлөгөндөр үчүн мен бул окуу куралын калтырам, бирок керектүү файлдар менен испан тилинде. Мен сизди жаңы 2014 -жыл менен куттуктайм, андан ырахат алыңыз жана бул 2014 -жылы ийгиликтүү болуңуз!
Сунушталууда:
Bluetooth LE жана RaspberryPi менен температураны көзөмөлдөө жана жаздыруу: 9 кадам (сүрөттөр менен)
Bluetooth LE жана RaspberryPi менен температураны көзөмөлдөп жана жаздырыңыз: Бул көрсөтмө Blue Lios (BLEHome) жана RaspberryPi 3B Bluetooth LE сенсорунун катасы менен көп түйүндүү температураны көзөмөлдөө тутумун кантип чогултуу жөнүндө. Bluetooth LE стандартынын өнүгүшүнө рахмат. азыр жеткиликтүү
RFID жеткиликтүүлүгүн башкаруу Arduino Yun жана Raspberry Pi менен: 11 кадам
Ардуино Юн жана Raspberry Pi менен RFID жеткиликтүүлүгүн көзөмөлдөө: Менин Нускамага кош келиңиз! Сиз программалоо үчүн башкы ачкычты колдонбостон бир нече колдонуучуга ээ боло турган RFID кирүүнү башкаруу тутумун интернеттен издедиңиз беле? Кирүү мүмкүнчүлүгүн адамдардын аты менен каттай турган система? Сиз оңой кошо турган система
Esp8266: 5 кадамдарды колдонуп, шаймандарды көзөмөлдөө жана аба ырайын көзөмөлдөө үчүн IoT түзмөгүн кантип жасоо керек
Esp8266 менен шаймандарды көзөмөлдөө жана аба ырайын көзөмөлдөө үчүн IoT түзмөгүн кантип жасоо керек: Интернеттин нерселери (IoT)-бул физикалык түзмөктөрдүн ("туташкан түзмөктөр" жана "акылдуу түзмөктөр" деп да аталат) имараттары, жана башка буюмдар - электроника, программалык камсыздоо, сенсорлор, аткаргычтар жана
Xbox Controller тарабынан жүздү көзөмөлдөө жана көзөмөлдөө менен кайыр суроочу робот - Arduino: 9 кадам (сүрөттөр менен)
Xbox Controller тарабынан жүздү көзөмөлдөө жана көзөмөлдөө менен кайыр суроочу робот - Arduino: Биз кайыр суроочу робот кылабыз. Бул робот кыжырдантууга же өтүп бара жаткан адамдардын көңүлүн бурууга аракет кылат. Бул алардын жүздөрүн аныктап, аларга лазер менен атууга аракет кылат. Эгер роботко тыйын берсеңиз, ал ыр ырдайт жана бийлейт. Роботко керек болот
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: 13 кадам (сүрөттөр менен)
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: Киришүү: Бул Ардуино тактасын, Sensor (DHT11), Windows компьютери жана Processing (бекер жүктөлүүчү) программасын колдонуп, Температураны, Нымдуулукту санариптик жана тилке графасынын формасы, убакытты жана күндү көрсөтүү жана эсептөө убактысын иштетүү