Az Arduino YÚN hozzáférésének ellenőrzése MySQL, PHP5 és Python segítségével: 11 lépés (képekkel)
Az Arduino YÚN hozzáférésének ellenőrzése MySQL, PHP5 és Python segítségével: 11 lépés (képekkel)
Anonim
Az Arduino YÚN hozzáférésének ellenőrzése MySQL, PHP5 és Python segítségével
Az Arduino YÚN hozzáférésének ellenőrzése MySQL, PHP5 és Python segítségével

Hello barátok!

Nos, mint tudod, szeptemberben az Arduino új premierpajzsát, az Arduino YUN -t. Ennek a kis barátnak van egy Linux beágyazott rendszere, amellyel bármit futtathatunk, amire gondolsz (legalábbis eddig). Bár nagyon kevés információ található ezen az új táblán, az Arduino oldalt bemutató útmutatóban (amely később linkelni fog), valamint egy kis Linux -ismerettel el lehet végezni egy nagyprojektet, a Control Access -et. Ezúttal elmagyarázom, hogyan kell végrehajtani ezt a projektet, de kellő módon az egész Arduino -n keresztül. Ez működik, köszönhetően a MySQL adatbázis -kiszolgálónak, amely a YUN -ban fog elhelyezkedni, ez az adatbázis két táblát tárol, az egyiket egy adott RFID -hez kapcsolódó felhasználók számára, egy másik táblázatot pedig az olvasónkon áthaladó összes kártya nyilvántartására. Miközben programozási nyelveket használunk, PHP és Python szkripteket hajtunk végre néhány alapvető és az adatainkkal való munkához. Ezen túlmenően, a hardver általános költségeinél, egy ID-20 olvasót használunk a 16 karakteres soros LCD mellett, valamint egy RGB LED-et, amely informátorunk lesz. Használhatjuk ezt a hozzáférés -vezérlést, amit csak gondolunk, módosíthatunk és hozzáadhatunk egy relét vagy egy másik ötletet. Bármire használható, ahol kártyái vannak, és rekordot szeretne. Ne feledje, hogy ez a dokumentum ingyenes közzététel, kereskedelmi felhasználás és mentesített módosítások nem megengedettek. Remélem, ez egy sokkal kiterjedtebb útja a nyílt forráskódú elektronikának. Tehát továbblépünk a következő lépéshez, a feleknek szükségük van rá!

1. lépés: Az alkatrészek

A részek
A részek
A részek
A részek
A részek
A részek

A projekt végrehajtásához a következőkre van szükségünk: * Arduino YUN https://www.sparkfun.com/products/12053 71,95 USD * RFID olvasó ID-20 (125 kHz) https://www.sparkfun.com/products/11828 34,95 USD * RFID Reader Breakout https://www.sparkfun.com/products/8423 0,95 USD * Basic 16x2 karakterű LCD 5V https://www.sparkfun.com/products/790 16,95 USD * Soros engedélyezett LCD hátizsák https:// www. sparkfun.com/products/258 16,95 USD * 5 mm -es LED RGB. Összességében, ha a Sparkfun boltban vásárol, minden 150 dollár közelében lesz. Ha Latin -Amerikában él, azt javaslom, hogy vásárolja meg az alkatrészeket a www.olimex.cl webhelyen, ez egy nagyon jó chilei elektronikai üzlet.

2. lépés: Összeszerelés

Az összeszerelés
Az összeszerelés
Az összeszerelés
Az összeszerelés
Az összeszerelés
Az összeszerelés

Kevés kapcsolat, amit röviden le kell írni. RGB LED esetén a piros LED -tűnek az Arduino 9 -es tűjén kell lennie, a zöld LED -nek az Arduino 8 -as érintkezőjén kell lennie, és a kék LED -nek az Arduino 7 -es tűjén kell lennie. Az ID-20 esetén a táblázatban megadott sorrendben a következő tűket kell csatlakoztatnia, a tűolvasót az Arduino tűhöz: ID-20-as érintkező az Arduino ID-20 / Arduino PIN-kódhoz-GND PIN 2-5V PIN 7 - GND PIN 9- PIN 10 PIN 10- BUZZER PIN 11- 5V És végül, a soros LCD csatlakozóra csak az Arduino 5 és GND csapjaira lesz szükség, míg az LCD soros RX csap a 11-es tűre megy az Arduino.

3. lépés: Az Arduino Yun programozása

Az Arduino Yun programozása
Az Arduino Yun programozása

Projektünk elkészítéséhez el kell kezdenünk a szoftver részével, telepítenünk kell néhány fájlt az Arduino opkg Yun -ra:

  • MySQL szerver
  • PHP5
  • MySQLdb for Python 2.7
  • A PHP5 módosítása MySQL -re

Emlékezzünk vissza, hogy a Bridge -ben alapértelmezés szerint telepítve van a Python 2.7, így ehhez soha nem kell frissítést telepítenie. Kezdje el az SSH naplózását, és lépjen be az Arduino Yun -ba, miután elindította őket, írja be a következő parancsot az opkg alkalmazások listájának frissítéséhez:

opkg frissítés

4. lépés: A MySQL telepítése

MySQL telepítése
MySQL telepítése

Most létrehozzuk a MySQL Server telepítését és konfigurálását, írja be a következő parancsokat a konzolba:

  1. opkg install libpthread libncurses libreadline mysql-server
  2. sed -i 's, ^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 –-force
  6. /etc/init.d/mysqld start
  7. /etc/init.d/mysqld enable
  8. mysqladmin -u root jelszó 'tu-nueva-clave'

Miután befejezte kódjaink beírását és elindította a MySQL szervert, konfigurálnia kell a kezelni kívánt adatbázist. Mielőtt azonban elkezdenénk begépelni a kódokat, meg kell értenünk a táblánkat tartalmazó mezőket. A tábla 5 tanfolyamból áll, "id", "name", "name", "email", "rfid", hogy néhányat piacra dobjak. Röviden elmagyarázom használatukat.

  • 'id': az a mező vagy attribútum int oszlop, amely megmondja nekünk a felhasználói azonosítóhoz rendelt számot, ezt a számot ugyanaz az adatbázis osztja ki, és ez lesz a rekordjaink indexelésének módja.
  • „nombre”: az attribútum oszlop „varchar” lesz, ezt a név jelzi, amellyel a kártyánk felhasználója azonosult.
  • "apellido": az attribútum oszlop "varchar" lesz, ezt a vezetéknév jelezheti, amelyhez felhasználónk társult.
  • 'Correo': a 'varchar' attribútum oszlop, amely tartalmazza a társított felhasználó e-mailjét.
  • „rfid”: a „varchar” attribútum oszlop, amely tartalmazza az Ön által használt RFID kártya kódját.

(A változókat spanyolul fogom használni, mert az én anyanyelvem, és szeretem a c -t:) Most már gond nélkül konfigurálhatjuk adatbázisunkat, ezért létrehozunk egy „arduino” hívást MySQL. A következő kódot kell beírnia:

mysqladmin -u root -p create arduino

Kérjük a telepítéskor korábban megadott jelszót, ezt elküldjük az alap létrehozásának befejezéséhez. Mindezek után beírjuk a lekérdezést a MySQL -be, a következő kódot kell beírni a konzolba:

mysql -gyökér -p

Ismét kérjük a jelszót, újra be kell küldenie. Miután belépett a MySQL konzolparancsba, a mutatónak ('mysql>') gépelésre késznek kell lennie. Az első dolog, amit meg fogunk tenni, az „arduino” adatok bázisának áthelyezése. Ezt a MySQL konzolon a következő parancs beírásával teheti meg:

USE arduino

Úgy gondoljuk, hogy az adatbázisban található „usuariosrfid” névtábla ezt a projektet fogja használni, írja be ezt a kódot a MySQL konzolba:

  1. TÁBLÁZAT LÉTREHOZÁSA "usuariosrfid" (
  2. `id` int (255) NOT NULL AUTO_INCREMENT,
  3. `nombre` varchar (300) NOT NULL,
  4. "apellido" varchar (300) NULL,
  5. `Koreo` varchar (300) NOT NULL,
  6. "rfid" varchar (300) NULL,
  7. ELSŐGOMB ("id")
  8. ) MOTOR = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 0;

* Ne feledje, hogy amikor megnyomja az ENTER billentyűt a parancssor végén a MySQL konzolban, addig nem fog futni, amíg meg nem találja a ';' Ezért a kód végén a ";" A MySQL telepítésének és konfigurálásának befejezéséhez ki kell töltenünk néhány tesztmezőt a bázisunkon belül. Írja be a következő sorokat:

  1. INSERT INTO "usuariosrfid" ("id", "nombre", "apellido", "koreo", "rfid") ÉRTÉKEK
  2. (1, „Pedro”, „Suarez”, „[email protected]”, „1234a-12345-b-123c”),
  3. (4, „Matias”, „Lopez”, „[email protected]”, „987a-9876b-987c”);

Most folytassa a "ControlUsuarios" táblázat létrehozásával, amely tartalmazza az olvasó által elhaladó összes RFID kódot, ez a táblázat 3 mezőből áll: "id", "rfid", "date".

  • Az 'id' az a mező vagy attribútum int oszlop, amely tartalmazza az indexeléshez használt minden rekord azonosítóját.
  • Az „rfid” attribútum az RFID címkekódot tartalmazó „varchar” oszlop, amelyet az olvasó olvasott.
  • A "dátum" a "varchar" attribútum oszlop, amely tartalmazza a kártya olvasásának dátumát.

A "ControlUsuarios" táblázat létrehozásához a következő kódot kell beírnunk a MySQL konzolba:

  1. CREATE TABLE "ControlUsuarios" (
  2. `id` int (255) NOT NULL AUTO_INCREMENT,
  3. "rfid" varchar (300) NULL,
  4. `fecha` varchar (300) NOT NULL,
  5. ELSŐGOMB ("id")
  6. ) MOTOR = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 0;

Végül írja be az 'exit;' a konzolban, hogy kilépjen a MySQL lekérdezésből, és térjen vissza az SHH -hoz, hogy elkezdhessük a PHP5 -öt.

5. lépés: A PHP5 telepítése

A PHP5 telepítése
A PHP5 telepítése

Folytassa a PHP5 telepítését és konfigurálását. Ez a telepítés egyszerűbb, mint a MySQL, ezért nem kerülhet semmibe. Először telepítse az opkg csomagot az Arduino Yun letöltéséről és telepítéséről, ezért írja be az Arduino SSH konzolját:

opkg telepítse a php5 php5-cgi-t

Miután letöltöttük és telepítettük a PHP5 -öt az Arduino Yun -ra, ezért beállítottuk az uHTTPd gyökérfájlt, az Arduino alapértelmezett http -kiszolgálóját, azt javaslom, hogy csak ezt a http -kiszolgálót használja, mert sokoldalúbb és hozzáférhetőbb konfigurációban, az Apache vagy a Lighttpd nehezebb beállítani, amikor új vagy ezen a területen. Ennek konfigurálásához használja a 'vi' SSH fájlszerkesztőt, ehhez minimális ismeretekkel kell rendelkeznie a szerkesztő használatához. Kezdje el beírni ezt a kódot a konzolban, hogy hozzáférjen az uHTTPd beállításfájlhoz:

vi/etc/config/uhttpd

Nyomja meg az 'i' gombot a fájl szerkesztéséhez, majd lépjen a kód sorába, amelyet Ön írt '# list tolmács. "php = / usr / bin / php-cgi" ". A sor elején törölni kell a „#” karaktert, majd nyomja meg az Esc billentyűt („ESC”). Ha készen áll, írja be a „: wq” parancsot a fájl mentéséhez és a kilépéshez. Újra kell indítania a szervert uHTTPd, ehhez írja be az SSH parancssorába a következő kódot:

/etc/init.d/uhttpd restart

6. lépés: A Conector MySQL telepítése PHP5 és Python számára

A Conector MySQL telepítése PHP5 és Python számára
A Conector MySQL telepítése PHP5 és Python számára

Folytassa a modulok telepítését és konfigurálását a MySQL adatbázis PHP és Python rendszerrel való összekapcsolásához. Kezdjük a PHP csatlakozóval. Írja be a következő kódot:

  1. opkg install php5-mod-mysql
  2. sed -i 's;; kiterjesztés = mysql.so, kiterjesztés = mysql.so, g' /etc/php.ini

Ha kész, akkor nem kell újraindítani a szervert uHTTPd, azonnal használatra kész. Most folytassa a Python csatlakozójával, ehhez be kell írnia a következő kódot:

opkg install python-mysql

Ezzel az utolsó lépéssel készen állunk az Arduino Yun projektünkre az ID-20 RFID 125khz kártyaolvasóval. Fejezze be ezt a részt visszajelzéssel arról, amit tettünk:

  • Telepítettük a MySQL szervert az Arduino Yun -ra, majd konfiguráltuk, a tesztadatok beillesztésével zárul.
  • Telepítse a PHP kiegészítést a szerverünkre.
  • Befejeztük a MySQL Connector telepítését és konfigurálását mind a PHP, mind a Python számára.

7. lépés: Kódok

Ezen a területen a projekthez használandó programozási kódokat tárgyaljuk. Python kóddal indulunk, amely két fájlra oszlik: „comprobar.py”, amely kapcsolódik az adatbázishoz, és megkeresi Yun Arduino -t, ha az eredmény benne van, és a fájl „control”. py ', felelős minden olyan kártya rögzítéséért, amelyet az olvasó ID-20 olvas, függetlenül attól, hogy a regisztrált felhasználók adatbázisában van-e. Ezután folytassa a PHP -fájlok leírásával: 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'delete2. php ',' guardar.php 'consulta.php', 'configuracion.php'. Ezeknél a fájloknál redundaremos mindkettő, mert könnyen érthetőek. Végül fejezze be a kódot, amely az Arduino vázlatunk szerint emelkedik.

8. lépés: Fájlok Python

Fájlok Python
Fájlok Python

Amint korábban említettük, a Python -szkriptjeink a korábban már telepített "MySQLdb" könyvtárral vagy osztállyal működtek. Kezdje azzal, hogy szerkesztőjében létrehoz egy ".py" fájlt, amelyet "comprobar.py" -nek hívnak, azt javaslom, hogy használja ezeket az eseteket a Python programozásához, a Sublime Text 3 szerkesztőhöz, amelyet letölthet a webhelyükről: www.sublimetext.com. Kezdjük azzal, hogy importáljuk a könyvtárat, hogy csatlakozzunk a MySQL adatbázisunkhoz, a 'sys' könyvtárhoz, amely lehetővé teszi számunkra, hogy kommunikáljunk Arduino Yun -nal:

  1. importálja a MySQLdb -t
  2. rendszer importálása

Miután importálta ezeket a könyvtárakat vagy osztályokat, változókat adunk hozzá a kódjához, amelyek a MySQL adatbázisunkból származó kapcsolati adatok lesznek, csont:

  1. host = "127.0.0.1" # a MySQL szerverünk címének felel meg.
  2. user = "your-seat" # az adatbázisunk felhasználója.
  3. passw = "az Ön jelszava" a felhasználó jelszavát jelenti. base = "arduino" # Ez az Ön által használt adatbázis neve.

Most kezdje az alap szkript kódokkal:

  1. míg igaz:
  2. db = MySQLdb.connect (gazdagép, felhasználó, jelszó, bázis)
  3. cur = db. kurzor ()
  4. resultado = cur.execute ("" "SELECT * FROM usuariosrfid WHERE rfid LIKE %s ORDER BY id" "", (sys.argv [1],))
  5. ha (resultado == 1):
  6. nyomtatás 1
  7. sys.exit (1)
  8. más:
  9. nyomtatás 2
  10. sys.exit (1)

Ha rájövünk, az ítéletben a 'cur.execute result = ("" "SELECT * FROM WHERE rfid usuariosrfid LIKE% s ORDER BY id" "" (sys.argv [1]))' parancs lekérdezésünk végrehajtásához hasonlítsa össze a változót „(sys.argv [1])”, amely az Arduino RFID kártyáról származó kód, az „usuariosrfid” összes „rfid” tábla mezőadatával, amely az arduino egyenlőségi kódját és az adatbázisban tárolt vagy kódokat megtalálva return 1, ha ez nem igaz, és nincs egyenlőség az arduino kódja és néhány bázis között, akkor visszaadjuk a 2. Ezeket a számokat az Arduino kapja meg. Folytatjuk a következő 'control.py' fájllal. Ez a fájl ugyanúgy működik, mint a fentiek, csak utóízt tartva az asztalon, ezeket a mentett rekordokat az Arduino Yun-hoz csatlakoztatott ID-20 olvasó gyűjti össze, így minden regisztrált felhasználót megtarthatunk, aki RFID olvasónkat használja.

9. lépés: Fájlok PHP

Ezután folytassa a fájlokkal. „Php”, amely meg fogja őrizni a mappát a szerverünktől, ne feledje, hogy ezeket a fájlokat, ha elkészültek, el kell menteni a projektünkben, amely automatikusan generálja az IDE Arduino -t, emlékeznie kell, bár előre sejtem, hogy ezt, hogy amikor felmegyünk az Arduino Yun vázlatunkhoz, Wi -Fi -n keresztül töltünk fel, ezért ugyanazon az oldalon hagyom a kézikönyvet Arduino, www.arduino. cc / hu / Útmutató / Arduino Yun # toc14, amely bővebben elmagyarázza róla, és hogyan kell előkészíteni a MicroSD kártyát az ilyen típusú projektekhez, ahol a fájlokat a szerveren kell tárolni. A PHP fájlok 10 „consultaRelacion.php”, „consultaControl.php”, „index.php” „modificar2.php”, „modificar.php”, „borrar.php”, „borrar2.php”, „guardar” formátumúak lesznek. php '' consulta.php ',' configuracion.php ', amelyek hiperhivatkoznak a másikra, hogy az alapmenü mindig futó és elérhető legyen. Csak magyarázza el a 'configuracion.php' fájlt, amely adatbázisunk összekötőjeként működik. Szerkesztőnkben a következő kódot ütemezzük a fájlban:

  1. <? php
  2. / / Adatszerver és adatbázis
  3. $ szerver = "localhost";
  4. $ username = "a helyed";
  5. $ password = "jelszó";
  6. $ database_name = "arduino";

Ezek azok az adatok, amelyekhez az arduino adatbázisunkhoz kell csatlakozni, ugyanazok lesznek, mint a Python szkriptekben. Fejezze be a connect utasítás programozását, amely a szkriptünket használta:

  1. $ conexion = mysql_connect ($ szerver, $ felhasználónév, $ jelszó) vagy meghal ("Problemas al tratar de establecer la conexion");
  2. $ bd_sel = mysql_select_db ($ database_name) vagy die ("Problemas al seleccionar la base de datos");
  3. ?>

A többi fájl csatolva van.

10. lépés: Végül az Arduino YÚN programja

Elérkeztünk ennek az oktatóanyagnak a fő részéhez, az Arduino Yun programozásához, semmilyen részlet nem fogja kiemelni az összes kódot, mivel meglehetősen kiterjedt, csak a következő fontos pontokat említse meg:

  • A kód 6 fő funkcióból és 13 másodlagos funkcióból áll, amelyek csak támogatják a soros LCD használatát.
  • Csak három osztály, a „SoftwareSerial.h” importálható, amellyel soros csatolást adunk meg, hogy csatlakozzunk az ID-20-hoz és a soros LCD-hez, a „Bridge.h” fő osztályhoz, amellyel kapcsolatot létesítünk a Linux és az ATMEGA32U4 között, és a 'Process.h' osztály szolgál konzultációs folyamatokhoz Linux alatt.
  • Csak három tűt definiáljon, amelyek mások szabadok.

A kód csatolva van

11. lépés: Boldog új évet

Ezt továbbra is aprólékosan folytatom, hogy szolgáljalak, és segítsek több információ megszerzésében az Arduino Yunról. Hagyjon minden fájlt a végéhez csatolva. A spanyol nyelvű beszélők számára hagyom ezt az oktatóanyagot, de spanyolul a szükséges fájlokkal. Boldog új évet kívánok, sok sikert és sikeres 2014 -et!

Ajánlott: