Obsah:

Ovládejte přístup Arduino YÚN pomocí MySQL, PHP5 a Pythonu: 11 kroků (s obrázky)
Ovládejte přístup Arduino YÚN pomocí MySQL, PHP5 a Pythonu: 11 kroků (s obrázky)

Video: Ovládejte přístup Arduino YÚN pomocí MySQL, PHP5 a Pythonu: 11 kroků (s obrázky)

Video: Ovládejte přístup Arduino YÚN pomocí MySQL, PHP5 a Pythonu: 11 kroků (s obrázky)
Video: Arduino Videotutoriál 6: Ovládání DC motoru 2024, Červenec
Anonim
Ovládejte přístup Arduino YÚN pomocí MySQL, PHP5 a Pythonu
Ovládejte přístup Arduino YÚN pomocí MySQL, PHP5 a Pythonu

Dobrý den, přátelé!

Jak víte, v září nový premiérový štít Arduina, Arduino YUN. Tento malý přítel má vestavěný systém Linux, se kterým můžeme provozovat vše, co vás napadne (alespoň zatím). I když je na této nové desce velmi málo informací, s odletem v příručce, která poskytuje stránku Arduino (na kterou se bude odkazovat později), plus trocha znalostí mnoha Linuxů, lze provést velký projekt Control Access. Tentokrát vysvětlím, jak tento projekt provést, ale dostatečně konkrétním způsobem v celém našem Arduinu. To funguje, díky databázovému serveru MySQL, který se usadí v naší YUN, bude tato databáze ukládat dvě tabulky, jednu pro uživatele spojené s konkrétním RFID a druhou tabulku pro uchovávání záznamů o všech kartách, které prošly naší čtečkou. Zatímco používáme programovací jazyky skripty PHP a Python k provádění některých základních a práci s našimi daty. Kromě toho, v režii hardwaru, používáme čtečku ID-20 vedle sériového LCD o 16 znacích plus RGB LED, což budou naše informující stavy. Můžeme použít toto řízení přístupu ke všemu, co nás napadne, upravit a přidat relé nebo jiný nápad. Lze jej použít na cokoli, kde máte karty a chcete záznam. Připomeňme, že tento dokument je bezplatnou publikací, komerční použití a úpravy osvobozené od daně nejsou povoleny. Doufám, že je to mnohem rozsáhlejší cesta elektroniky s otevřeným zdrojovým kódem. Přejdeme tedy k dalšímu kroku, večírky potřebují!

Krok 1: Díly

Části
Části
Části
Části
Části
Části

K provedení tohoto projektu potřebujeme: * Arduino YUN https://www.sparkfun.com/products/12053 71,95 $ * čtečka RFID ID-20 (125 kHz) https://www.sparkfun.com/products/11828 34,95 $ * Čtečka RFID čtečky https://www.sparkfun.com/products/8423 0,95 $ * Základní 16x2 znakový LCD 5V https://www.sparkfun.com/products/790 16,95 $ * Sériově povolený LCD batoh https:// www. sparkfun.com/products/258 16,95 $ * LED RGB 5 mm https://www.sparkfun.com/products/105 $ 1,95 * Bzučák https://www.sparkfun.com/products/7950 $ 1,95 * Kolík a vodič konektoru Somes přibližně 5,00 $. Celkově, pokud nakoupíte v obchodě Sparkfun, vše bude blízko 150 $. Pokud žijete v Latinské Americe, doporučil bych koupit díly na www.olimex.cl, což je velmi dobrý chilský obchod s elektronikou.

Krok 2: Sestavení

Sestavování
Sestavování
Sestavování
Sestavování
Sestavování
Sestavování

Několik spojení, které je třeba udělat, kterým se stručně vysvětlí. U RGB LED musí být červený LED kolík na pinu 9 Arduina, pin zelená LED by měla svítit na pinu Arduino 8 a pin modrá LED by měla být na pinu 7 Arduina. Pro ID-20 musíte připojit následující piny, jak je uvedeno v tabulce v příslušném pořadí, čtečku pinů na pin Arduino: Pin ID-20 na pin Arduino ID-20 / Arduino PIN 1-GND PIN 2-5V PIN 7 - GND PIN 9- PIN 10 PIN 10- BUZZER PIN 11- 5V A konečně, pro sériový LCD konektor bude nutné použít pouze 5v a GND piny Arduina, zatímco pin LCD Serial RX jde na pin 11 Arduina.

Krok 3: Programování Arduino Yun

Programování Arduino Yun
Programování Arduino Yun

Abychom vytvořili náš projekt, musíme začít s částí softwaru, nainstalovat nějaké soubory na náš Arduino opkg Yun:

  • Server MySQL
  • PHP5
  • MySQLdb pro Python 2.7
  • Mod PHP5 na MySQL

Připomeňme si, že ve výchozím nastavení je v Bridge nainstalován Python 2.7, takže k tomu nikdy nebudete muset instalovat žádnou aktualizaci. Začněte protokolovat SSH odvážit se vstoupit do našeho Arduino Yun, jakmile je spustíte, zadejte následující příkaz k aktualizaci seznamu aplikací opkg:

aktualizace opkg

Krok 4: Instalace MySQL

Instalace MySQL
Instalace MySQL

Nyní zavedeme instalaci a konfiguraci serveru MySQL, do konzoly zadejte následující příkazy:

  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-síla
  6. /etc/init.d/mysqld start
  7. /etc/init.d/mysqld povolit
  8. mysqladmin -u root heslo 'tu-nueva-clave'

Po dokončení zadávání našich kódů a spuštění serveru MySQL byste měli nakonfigurovat databázi, se kterou se bude manipulovat. Než však začneme psát kódy, musíme porozumět polím, která nesou naši tabulku. Deska se bude skládat z 5 kurzů, „id“, „name“, „name“, „email“, „rfid“, abych některé z nich uvedl na trh. Stručně vysvětlím jejich použití.

  • 'id': bude pole nebo atribut int sloupec, který nám sdělí číslo přiřazené ID uživatele, toto číslo je přiřazeno stejnou databází a bude způsobem indexování našich záznamů.
  • 'nombre': sloupec atributu bude 'varchar' může být označen jménem, se kterým je náš uživatel karty identifikován.
  • 'apellido': sloupec atributu bude 'varchar' může být označen příjmením, ke kterému je náš uživatel přidružen.
  • 'correo': je sloupec atributu 'varchar', který bude obsahovat e-mail přidruženého uživatele.
  • 'rfid': je sloupec atributu 'varchar', který bude obsahovat kód karty RFID, kterou používáte.

(Budu používat proměnné ve španělštině, protože je to můj rodný jazyk a mám rád c:) Nyní můžeme bez problémů konfigurovat naši databázi, proto vytvoříme volání aSrduino MySQL. Musíte zadat následující kód:

mysqladmin -u root -p vytvořit arduino

Požádáme o heslo, které jsme zadali dříve v instalaci, odešleme ho k dokončení vytvoření základny. Po dokončení všeho zadáme dotaz do MySQL, do konzoly byste měli zadat následující kód:

mysql -root -p

Znovu žádáme o heslo, musíte jej zadat znovu. Jakmile jsme v příkazu konzoly MySQL, ukazatel ('mysql>') by měl vypadat připraven k psaní. První věc, kterou uděláme, je přesun základny pro data „arduino“, aby na ní pracovala. To se provádí zadáním následujícího příkazu do konzoly MySQL:

POUŽIJTE arduino

Věříme, že pro tento projekt použije tabulku jmen 'usuariosrfid' v databázi, zadejte tento kód do konzoly MySQL:

  1. VYTVOŘIT TABULKU `usuariosrfid` (
  2. `id` int (255) NOT NULL AUTO_INCREMENT,
  3. `nombre` varchar (300) NENÍ NULL,
  4. `apellido` varchar (300) NOT NULL,
  5. `correo` varchar (300) NENÍ NULL,
  6. `rfid` varchar (300) NENÍ NULL,
  7. PRIMARY KEY (`id`)
  8. ) MOTOR = VÝCHOZÍ CHARSET MyISAM = latin1 AUTO_INCREMENT = 0;

* Pamatujte, že když stisknete klávesu ENTER na konci příkazového řádku v konzole MySQL, nespustí se, dokud nenajdete ';' Proto je na konci kódu ';' K dokončení instalace a konfigurace MySQL vyplníme některá testovací pole v naší základně. Zadejte do následujících řádků:

  1. VLOŽIT DO HODNOTY `usuariosrfid` (` id`, `nombre`,` apellido`, `correo`,` rfid`)
  2. (1, 'Pedro', 'Suarez', '[email protected]', '1234a-12345-b-123c'),
  3. (4, 'Matias', 'Lopez', '[email protected]', '987a-9876b-987c');

Nyní pokračujte vytvořením tabulky 'ControlUsuarios', která bude obsahovat všechny RFID kódy procházející čtečkou, tato tabulka se skládá ze 3 polí, 'id', 'rfid', 'date'.

  • 'id' je pole nebo sloupec atributu int, který bude obsahovat id každého záznamu pro indexování.
  • Atribut 'rfid' je sloupec 'varchar' obsahující kód tagu RFID, který přečetl čtenář.
  • 'date' je sloupec atributu 'varchar', který bude obsahovat datum načtení karty.

K vytvoření tabulky „ControlUsuarios“zadáme do konzoly MySQL následující kód:

  1. VYTVOŘIT TABULKU `ControlUsuarios` (
  2. `id` int (255) NOT NULL AUTO_INCREMENT,
  3. `rfid` varchar (300) NENÍ NULL,
  4. `fecha` varchar (300) NENÍ NULL,
  5. PRIMARY KEY (`id`)
  6. ) MOTOR = VÝCHOZÍ CHARSET MyISAM = latin1 AUTO_INCREMENT = 0;

Nakonec zadejte 'exit;' v konzole ukončete MySQL Query a vraťte se do SHH, abychom mohli začít s PHP5.

Krok 5: Instalace PHP5

Instalace PHP5
Instalace PHP5

Pokračujte v instalaci a konfiguraci PHP5. Tato instalace je jednodušší než MySQL, takže by je neměla nic stát. Nejprve nainstalujte balíček opkg ze stahování a instalace Arduino Yun, zadejte tedy do konzoly SSH Arduino toto:

opkg nainstalovat php5 php5-cgi

Po stažení a instalaci PHP5 na náš Arduino Yun, takže jsme nakonfigurovali kořenový soubor uHTTPd, http server, který přináší Arduino jako výchozí, doporučuji používat pouze tento http server, protože je univerzálnější a přístupnější v konfiguraci, ne Apache nebo Lighttpd jsou obtížnější nastavit, když jste v tomto poli noví. Chcete -li to nakonfigurovat, použijte editor souborů 'vi' SSH, k tomu musíte mít minimální znalosti, abyste mohli tento editor používat. Začněte psát tento kód do konzoly, abyste získali přístup k souboru nastavení uHTTPd:

vi/etc/config/uhttpd

Stiskněte 'i' pro úpravu souboru, poté přejděte na řádek kódu, který jste napsali '# list interpret. "php = / usr / bin / php-cgi" '. Na začátku řádku musíte odstranit znak '#' a poté stisknout klávesu Escape (klávesa 'ESC'), jakmile budete připraveni, musíte zadat příkaz ': wq' pro uložení souboru a ukončení. Musíte restartovat server uHTTPd, za tímto účelem byste do příkazové konzoly SSH měli zadat následující kód:

/etc/init.d/uhttpd restart

Krok 6: Instalace Conector MySQL pro PHP5 a Python

Instalace Conector MySQL pro PHP5 a Python
Instalace Conector MySQL pro PHP5 a Python

Pokračujte v instalaci a konfiguraci modulů pro připojení databáze MySQL k PHP a Pythonu. Začněme konektorem PHP. Zadejte následující kód:

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

Jakmile bude připraven, nebude nutné restartovat server uHTTPd, připraven k okamžitému použití. Nyní pokračujte konektorem pro Python, k tomu musíte zadat následující kód:

opkg install python-mysql

S tímto posledním krokem budeme mít náš Arduino Yun připraven pro náš projekt se čtečkou karet ID-20 RFID 125khz. Dokončete tuto část se zpětnou vazbou na to, co jsme udělali:

  • Server MySQL jsme nainstalovali na náš Arduino Yun, poté nakonfigurovali a skončili vložením testovacích dat.
  • Nainstalujte doplněk PHP na náš server.
  • Skončili jsme s instalací a konfigurací MySQL Connectoru pro PHP i Python.

Krok 7: Kódy

V této oblasti diskutujeme programovací kódy, které mají být použity pro tento projekt. Odcházíme s kódem Pythonu, který je rozdělen na dva soubory: 'Comobobar.py', který se připojí k databázi a vyhledá Yun Arduino, pokud je v ní výsledek, a soubor 'ovládání. py ', zodpovědný za záznam jakékoli karty, kterou čte čtečka ID-20, ať už v databázi registrovaných uživatelů, či nikoli. Poté pokračujte popisem souborů PHP, které jsou: 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'delete2. php ',' guardar.php '' consulta.php ',' configuracion.php '. U těchto souborů redundaremos oba, protože jsou snadno srozumitelné. Nakonec dokončete kód, který půjde nahoru jako náš náčrt Arduina.

Krok 8: Soubory Python

Soubory Python
Soubory Python

Jak již bylo zmíněno dříve, naše skripty Pythonu fungovaly s knihovnou nebo třídou 'MySQLdb', která již byla nainstalována dříve. Začněte tím, že v našem editoru vytvoříte soubor s příponou '.py' nazvaný 'zahrobar.py', tyto případy doporučuji použít pro programování v Pythonu, editoru Sublime Text 3, který si můžete stáhnout na jejich webových stránkách www.sublimetext.com. Začněme importem knihovny pro připojení k naší databázi MySQL, knihovně „sys“, která nám umožní komunikovat s naším Arduino Yun:

  1. importovat MySQLdb
  2. importovat sys

Jakmile importujete tyto knihovny nebo třídy, přidáme do vašeho kódu proměnné, což budou data připojení z naší databáze MySQL, kost:

  1. host = "127.0.0.1" # odpovídá adrese našeho serveru MySQL.
  2. user = "your-seat" # je uživatel naší databáze.
  3. passw = "vaše heslo" je heslo uživatele. base = "arduino" # Toto je název databáze, kterou používáte.

Nyní začněte se základními kódy skriptů:

  1. zatímco pravda:
  2. db = MySQLdb.connect (hostitel, uživatel, heslo, základna)
  3. cur = db.cursor ()
  4. resultado = cur.execute ("" "SELECT * FROM usuariosrfid WHERE rfid LIKE %s ORDER BY id" "", (sys.argv [1],))
  5. if (resultado == 1):
  6. tisk 1
  7. sys.exit (1)
  8. jiný:
  9. tisk 2
  10. sys.exit (1)

Pokud si uvědomíme, v rozsudku 'cur.execute result = ("" "SELECT * FROM WHERE rfid usuariosrfid LIKE% s ORDER BY id" "" (sys.argv [1]))' command to execute our query compare the variable '(sys.argv [1])', což je kód z karty Arduino RFID se všemi tabulkami dat 'rfid' pole 'usuariosrfid', které při hledání kódu rovnosti z arduina a kódů nebo uložených v databázi budou vrátit 1, pokud to není pravda a neexistuje rovnost mezi kódem z arduina a některou ze základen, vrátíme 2. Tato čísla obdrží Arduino. Pokračujeme dalším souborem 'control.py. Tento soubor funguje stejným způsobem jako výše, pouze uchovává pachuť na stole, tyto uložené záznamy budou shromažďovány čtečkou ID-20 připojenou k našemu Arduino Yun, takže můžeme ponechat všechny registrované uživatele, kteří používají naši čtečku RFID.

Krok 9: Soubory PHP

Poté pokračujte se soubory. „Php“, který bude uchovávat složku z našeho serveru, za tímto účelem nezapomeňte, že je nutné, aby tyto soubory, jakmile budou připraveny, byly uloženy do skit našeho projektu, který automaticky generuje IDE Arduino, musíte si také pamatovat, i když předpokládám toto, že když přejdeme k našemu skicu Arduino Yun, nahrajeme přes Wi -Fi, takže to nechám na stejné stránce manuálu Arduino, www.arduino. cc / en / Guide / Arduino Yun # toc14, který o tom vysvětluje více a jak byste měli připravit připravenou kartu MicroSD pro tento typ projektu, kde by měly být soubory uloženy na serveru. Soubory PHP budou 10 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'borrar2.php', 'guardar. php '' consulta.php ',' configuracion.php ', které budou hypertextově propojeny s ostatními, aby udržovaly základní nabídku vždy spuštěnou a přístupnou. Stačí vysvětlit soubor 'configuracion.php', který funguje jako spojnice s naší databází. V našem editoru naplánujeme v souboru následující kód:

  1. <? php
  2. / / Datový server a databáze
  3. $ server = "localhost";
  4. $ username = "vaše sedadlo";
  5. $ heslo = "heslo";
  6. $ database_name = "arduino";

Toto jsou data, která je třeba připojit k naší databázi v Arduinu, budou stejná, jaká používáme v našich skriptech Pythonu. Dokončete programování příkazu connect, který používal náš skript:

  1. $ conexion = mysql_connect ($ server, $ uživatelské jméno, $ heslo) nebo zemřít („Problemas al tratar de establecer la conexion“);
  2. $ bd_sel = mysql_select_db ($ název_databáze) nebo die („Problémy s výběrem základny dat“);
  3. ?>

Ostatní soubory jsou přiloženy.

Krok 10: Nakonec program Arduino YÚN

Dostali jsme se k hlavní části tohoto tutoriálu, programování našeho Arduino Yun, žádné detaily nezvýrazní celý kód, protože je poměrně rozsáhlý, zmíníme pouze následující důležité body:

  • Kód se skládá ze 6 hlavních funkcí a 13 vedlejších funkcí, které jsou pouze podporou pro použití sériového LCD.
  • Budou importovány pouze tři třídy „SoftwareSerial.h“, pomocí kterých zadáme Serial Attached pro připojení k ID-20 a Serial LCD, hlavní třídě „Bridge.h“, se kterou vytvoříme spojení mezi Linuxem a ATMEGA32U4, a třída 'Process.h' bude sloužit pro konzultační procesy v Linuxu.
  • Definujte pouze tři piny, které ostatní používají zdarma.

Kód je přiložen

Krok 11: Šťastný nový rok

Pokračuji v tomto pečlivě, abych vám sloužil a pomohl vám získat více informací o Arduino Yun. Nechte všechny soubory připojené na konec. Pro mluvčí španělského jazyka nechávám tento návod, ale ve španělštině s potřebnými soubory. Doufám, že máte šťastný nový rok, užijte si ho a úspěch v tomto roce 2014!

Doporučuje: