Taula de continguts:
- Pas 1: les parts
- Pas 2: el muntatge
- Pas 3: Programació de l'Arduino Yun
- Pas 4: Instal·lació de MySQL
- Pas 5: Instal·lació de PHP5
- Pas 6: Instal·leu el Conector MySQL per a PHP5 i Python
- Pas 7: codis
- Pas 8: fitxers Python
- Pas 9: fitxers PHP
- Pas 10: Finalment, el programa de l'Arduino YÚN
- Pas 11: Bon any nou
Vídeo: Control de l'accés a Arduino YÚN amb MySQL, PHP5 i Python: 11 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Hola amics!
Bé, com ja sabeu, al setembre es presentarà el nou escut d’Arduino, Arduino YUN. Aquest petit amic té un sistema incrustat de Linux amb el qual podem executar qualsevol cosa que se us acudeixi (almenys fins ara). Tot i que hi ha molt poca informació sobre aquest nou tauler, amb sortida a la guia que proporciona la pàgina Arduino (que enllaçarà més endavant), a més d'un petit coneixement de molts Linux, es pot dur a terme un projecte important, un Control Access. Aquesta vegada explicaré com fer aquest projecte, però de manera suficientment particular a través del nostre Arduino. Això funciona, gràcies a un servidor de bases de dades MySQL que s’instal·larà al nostre YUN, aquesta base de dades emmagatzemarà dues taules, una per a usuaris associats a un determinat RFID i una altra taula per guardar registres de totes les targetes que han passat pel nostre lector. Tot i que fem servir llenguatges de programació scripts PHP i Python per realitzar alguns treballs bàsics i treballar amb les nostres dades. A més, a través del maquinari general, fem servir un lector ID-20 al costat d’una pantalla LCD de 16 caràcters, a més d’un LED RGB que serà el nostre informador. Podem utilitzar aquest control d’accés tot el que puguem pensar, modificar i afegir un relé o una altra idea. Es pot utilitzar en qualsevol lloc on tingueu cartes i vulgueu tenir un registre. Recordeu que aquest document és de publicació gratuïta, no es permet l’ús comercial ni les modificacions exemptes. Espero que sigui un camí molt més extens de l'electrònica de codi obert. Així que anem al següent pas, les parts necessiten!
Pas 1: les parts
Per fer aquest projecte, hem de tenir: * Arduino YUN https://www.sparkfun.com/products/12053 $ 71,95 * Lector RFID ID-20 (125 kHz) https://www.sparkfun.com/products/11828 34,95 $ * Breakout del lector RFID https://www.sparkfun.com/products/8423 0,95 $ * LCD bàsic de caràcters 16x2 5V https://www.sparkfun.com/products/790 16,95 $ * Motxilla LCD habilitada en sèrie https:// www. sparkfun.com/products/258 16,95 $ * LED RGB 5 mm https://www.sparkfun.com/products/105 1,95 $ * Buzzer https://www.sparkfun.com/products/7950 1,95 $ * Pin de capçalera i filferro Somes 5,00 $ aprox. En total, si compreu a la botiga Sparkfun, tot serà prop de 150 dòlars. Si viviu a Amèrica Llatina, us recomanaria comprar les peces a www.olimex.cl, és una botiga d’electrònica xilena molt bona.
Pas 2: el muntatge
Poques connexions a fer, que expliquen breument. En el cas dels LED RGB, el pin vermell ha d’estar al pin 9 de l’Arduino, el pin verd ha d’estar al pin 8 d’Arduino i el pin blau ha de ser al pin 7 de l’Arduino. Per a l'ID-20, heu de connectar els pins següents, tal com s'indica a la taula, en l'ordre respectiu, el lector de pins al pin Arduino: PIN ID-20 a pin Arduino ID-20 / Arduino PIN 1 - GND PIN 2 - 5V PIN 7 - GND PIN 9 - PIN 10 PIN 10 - BUZZER PIN 11 - 5V I, finalment, per al connector LCD de sèrie només serà necessari per als pins de 5v i GND de l'Arduino, mentre que el pin LCD Serial RX passa al pin 11 de l'Arduino.
Pas 3: Programació de l'Arduino Yun
Per tal de fer el nostre projecte, hem de començar amb la part del programari, instal·lar alguns fitxers al nostre Arduino opkg Yun:
- Servidor MySQL
- PHP5
- MySQLdb per a Python 2.7
- Mod de PHP5 a MySQL
Recordeu que per defecte a Bridge ve instal·lat Python 2.7, de manera que no cal instal·lar mai cap actualització per a això. Comenceu a registrar SSH atreviu-vos a entrar al nostre Arduino Yun; un cop els hàgiu iniciat, escriviu l'ordre següent per actualitzar la llista d'aplicacions opkg:
actualització opkg
Pas 4: Instal·lació de MySQL
Ara establirem la instal·lació i configuració del servidor MySQL, escriviu les ordres següents a la consola:
- opkg install libpthread libncurses libreadline mysql-server
- 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 –-force
- /etc/init.d/mysqld start
- habilitar /etc/init.d/mysqld
- mysqladmin -u contrasenya d'arrel 'tu-nueva-clave'
Un cop hàgiu acabat d’introduir els nostres codis i iniciar el servidor MySQL, heu de configurar la base de dades que manipularà. Però abans de començar a escriure els codis, hem d’entendre els camps que contenen la nostra taula. El tauler estarà format per 5 cursos, 'id', 'name', 'name', 'email', 'rfid' per comercialitzar alguns d'ells. Donaré una breu explicació del seu ús.
- 'id': serà el camp o l'atribut int columna que ens indicarà el número assignat a l'ID d'usuari, aquest número és assignat per la mateixa base de dades i serà la manera d'indexar els nostres registres.
- "nombre": la columna de l'atribut serà "varchar", que es pot indicar amb el nom amb el qual s'identifica l'usuari de la nostra targeta.
- 'apellido': la columna de l'atribut serà 'varchar', es pot indicar amb el cognom amb el qual el nostre usuari està associat.
- 'correo': és la columna d'atribut 'varchar' que contindrà el correu electrònic de l'usuari associat.
- 'rfid': és la columna d'atribut 'varchar' que contindrà el codi de la targeta RFID que utilitzeu.
(Utilitzaré les variables en castellà, perquè és el meu idioma nadiu i m'agrada c:) Ara podem configurar la nostra base de dades sense problemes, per tant creem una trucada 'arduino' MySQL. Heu d’escriure el codi següent:
mysqladmin -u root -p crea arduino
Demanem la contrasenya que vam introduir anteriorment a la instal·lació, l’enviarem per completar la creació de la base. Acabat tot això, introduïm la consulta a MySQL, haureu d'escriure el següent codi a la consola:
mysql -arrel -p
Novament us demanem la contrasenya, l’heu de tornar a enviar. Un cop a l’ordre de la consola MySQL, el punter ('mysql>') hauria d'aparèixer a punt per escriure. El primer que farem és moure la base perquè les dades 'arduino' hi treballin. Això es fa escrivint l'ordre següent a la consola MySQL:
Feu servir arduino
Creiem que la taula de noms "usuariosrfid" de la base de dades s'utilitzarà per a aquest projecte, escriviu aquest codi a la consola MySQL:
- CREA LA TAULA `usuariosrfid` (
- `id` int (255) NO NULL AUTO_INCREMENT,
- `nombre` varchar (300) NOT NULL,
- `apellido` varchar (300) NO NUL,
- `correo` varchar (300) NO NUL,
- `rfid` varchar (300) NO NUL,
- CLAU PRIMÀRIA ("id")
- ) MOTOR = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 0;
* Recordeu que en prémer la tecla ENTER al final de la línia d'ordres a la consola MySQL, no s'executarà fins que no trobeu el símbol ';' Per tant, al final del codi hi ha ';' Per completar la instal·lació i configuració de MySQL, omplim alguns camps de prova de la nostra base. Escriviu les línies següents:
- INSERT INTO `usuariosrfid` (` id`, `nombre`,` apellido`, `correo`,` rfid`) VALORS
- (1, "Pedro", "Suarez", "[email protected]", "1234a-12345-b-123c"),
- (4, "Matias", "Lopez", "[email protected]", "987a-9876b-987c");
Ara continueu amb la creació de la taula "ControlUsuarios", que allotjarà tots els codis RFID que passen pel lector, aquesta taula consta de 3 camps, "id", "rfid", "data".
- 'id' és el camp o l'atribut int column que contindrà l'identificador de cada registre per indexar.
- L'atribut "rfid" és la columna "varchar" que conté el codi de l'etiqueta RFID que el lector ha llegit.
- 'data' és la columna d'atribut 'varchar' que contindrà la data en què es va llegir la targeta.
Per crear la taula "ControlUsuarios", introduïm el següent codi a la consola MySQL:
- CREA LA TAULA `ControlUsuarios` (
- `id` int (255) NOT NULL AUTO_INCREMENT,
- `rfid` varchar (300) NO NUL,
- `fecha` varchar (300) NO NUL,
- CLAU PRIMÀRIA ("id")
- ) MOTOR = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 0;
Finalment, escriviu "exit;" a la consola per sortir de la consulta MySQL i tornar a SHH per poder començar amb PHP5.
Pas 5: Instal·lació de PHP5
Continueu amb la instal·lació i configuració de PHP5. Aquesta instal·lació és més fàcil que MySQL, de manera que no els hauria de costar res. Primer, instal·leu el paquet opkg des de la descàrrega i instal·lació d’Arduino Yun, així que escriviu la consola SSH d’Arduino:
opkg instal·la php5 php5-cgi
Un cop descarregat i instal·lat PHP5 al nostre Arduino Yun, hem configurat el fitxer arrel uHTTPd, el servidor http que porta Arduino per defecte, us recomano que utilitzeu aquest servidor http perquè és més versàtil i accessible en configuració, no són més difícils Apache o Lighttpd per configurar-lo quan sigui nou en aquest camp. Per configurar-ho, utilitzeu l'editor de fitxers 'vi' SSH, per a això haureu de tenir coneixements mínims per utilitzar aquest editor. Comenceu a escriure aquest codi a la consola per accedir al fitxer de configuració uHTTPd:
vi / etc / config / uhttpd
Premeu 'i' per editar el fitxer i aneu a la línia de codi que heu escrit '# list intèrpret. "php = / usr / bin / php-cgi" '. Heu de suprimir el caràcter "#" al principi de la línia i, a continuació, premeu la tecla d'escapament (tecla "ESC"), un cop estigueu llest, heu d'escriure l'ordre ": wq" per desar el fitxer i sortir del fitxer. Heu de reiniciar el servidor uHTTPd, per a això, heu d'escriure a la consola d'ordres de SSH el codi següent:
/etc/init.d/uhttpd reinicia
Pas 6: Instal·leu el Conector MySQL per a PHP5 i Python
Continueu amb la instal·lació i configuració dels mòduls per connectar la base de dades MySQL amb PHP i Python. Comencem pel connector PHP. Escriviu el codi següent:
- opkg instal·la php5-mod-mysql
- sed -i 's,; extension = mysql.so, extension = mysql.so, g' /etc/php.ini
Un cop llest, no caldrà reiniciar el servidor uHTTPd, llest per al seu ús immediat. Ara continueu amb el connector per a Python; per a això, heu d'introduir el codi següent:
opkg install python-mysql
Amb aquest darrer pas, tindrem el nostre Arduino Yun preparat per al nostre projecte amb el lector de targetes ID-20 RFID 125khz. Acabeu aquesta part amb els comentaris del que hem fet:
- Vam instal·lar el servidor MySQL al nostre Arduino Yun i el vam configurar, acabant amb una inserció de dades de prova.
- Instal·leu el complement PHP al nostre servidor.
- Hem acabat amb la instal·lació i configuració del MySQL Connector tant per a PHP com per a Python.
Pas 7: codis
En aquesta àrea, discutim els codis de programació que s’utilitzaran per a aquest projecte. Sortim amb el codi Python, que es divideix en dos fitxers: 'comprobar.py', que es connectarà a la base de dades i buscarà Yun Arduino si el resultat hi és, i el fitxer 'control. py ', responsable de gravar qualsevol targeta llegida pel lector ID-20, sigui o no a la base de dades d'usuaris registrats. A continuació, continueu amb la descripció dels fitxers PHP, que són: 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'delete2. php ',' guardar.php '' consulta.php ',' configuracion.php '. Per a aquests fitxers redundarem tots dos perquè són fàcils d'entendre. Finalment, acabeu amb el codi que pujarà com el nostre esbós Arduino.
Pas 8: fitxers Python
Com s'ha esmentat anteriorment, els nostres scripts Python funcionaven amb la biblioteca o classe "MySQLdb", que ja s'ha instal·lat anteriorment. Comenceu creant un fitxer amb ".py" anomenat "comprobar.py" al nostre editor, us recomano utilitzar aquests casos per programar a Python, l'editor Sublime Text 3, que podeu descarregar al seu lloc web www.sublimetext.com. Comencem per importar la biblioteca per connectar-nos a la nostra base de dades MySQL, la biblioteca "sys" que ens permetrà comunicar-nos amb el nostre Arduino Yun:
- importar MySQLdb
- importar sistemes
Un cop importades aquestes llibreries o classes, afegim variables al vostre codi, que seran les dades de connexió de la nostra base de dades MySQL, òssia:
- host = "127.0.0.1" # correspon a l'adreça del nostre servidor MySQL.
- user = "your-seat" # és l'usuari de la nostra base de dades.
- passw = "la vostra contrasenya" és per a la contrasenya de l'usuari. base = "arduino" # Aquest és el nom de la base de dades que utilitzeu.
Ara comenceu pels codis de seqüència base:
- mentre que és cert:
- db = MySQLdb.connect (amfitrió, usuari, passw, base)
- cur = db.cursor ()
- resultat = cur.execute ("" "SELECCIONA * DE usuarisrfid WHERE rfid LIKE% s ORDER BY id" "", (sys.argv [1],))
- if (resultat == 1):
- imprimir 1
- sys.exit (1)
- en cas contrari:
- imprimir 2
- sys.exit (1)
Si ens adonem, en el judici 'cur.execute result = ("" "SELECCIONA * DES D'ON rfid usuariosrfid LIKE% s ORDER BY id" "" (sys.argv [1]))' per executar la nostra consulta compareu la variable '(sys.argv [1])' que és el codi de la targeta RFID Arduino amb totes les dades de camp 'rfid' taula 'usuariosrfid', que, trobant el codi d'igualtat de l'arduino i els codis o emmagatzemats a la base de dades, tornar 1, si això no és cert i no hi ha igualtat entre el codi de l'arduino i alguns de la base, tornarem 2. Aquests números els rebrà l'Arduino. Continuem amb el següent fitxer 'control.py. Aquest fitxer funciona de la mateixa manera que l'anterior, només conservant un regust a la taula; aquests registres guardats els recollirà el lector ID-20 connectat al nostre Arduino Yun, de manera que podem mantenir tots els usuaris registrats que utilitzin el nostre lector RFID.
Pas 9: fitxers PHP
A continuació, procediu amb els fitxers. "Php" que mantindrà la carpeta del nostre servidor, per fer-ho recordeu que és necessari que aquests fitxers un cop llestos, es guardin al skit del nostre projecte, que genera automàticament l'IDE Arduino, també heu de recordar-ho, tot i que anticipo això, que quan pugem al nostre esbós Arduino Yun, el carregem per Wi-Fi, així que el deixo a la mateixa pàgina del manual Arduino, www.arduino. cc / ca / Guide / Arduino Yun # toc14, que explica més sobre això, i com heu d'anar preparat la targeta MicroSD per a aquest tipus de projecte on els fitxers s'han d'emmagatzemar al servidor. Els fitxers PHP seran 10 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'borrar2.php', 'guardar. php "consulta.php", "configuracion.php", que estarà enllaçat amb l'altre, per mantenir un menú bàsic sempre en execució i accessible. Simplement expliqueu el fitxer 'configuracion.php', que funciona com a connector amb la nostra base de dades. Al nostre editor, programem el següent codi al fitxer:
- <? php
- / / Servidor de dades i base de dades
- $ server = "localhost";
- $ username = "el vostre seient";
- $ password = "contrasenya";
- $ database_name = "arduino";
Aquestes són les dades que necessitem per connectar-nos a la nostra base de dades a l’arduino seran les mateixes que fem servir als nostres scripts Python. Acabeu de programar la sentència connect, que utilitzava el nostre script:
- $ conexion = mysql_connect ($ server, $ username, $ password) or die ("Problemes per tractar d'establir la connexió");
- $ bd_sel = mysql_select_db ($ database_name) o mor ("Problemes a seleccionar la base de dades");
- ?>
Els altres fitxers s’adjunten.
Pas 10: Finalment, el programa de l'Arduino YÚN
Arribem a la part principal d’aquest tutorial, programant el nostre Arduino Yun, no hi ha detalls que ressaltaran tot el codi, ja que és bastant extens, només esmentem els següents punts importants:
- El codi consta de 6 funcions principals i 13 funcions secundàries, que només són un suport per a l’ús de la pantalla LCD de sèrie.
- S’importaran només tres classes, “SoftwareSerial.h”, amb la qual introduirem Serial Attached per connectar-nos amb l’ID-20 i la Serial LCD, la classe principal “Bridge.h” amb la qual farem la connexió entre Linux i ATMEGA32U4, i la classe 'Process.h' servirà per a processos de consulta a Linux.
- Definiu només tres pins, que en facin servir d'altres, que siguin gratuïts.
S'adjunta el codi
Pas 11: Bon any nou
Continuo minuciosament per servir-vos i ajudar-vos a obtenir més informació sobre l'Arduino Yun. Deixeu tots els fitxers adjunts al final. Per als parlants de llengua espanyola, deixo aquest tutorial però en castellà amb els fitxers necessaris. Espero que tingueu un feliç any nou, gaudiu-ne i tingueu èxit aquest 2014!
Recomanat:
Control d’accés als aliments per a gats (ESP8266 + Servomotor + Impressió 3D): 5 passos (amb imatges)
Control d’accés als aliments per a gats (ESP8266 + Servomotor + impressió 3D): aquest projecte repassa el procés que vaig utilitzar per crear un bol automatitzat per a aliments per a gats, per al meu gat diabètic Chaz, ancian. Mira, necessita esmorzar abans d’obtenir la insulina, però sovint m’oblido de recollir el plat per menjar abans d’anar a dormir, cosa que
Canviar l'accés amb Makey Makey: 3 passos (amb imatges)
Accés a commutadors amb Makey Makey: aquest sistema de dos commutadors utilitza una safata per a la volta (jo he utilitzat aquesta d’IKEA), material conductor (he utilitzat cinta d’alumini i coure, però sempre es pot utilitzar un paper d’alumini d’alumini de cuina), cinta adhesiva i un Makey Makey per crear un commutador només tàctil. El sistema c
Punt d’accés Wifi Raspberry Pi Zero amb una antena PCB personalitzada: 6 passos (amb imatges)
Punt d’accés Wifi Raspberry Pi Zero amb una antena PCB personalitzada: què estem fent? El títol d’aquest tutorial conté molts termes tècnics. Desglossem-ho. Què és un Raspberry Pi Zero (Rπ0)? Un Raspberry Pi Zero és un petit equip. És la versió més petita de l'ordinador de placa única Raspberry Pi
Control d'accés RFID amb Arduino Yun i Raspberry Pi: 11 passos
Control d'accés RFID amb Arduino Yun i Raspberry Pi: Benvingut al meu instructable. Heu cercat en línia un sistema de control d’accés RFID que pugui tenir diversos usuaris sense utilitzar una clau mestra per programar-lo? Un sistema que pot registrar l'accés amb el nom de la persona? Un sistema on podeu afegir fàcilment
Accés al teclat 4x4 amb Arduino: 5 passos (amb imatges)
Accés al teclat 4x4 amb Arduino: el teclat 4x4 és un compost de 16 tecles disposades com una matriu. El mètode utilitzat per accedir al teclat 4x4 amb mètode d’escaneig matricial. El teclat 4x4 requereix 8 pins per accedir-hi, és a dir, 4 pins per a les columnes i 4 pins per a la línia. Com l'escaneig m