Obsah:

Ovládajte prístup Arduino YÚN pomocou MySQL, PHP5 a Python: 11 krokov (s obrázkami)
Ovládajte prístup Arduino YÚN pomocou MySQL, PHP5 a Python: 11 krokov (s obrázkami)

Video: Ovládajte prístup Arduino YÚN pomocou MySQL, PHP5 a Python: 11 krokov (s obrázkami)

Video: Ovládajte prístup Arduino YÚN pomocou MySQL, PHP5 a Python: 11 krokov (s obrázkami)
Video: Управление голым реле и управление им с помощью Arduino для нагрузки переменного / постоянного тока 2024, Júl
Anonim
Ovládajte prístup Arduino YÚN pomocou MySQL, PHP5 a Python
Ovládajte prístup Arduino YÚN pomocou MySQL, PHP5 a Python

Dobrý deň, priatelia!

Ako viete, v septembri nový premiérový štít Arduina, Arduino YUN. Tento malý priateľ má vstavaný systém Linux, s ktorým môžeme prevádzkovať čokoľvek, na čo si spomeniete (aspoň zatiaľ). Aj keď je o tejto novej doske veľmi málo informácií, odchodom z príručky, ktorá poskytuje stránku Arduino (na ktorú sa bude odkazovať neskôr), a trocha znalostí mnohých jazykov Linux, je možné zrealizovať veľký projekt Riadiaci prístup. Dnes vysvetlím, ako tento projekt urobiť, ale dostatočne konkrétnym spôsobom prostredníctvom celého nášho Arduina. Funguje to, vďaka databázovému serveru MySQL, ktorý sa usadí v našej YUN, bude táto databáza ukladať dve tabuľky, jednu pre používateľov spojených s konkrétnym RFID a druhú tabuľku na uchovávanie záznamov o všetkých kartách, ktoré prešli našou čítačkou. Na to, aby sme mohli vykonávať základné práce s našimi údajmi, používame programovacie jazyky skripty PHP a Python. Navyše, v oblasti hardvéru, používame čítačku ID-20 vedľa sériového LCD displeja so 16 znakmi, plus RGB LED, čo budú naše informačné stavy. Môžeme použiť toto riadenie prístupu na všetko, čo nás napadne, upraviť a pridať relé alebo iný nápad. Dá sa použiť na čokoľvek, kde máte karty a chcete záznam. Pripomeňme, že tento dokument je bezplatnou publikáciou, komerčné použitie a úpravy oslobodené od dane nie sú povolené. Dúfam, že je to oveľa rozsiahlejšia cesta elektroniky s otvoreným zdrojom. Prejdeme teda k ďalšiemu kroku, párty potrebujú!

Krok 1: Diely

Časti
Časti
Časti
Časti
Časti
Časti

Na realizáciu tohto projektu potrebujeme: * Arduino YUN https://www.sparkfun.com/products/12053 71,95 dolárov * RFID čítačka ID-20 (125 kHz) https://www.sparkfun.com/products/11828 34,95 dolárov * Breakout čítačka RFID https://www.sparkfun.com/products/8423 0,95 dolárov * Základný 16x2 znakový LCD 5V https://www.sparkfun.com/products/790 16,95 dolárov * Sériovo povolený batoh LCD https:// www. sparkfun.com/products/258 16,95 dolárov * LED RGB 5 mm https://www.sparkfun.com/products/105 1,95 dolára * Bzučiak https://www.sparkfun.com/products/7950 1,95 dolára * Kolík a drôt hlavičky Somes približne 5,00 dolárov. Celkovo, ak si kúpite v obchode Sparkfun, všetko bude blízko 150 dolárov. Ak žijete v Latinskej Amerike, odporučil by som kúpiť diely na www.olimex.cl, je to veľmi dobrý čilský obchod s elektronikou.

Krok 2: Zostavenie

Zostavovanie
Zostavovanie
Zostavovanie
Zostavovanie
Zostavovanie
Zostavovanie

Niekoľko spojení, ktoré je potrebné urobiť, ktorým sa stručne vysvetľuje. Pri RGB LED musí byť červený LED kolík na pine 9 Arduina, pin zelenej LED by mal ísť na Arduino pine 8 a pin modrá LED by mala byť na pine 7 Arduina. K ID-20 musíte pripojiť nasledujúce piny, ako je uvedené v tabuľke, v príslušnom poradí, čítačku pinov 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 nakoniec, pre sériový konektor LCD bude potrebný iba pin 5v a GND Arduina, zatiaľ čo pin LCD Serial RX prejde na pin 11 Arduina.

Krok 3: Programovanie Arduino Yun

Programovanie Arduino Yun
Programovanie Arduino Yun

Na účely vytvorenia nášho projektu musíme začať s časťou softvéru, nainštalovať niekoľko súborov na náš Arduino opkg Yun:

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

Pripomeňme, že v Bridge je predvolene nainštalovaný Python 2.7, takže na to nikdy nebudete musieť inštalovať žiadnu aktualizáciu. Začnite protokolovať SSH, odvážte sa vstúpiť do nášho Arduino Yun, akonáhle ich spustíte, zadajte nasledujúci príkaz na aktualizáciu zoznamu aplikácií opkg:

aktualizácia opkg

Krok 4: Inštalácia MySQL

Inštalácia MySQL
Inštalácia MySQL

Teraz vytvoríme inštaláciu a konfiguráciu servera MySQL, do konzoly zadajte nasledujúce prí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 –-force
  6. /etc/init.d/mysqld začať
  7. /etc/init.d/mysqld povoliť
  8. mysqladmin -u heslo root 'tu-nueva-clave'

Po dokončení zadávania našich kódov a spustení servera MySQL by ste mali nakonfigurovať databázu, s ktorou sa bude manipulovať. Predtým, ako začneme písať kódy, však musíme porozumieť poliam, ktoré nesú našu tabuľku. Rada bude pozostávať z 5 kurzov „id“, „meno“, „meno“, „e -mail“, „rfid“, aby som niektoré z nich uviedol na trh. Stručne vysvetlím ich použitie.

  • 'id': bude stĺpec pole alebo atribútu int, ktorý nám oznámi číslo priradené k User ID, toto číslo je priradené rovnakou databázou a bude spôsobom indexovania našich záznamov.
  • 'nombre': stĺpec atribútu bude 'varchar' môže byť označený menom, s ktorým je identifikovaný náš užívateľ karty.
  • „apellido“: stĺpec atribútu bude „varchar“môže byť označený priezviskom, s ktorým je náš používateľ spojený.
  • 'correo': je stĺpec atribútu 'varchar', ktorý bude obsahovať e-mail priradeného používateľa.
  • „rfid“: je stĺpček atribútov „varchar“, ktorý bude obsahovať kód karty RFID, ktorú používate.

(Budem používať premenné v španielčine, pretože je to môj rodný jazyk a mám rád c:) Teraz môžeme svoju databázu nakonfigurovať bez problémov, preto vytvoríme volanie „arduino“MySQL. Musíte zadať nasledujúci kód:

mysqladmin -u root -p vytvorte arduino

Požiadame o heslo, ktoré sme zadali predtým v inštalácii, predložíme ho na dokončenie vytvorenia základne. Keď to všetko skončíme, zadáme dotaz do MySQL, do konzoly by ste mali napísať nasledujúci kód:

mysql -root -p

Opäť požadujeme heslo, musíte ho znova odoslať. Akonáhle sme v príkazovom riadku MySQL, ukazovateľ ('mysql>') by sa mal javiť pripravený písať. Prvá vec, ktorú urobíme, je presunúť základňu pre údaje „arduino“, aby na nej pracovali. To sa deje zadaním nasledujúceho príkazu do konzoly MySQL:

POUŽIJTE arduino

Veríme, že tabuľka názvov „usuariosrfid“v databáze použije na tento projekt, zadajte tento kód do konzoly MySQL:

  1. VYTVORIŤ TABUĽKU `usuariosrfid` (
  2. `id` int (255) NOT NULL AUTO_INCREMENT,
  3. `nombre` varchar (300) NIE JE NULOVÝ,
  4. `apellido` varchar (300) NIE JE NULOVÝ,
  5. `correo` varchar (300) NIE JE NULOVÝ,
  6. `rfid` varchar (300) NIE JE NULOVÝ,
  7. PRIMÁRNY KĽÚČ (`id`)
  8. ) MOTOR = DEFAULT CHARSET MyISAM = latin1 AUTO_INCREMENT = 0;

* Nezabudnite, že keď stlačíte kláves ENTER na konci príkazového riadka v konzole MySQL, nespustí sa, kým nenájdete znak „;“Preto je na konci kódu ';' Na dokončenie inštalácie a konfigurácie MySQL vyplníme niekoľko testovacích polí v našej základni. Napíšte do nasledujúcich riadkov:

  1. VLOŽIŤ 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');

Teraz pokračujte vytvorením tabuľky „ControlUsuarios“, v ktorej budú uložené všetky kódy RFID prechádzajúce čítačkou. Táto tabuľka pozostáva z 3 polí „id“, „rfid“, „dátum“.

  • „id“je stĺpec alebo stĺpec atribútu int, ktorý bude obsahovať id každého záznamu na indexovanie.
  • Atribút „rfid“je stĺpec „varchar“obsahujúci kód značky RFID, ktorý prečítal čitateľ.
  • „dátum“je stĺpec atribútu „varchar“, ktorý bude obsahovať dátum načítania karty.

Na vytvorenie tabuľky „ControlUsuarios“zadáme do konzoly MySQL nasledujúci kód:

  1. VYTVORIŤ TABUĽKU „ControlUsuarios` (
  2. `id` int (255) NOT NULL AUTO_INCREMENT,
  3. `rfid` varchar (300) NIE JE NULOVÝ,
  4. `fecha` varchar (300) NIE JE NULOVÝ,
  5. PRIMÁRNY KĽÚČ (`id`)
  6. ) MOTOR = DEFAULT CHARSET MyISAM = latin1 AUTO_INCREMENT = 0;

Nakoniec zadajte príkaz „exit“. v konzole ukončite MySQL Query a vráťte sa do SHH, aby sme mohli začať s PHP5.

Krok 5: Inštalácia PHP5

Inštalácia PHP5
Inštalácia PHP5

Pokračujte v inštalácii a konfigurácii PHP5. Táto inštalácia je jednoduchšia ako MySQL, takže by ich to nemalo nič stáť. Najprv nainštalujte balík opkg zo sťahovania a inštalácie Arduino Yun, takže do konzoly SSH Arduino zadajte toto:

opkg nainštalovať php5 php5-cgi

Po stiahnutí a nainštalovaní PHP5 na náš Arduino Yun sme nakonfigurovali koreňový súbor uHTTPd, http server, ktorý prináša Arduino ako predvolené, odporúčam používať iba tento http server, pretože je univerzálnejší a prístupnejší v konfigurácii, nie Apache alebo Lighttpd sú náročnejšie nastaviť, keď ste v tomto poli noví. Ak to chcete nakonfigurovať, použite editor súborov „vi“SSH. Na to, aby ste mohli používať tento editor, musíte mať minimálne znalosti. Začnite písať tento kód do konzoly, aby ste získali prístup k súboru nastavení uHTTPd:

vi/etc/config/uhttpd

Stlačením „i“upravte súbor a potom prejdite na riadok kódu, ktorý ste napísali „# list interpret“. "php = / usr / bin / php-cgi" '. Na začiatku riadka musíte vymazať znak „#“a potom stlačiť kláves Escape (kláves „ESC“). Keď budete pripravení, zadajte príkaz „: wq“a súbor uložte a ukončite. Musíte reštartovať server uHTTPd, za týmto účelom zadajte do príkazového riadka SSH nasledujúci kód:

/etc/init.d/uhttpd reštart

Krok 6: Inštalácia Conector MySQL pre PHP5 a Python

Inštalácia Conector MySQL pre PHP5 a Python
Inštalácia Conector MySQL pre PHP5 a Python

Pokračujte v inštalácii a konfigurácii modulov na prepojenie databázy MySQL s PHP a Python. Začnime s konektorom PHP. Zadajte nasledujúci kód:

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

Akonáhle bude pripravený, nebude potrebné reštartovať server uHTTPd, pripravený na okamžité použitie. Teraz pokračujte konektorom pre Python, na to musíte zadať nasledujúci kód:

opkg nainštalovať python-mysql

V tomto poslednom kroku budeme mať náš Arduino Yun pripravený na náš projekt s čítačkou kariet ID-20 RFID 125kHz. Dokončite túto časť so spätnou väzbou o tom, čo sme urobili:

  • Na náš Arduino Yun sme nainštalovali server MySQL, potom ho nakonfigurovali a skončili sme vložením testovacích údajov.
  • Nainštalujte doplnok PHP na náš server.
  • Skončili sme s inštaláciou a konfiguráciou MySQL Connectoru pre PHP aj Python.

Krok 7: Kódy

V tejto oblasti diskutujeme o programovacích kódoch, ktoré sa majú použiť pre tento projekt. Odchádzame s kódom Python, ktorý je rozdelený do dvoch súborov: „ComboBar.py“, ktorý sa pripojí k databáze a vyhľadá Yun Arduino, ak je v nej výsledok, a súborový ovládací prvok. py ', zodpovedný za zaznamenanie akejkoľvek karty, ktorú číta čítačka ID-20, bez ohľadu na to, či je alebo nie je v databáze registrovaných užívateľov. Potom pokračujte popisom súborov PHP, ktoré sú: 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'delete2. php ',' guardar.php '' consulta.php ',' configuracion.php '. Pre tieto súbory redundaremos obaja, pretože sú ľahko zrozumiteľné. Nakoniec skončte s kódom, ktorý pôjde hore ako náš náčrt Arduina.

Krok 8: Súbory Python

Súbory Python
Súbory Python

Ako bolo uvedené vyššie, naše skripty Python fungovali s knižnicou alebo triedou „MySQLdb“, ktorá už bola nainštalovaná. Začnite tým, že v našom editore vytvoríte súbor s príponou „.py“s názvom „obsobar.py“, tieto prípady odporúčam použiť na programovanie v Pythone, editore Sublime Text 3, ktorý si môžete stiahnuť na ich webovej stránke www.sublimetext.com. Začnime importovaním knižnice a pripojením sa k našej databáze MySQL, knižnici „sys“, ktorá nám umožní komunikovať s naším Arduino Yun:

  1. importovať MySQLdb
  2. import sys

Po importovaní týchto knižníc alebo tried pridáme do vášho kódu premenné, ktorými budú údaje o pripojení z našej databázy MySQL, kosť:

  1. host = "127.0.0.1" # zodpovedá adrese nášho servera MySQL.
  2. user = "your-seat" # je užívateľ našej databázy.
  3. passw = "vaše heslo" je heslo používateľa. base = "arduino" # Toto je názov databázy, ktorú používate.

Teraz začnite so základnými kódmi skriptov:

  1. kým je pravda:
  2. db = MySQLdb.connect (hostiteľ, používateľ, heslo, základňa)
  3. cur = db.cursor ()
  4. resultado = cur.execute ("" "SELECT * FROM usuariosrfid WHERE rfid LIKE %s ORDER BY id" "", (sys.argv [1],))
  5. ak (resultado == 1):
  6. vytlačiť 1
  7. sys.exit (1)
  8. inak:
  9. vytlačiť 2
  10. sys.exit (1)

Ak si uvedomí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])“, čo je kód z karty Arduino RFID so všetkými tabuľkami údajov „rfid“poľných údajov „usuariosrfid“, ktoré po nájdení kódu rovnosti z arduina a kódov alebo uložených v databáze budú return 1, ak to nie je pravda a neexistuje rovnosť medzi kódom z arduina a niektorou zo základne, vrátime 2. Tieto čísla dostane Arduino. Pokračujeme ďalším súborom 'control.py. Tento súbor funguje rovnako ako vyššie, iba uchováva pachuť na stole, tieto uložené záznamy bude zhromažďovať čítačka ID-20 pripojená k nášmu Arduino Yun, aby sme mohli ponechať všetkých registrovaných používateľov, ktorí používajú našu čítačku RFID.

Krok 9: Súbory PHP

Potom pokračujte so súbormi. „Php“, ktorý bude uchovávať priečinok z nášho servera, na to pamätajte, že je potrebné, aby boli tieto súbory akonáhle budú pripravené, uložené v skit našom projekte, ktorý automaticky generuje IDE Arduino, musíte si tiež zapamätať, aj keď predpokladám toto, že keď prejdeme k náčrtu Arduino Yun, nahráme ho cez Wi -Fi, takže ho ponechám na tej istej stránke ako manuál Arduino, www.arduino. cc / sk / Guide / Arduino Yun # toc14, ktorý o tom vysvetľuje viac a ako by ste mali pripraviť kartu MicroSD pre tento typ projektu, kde by mali byť súbory uložené na serveri. Súbory PHP budú mať veľkosť 10 „consultaRelacion.php“, „consultaControl.php“, „index.php“„modificar2.php“, „modificar.php“, „borrar.php“, „borrar2.php“, „guardar“. php '' consulta.php ',' configuracion.php ', ktoré budú prepojené s ostatnými, aby bola základná ponuka vždy spustená a prístupná. Stačí vysvetliť súbor 'configuracion.php', ktorý funguje ako konektor pre našu databázu. V našom editore naplánujeme v súbore nasledujúci kód:

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

Toto sú údaje, ktoré je potrebné pripojiť sa k našej databáze v arduine, budú rovnaké, aké používame v našich skriptoch Python. Dokončite programovanie príkazu connect, ktorý používal náš skript:

  1. $ conexion = mysql_connect ($ server, $ užívateľské meno, $ heslo) alebo die („Problemas al tratar de establecer la conexion“);
  2. $ bd_sel = mysql_select_db ($ database_name) alebo die („Problémy so zvolením základne údajov“);
  3. ?>

Ostatné súbory sú priložené.

Krok 10: Nakoniec program Arduino YÚN

Dostali sme sa k hlavnej časti tohto tutoriálu, programovaniu nášho Arduino Yun, žiadne detaily nezvýraznia celý kód, pretože je dosť rozsiahly, spomenieme iba nasledujúce dôležité body:

  • Kód pozostáva zo 6 hlavných funkcií a 13 vedľajších funkcií, ktoré sú iba podporou pre použitie sériového LCD.
  • Nechajte sa importovať iba tri triedy „SoftwareSerial.h“, pomocou ktorých zadáme sériové pripojenie na prepojenie s ID-20 a sériovým LCD displejom, hlavnou triedou „Bridge.h“, pomocou ktorej vytvoríme spojenie medzi Linuxom a ATMEGA32U4, a trieda „Process.h“bude slúžiť pre konzultačné procesy v systéme Linux.
  • Definujte iba tri piny, ktoré ostatné používajú zadarmo.

Kód je priložený

Krok 11: Šťastný nový rok

Pokračujem v tomto starostlivo, aby som vám slúžil a pomohol vám získať viac informácií o Arduino Yun. Nechajte všetky súbory priložené na konci. Pre hovorcov španielskeho jazyka nechávam tento návod, ale v španielčine s potrebnými súbormi. Dúfam, že máte šťastný nový rok, užite si ho a v tomto roku 2014 úspech!

Odporúča: