Turinys:

„Arduino YÚN“prieigos valdymas naudojant „MySQL“, PHP5 ir „Python“: 11 žingsnių (su paveikslėliais)
„Arduino YÚN“prieigos valdymas naudojant „MySQL“, PHP5 ir „Python“: 11 žingsnių (su paveikslėliais)

Video: „Arduino YÚN“prieigos valdymas naudojant „MySQL“, PHP5 ir „Python“: 11 žingsnių (su paveikslėliais)

Video: „Arduino YÚN“prieigos valdymas naudojant „MySQL“, PHP5 ir „Python“: 11 žingsnių (su paveikslėliais)
Video: Leap Motion SDK 2024, Lapkritis
Anonim
Kontroliuokite „Arduino YÚN“prieigą naudodami „MySQL“, „PHP5“ir „Python“
Kontroliuokite „Arduino YÚN“prieigą naudodami „MySQL“, „PHP5“ir „Python“

Sveiki, draugai!

Na, kaip žinote, rugsėjį naujasis „Arduino“premjeros skydas „Arduino YUN“. Šis mažas draugas turi „Linux“įterptąją sistemą, su kuria galime paleisti viską, ką tik sugalvojate (bent jau iki šiol). Nors šioje naujoje lentoje yra labai mažai informacijos, o vadovas, kuriame pateikiamas „Arduino“puslapis (kuris bus susietas vėliau), taip pat šiek tiek žinių apie daugelį „Linux“, gali atlikti svarbų projektą - kontroliuoti prieigą. Šį kartą paaiškinsiu, kaip atlikti šį projektą, tačiau pakankamai konkrečiu būdu per mūsų „Arduino“. Tai veikia, dėka duomenų bazės serverio „MySQL“, kuris įsikurs mūsų YUN, šioje duomenų bazėje bus saugomos dvi lentelės, viena skirta vartotojams, susietiems su tam tikru RFID, ir kita lentelė, skirta įrašyti visas korteles, kurios praėjo per mūsų skaitytuvą. Nors mes naudojame programavimo kalbas PHP ir Python scenarijus, kad atliktume pagrindinius ir dirbtume su mūsų duomenimis. Be to, naudojant aparatinę įrangą, mes naudojame skaitytuvą ID-20 šalia 16 simbolių nuoseklaus LCD, taip pat RGB šviesos diodą, kuris bus mūsų informatorius. Šią prieigos kontrolę galime naudoti viską, ką galime sugalvoti, modifikuoti ir pridėti relę ar kitą idėją. Jis gali būti naudojamas bet kur, kur turite kortelių ir norite įrašo. Prisiminkite, kad šis dokumentas yra nemokamas skelbimas, draudžiama jį naudoti komerciniais tikslais ir keisti. Tikiuosi, kad tai yra platesnis atvirojo kodo elektronikos kelias. Taigi mes einame į kitą žingsnį, partijoms to reikia!

1 žingsnis: dalys

Dalys
Dalys
Dalys
Dalys
Dalys
Dalys

Norėdami atlikti šį projektą, turime turėti: * „Arduino YUN“https://www.sparkfun.com/products/12053 71,95 USD * RFID skaitytuvas ID-20 (125 kHz) https://www.sparkfun.com/products/11828 34,95 USD * RFID skaitytuvo pertrauka https://www.sparkfun.com/products/8423 0,95 USD * Pagrindinis 16x2 simbolių skystųjų kristalų ekranas 5V https://www.sparkfun.com/products/790 16,95 USD * Serijinio įjungimo LCD kuprinė https:// www. sparkfun.com/products/258 16,95 USD * LED RGB 5 mm https://www.sparkfun.com/products/105 $ 1,95 * „Buzzer“https://www.sparkfun.com/products/7950 1,95 USD * „Somes“antraštės kaištis ir viela maždaug 5,00 USD. Apskritai, jei perkate parduotuvėje „Sparkfun“, viskas bus netoli 150 USD. Jei gyvenate Lotynų Amerikoje, rekomenduočiau pirkti dalis www.olimex.cl, yra labai gera Čilės elektronikos parduotuvė.

2 žingsnis: Surinkimas

Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas

Keletas jungčių, kurias reikia padaryti, trumpai paaiškinkite. Jei naudojamas RGB šviesos diodas, raudonas šviesos diodo kaištis turi būti ant „Arduino“9 kaiščio, žalias šviesos diodas turi užsidegti ant „Arduino“kaiščio 8, o mėlynas šviesos diodas turi būti ant „Arduino“7 kaiščio. Norėdami naudoti ID-20, turite prijungti šiuos kaiščius, kaip nurodyta lentelėje, atitinkama tvarka, kaiščių skaitytuvą prie „Arduino“kaiščio: PIN kodas-20 prie „Arduino ID-20“\ Arduino PIN 1-GND PIN 2-5V PIN 7 - GND PIN 9- PIN 10 PIN 10- BUZZER PIN 11- 5V Galiausiai, nuoseklaus LCD jungties reikės tik prie „Arduino“5v ir GND kaiščių, o LCD serijos RX kaištis eina į 11 kaištį iš Arduino.

3 žingsnis: „Arduino Yun“programavimas

„Arduino Yun“programavimas
„Arduino Yun“programavimas

Norėdami sukurti savo projektą, turime pradėti nuo programinės įrangos dalies, įdiegti kai kuriuos failus į „Arduino opkg Yun“:

  • MySQL serveris
  • PHP5
  • „MySQLdb“, skirta „Python 2.7“
  • PHP5 modifikacija į MySQL

Prisiminkite, kad pagal numatytuosius nustatymus „Bridge“yra įdiegtas „Python 2.7“, todėl jums niekada nereikia diegti jokio naujinimo. Pradėkite registruoti SSH, išdrįskite įeiti į mūsų „Arduino Yun“, kai tik pradėsite juos, įveskite šią komandą, kad atnaujintumėte programų opkg sąrašą:

opkg atnaujinimas

4 žingsnis: „MySQL“diegimas

„MySQL“diegimas
„MySQL“diegimas

Dabar mes nustatysime „MySQL Server“diegimą ir konfigūravimą, konsolėje įveskite šias komandas:

  1. opkg install libpthread libncurses libreadline mysql-server
  2. sed -i ', ^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-jėga
  6. /etc/init.d/mysqld start
  7. /etc/init.d/mysqld enable
  8. „mysqladmin“-u root slaptažodis „tu-nueva-clave“

Baigę įvesti mūsų kodus ir paleidę „MySQL“serverį, turėtumėte sukonfigūruoti duomenų bazę, kuria bus manipuliuojama. Tačiau prieš pradėdami rašyti kodus, turime suprasti laukus, kuriuose yra mūsų lentelė. Lentą sudaro 5 kursai, „id“, „name“, „name“, „email“, „rfid“, kad kai kuriuos iš jų pateikčiau rinkai.

  • „id“: ar lauke ar atribute int stulpelyje, kuriame bus nurodytas numeris, priskirtas „User ID“, šis numeris yra priskirtas tos pačios duomenų bazės ir tai bus būdas indeksuoti mūsų įrašus.
  • „nombre“: atributo stulpelis bus „varchar“gali būti nurodytas vardu, kuriuo identifikuojamas mūsų kortelės naudotojas.
  • „apellido“: atributo stulpelis bus „varchar“gali būti nurodytas pavarde, su kuria susietas mūsų vartotojas.
  • „Koreo“: yra atributų stulpelis „varchar“, kuriame bus el. laiškas, susijęs su vartotoju.
  • „rfid“: yra atributų stulpelis „varchar“, kuriame bus jūsų naudojamos RFID kortelės kodas.

(Aš naudosiu kintamuosius ispanų kalba, nes tai mano gimtoji kalba ir man patinka c:) Dabar galime be problemų sukonfigūruoti savo duomenų bazę, todėl sukuriame „arduino“skambutį „MySQL“. Turite įvesti šį kodą:

mysqladmin -u root -p sukurti arduino

Mes prašome slaptažodžio, kurį įvedėme anksčiau diegdami, mes jį pateiksime, kad užbaigtume bazės kūrimą. Baigę visa tai, įvedame užklausą į „MySQL“, konsolėje turėtumėte įvesti šį kodą:

mysql -root -p

Dar kartą prašome slaptažodžio, turite jį pateikti dar kartą. Patekę į „MySQL“konsolės komandą, rodyklė („mysql>“) turėtų būti paruošta spausdinti. Pirmas dalykas, kurį mes padarysime, yra perkelti „arduino“duomenų bazę, kad jie galėtų dirbti. Tai daroma MySQL konsolėje įvedus šią komandą:

NAUDOTI arduino

Manome, kad duomenų bazės pavadinimų lentelė „usuariosrfid“bus naudojama šiam projektui, įveskite šį kodą „MySQL“konsolėje:

  1. KURTI LENTELĘ „usuariosrfid“(
  2. `id` int (255) NOT NULL AUTO_INCREMENT,
  3. "nombre" varchar (300) NE NULL,
  4. „apellido“varchar (300) NE NULL,
  5. `Koreo` varchar (300) NOT NULL,
  6. „rfid“varchar (300) NOT NULL,
  7. PAGRINDINIS RAKTAS („id“)
  8. ) VARIKLIS = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 0;

* Atminkite, kad paspaudus klavišą ENTER komandinės eilutės pabaigoje „MySQL“konsolėje, jis nebus paleistas, kol rasite „;“Todėl kodo pabaigoje yra „;“Norėdami užbaigti „MySQL“diegimą ir konfigūravimą, mūsų bazėje užpildome kai kuriuos bandymo laukus. Įveskite šias eilutes:

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

Dabar tęskite lentelės „ControlUsuarios“, kurioje bus visi skaitytuvo praeinantys RFID kodai, kūrimą, šioje lentelėje yra 3 laukai: „id“, „rfid“, „date“.

  • „id“yra laukas arba atributas int stulpelyje, kuriame bus kiekvieno indeksavimo įrašo ID.
  • „rfid“atributas yra stulpelis „varchar“, kuriame yra RFID žymos kodas, kurį perskaitė skaitytojas.
  • „data“yra atributų stulpelis „varchar“, kuriame bus kortelės perskaitymo data.

Norėdami sukurti lentelę „ControlUsuarios“, įveskite šį kodą į „MySQL“konsolę:

  1. KURTI LENTELĘ „ControlUsuarios“(
  2. `id` int (255) NOT NULL AUTO_INCREMENT,
  3. „rfid“varchar (300) NOT NULL,
  4. "fecha" varchar (300) NOT NULL,
  5. PAGRINDINIS RAKTAS („id“)
  6. ) VARIKLIS = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 0;

Galiausiai įveskite „exit“; konsolėje, kad išeitumėte iš „MySQL Query“ir grįžtumėte į SHH, kad galėtume pradėti nuo PHP5.

5 veiksmas: PHP5 diegimas

PHP5 diegimas
PHP5 diegimas

Tęskite PHP5 diegimą ir konfigūravimą. Šis diegimas yra lengvesnis nei „MySQL“, todėl jiems tai neturėtų kainuoti. Pirmiausia įdiekite „opkg“paketą iš „Arduino Yun“atsisiuntimo ir diegimo, todėl įveskite „Arduino“SSH konsolę taip:

opkg įdiegti php5 php5-cgi

Atsisiuntę ir įdiegę PHP5 mūsų „Arduino Yun“, taigi sukonfigūravome šakninį failą uHTTPd, http serverį, kuris suteikia „Arduino“numatytąjį nustatymą, rekomenduoju naudoti tik šį http serverį, nes jis yra universalesnis ir prieinamas konfigūracijos, o ne „Apache“ar „Lighttpd“yra sudėtingesnis nustatyti, kai esate naujas šioje srityje. Norėdami tai sukonfigūruoti, naudokite failų rengyklę „vi“SSH, kad galėtumėte naudoti šį redaktorių, turite turėti minimalių žinių. Pradėkite įvesti šį kodą konsolėje, kad pasiektumėte nustatymų failą uHTTPd:

vi/etc/config/uhttpd

Norėdami redaguoti failą, paspauskite „i“, tada eikite į kodo eilutę, kurią parašėte „# sąrašo vertėjas. „php = / usr / bin / php-cgi““. Turite ištrinti simbolį „#“eilutės pradžioje, tada paspauskite klavišą „Esc“(„ESC“), kai būsite pasiruošę, turite įvesti komandą „: wq“, kad išsaugotumėte failą ir išeitumėte iš. Turite iš naujo paleisti serverį uHTTPd, todėl SSH komandų pulte turite įvesti šį kodą:

/etc/init.d/uhttpd paleiskite iš naujo

6 veiksmas: įdiekite „Conector MySQL“, skirtą PHP5 ir „Python“

Įdiekite „Conector MySQL“, skirtą PHP5 ir „Python“
Įdiekite „Conector MySQL“, skirtą PHP5 ir „Python“

Tęskite diegdami ir konfigūruodami modulius, kad sujungtumėte „MySQL“duomenų bazę su PHP ir „Python“. Pradėkime nuo PHP jungties. Įveskite šį kodą:

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

Kai jis bus paruoštas, jums nereikės iš naujo paleisti serverio uHTTPd, paruoštą nedelsiant naudoti. Dabar tęskite naudodami „Python“jungtį, tam turite įvesti šį kodą:

opkg įdiegti python-mysql

Atlikę šį paskutinį žingsnį, „Arduino Yun“turėsime pasiruošę projektui su kortelių skaitytuvu ID-20 RFID 125khz. Užbaikite šią dalį atsiliepimais apie tai, ką padarėme:

  • „Arduino Yun“įdiegėme „MySQL“serverį, tada jį sukonfigūravome, baigdami bandymo duomenų įterpimu.
  • Įdiekite PHP priedą į mūsų serverį.
  • Baigėme įdiegti ir konfigūruoti „MySQL Connector“tiek PHP, tiek „Python“.

7 žingsnis: kodai

Šioje srityje aptariame šio projekto programavimo kodus. Išvykstame su „Python“kodu, kuris yra padalintas į du failus: „comprobar.py“, kuris prisijungs prie duomenų bazės ir ieškos Yun Arduino, jei rezultatas bus jame, ir failo „control“. py ', atsakingas už bet kurios kortelės, kurią skaito skaitytojo ID-20, įrašymą, nepriklausomai nuo to, ar jis yra registruotų vartotojų duomenų bazėje, ar ne. Tada tęskite PHP failų aprašymą: „consultaRelacion.php“, „consultaControl.php“, „index.php“„modificar2.php“, „modificar.php“, „borrar.php“, „delete2“. php “,„ guardar.php “„ consulta.php “,„ configuracion.php “. Šiems failams redundaremos tiek todėl, kad jie yra lengvai suprantami. Galiausiai užbaigite kodu, kuris bus pateiktas kaip mūsų „Arduino“eskizas.

8 veiksmas: failai „Python“

Failai „Python“
Failai „Python“

Kaip minėta anksčiau, mūsų „Python“scenarijai veikė su biblioteka ar klase „MySQLdb“, kuri jau buvo įdiegta anksčiau. Pradėkite savo redaktoriuje sukurdami failą su „.py“, vadinamą „comprobar.py“, rekomenduoju šiuos atvejus naudoti programuojant „Python“, „Sublime Text 3“redaktoriuje, kurį galite atsisiųsti iš jų svetainės www.sublimetext.com. Pradėkime importuodami biblioteką, kad prisijungtumėte prie mūsų „MySQL“duomenų bazės, bibliotekos „sys“, kuri leis mums bendrauti su „Arduino Yun“:

  1. importuoti „MySQLdb“
  2. importo sistema

Kai importuosite šias bibliotekas ar klases, prie jūsų kodo pridėsime kintamųjų, kurie bus ryšio duomenys iš mūsų „MySQL“duomenų bazės.

  1. host = "127.0.0.1" # atitinka mūsų "MySQL" serverio adresą.
  2. user = "your-seat" # yra mūsų duomenų bazės vartotojas.
  3. passw = "jūsų slaptažodis" skirtas vartotojo slaptažodžiui. base = "arduino" # Tai yra jūsų naudojamos duomenų bazės pavadinimas.

Dabar pradėkite nuo pagrindinių scenarijaus kodų:

  1. nors tiesa:
  2. db = MySQLdb.connect (priegloba, vartotojas, slaptažodis, bazė)
  3. cur = db. žymeklis ()
  4. resultado = cur.execute ("" "SELECT * FRU usuariosrfid WHERE rfid LIKE %s ORDER BY id" "", (sys.argv [1],))
  5. jei (rezultatas == 1):
  6. spausdinti 1
  7. sys.exit (1)
  8. Kitas:
  9. spausdinti 2
  10. sys.exit (1)

Jei suprantame, sprendime „cur.execute result = (" "" SELECT * FROM WHERE rfid usuariosrfid LIKE% s ORDER BY id "" "(sys.argv [1])) 'komanda, kad įvykdytume užklausą, palyginkite kintamąjį „(sys.argv [1])“- tai kodas iš „Arduino“RFID kortelės su visais lauko duomenimis „rfid“lentelė „usuariosrfid“, kuri, suradusi lygybės kodą iš „arduino“ir arba kodus, saugomus duomenų bazėje, grąžinkite 1, jei tai netiesa ir nėra lygybės tarp kodo iš arduino ir kai kurių bazių, mes grąžinsime 2. Šiuos skaičius gaus „Arduino“. Mes tęsiame kitą failą „control.py“. Šis failas veikia taip pat, kaip ir aukščiau, tik išsaugodamas poskonį ant stalo, šiuos įrašus išsaugojo skaitytuvas ID-20, prijungtas prie mūsų „Arduino Yun“, kad galėtume išsaugoti visus registruotus vartotojus, kurie naudoja mūsų RFID skaitytuvą.

9 veiksmas: rinkmenos PHP

Tada tęskite failus. „Php“, kuris išsaugos aplanką iš mūsų serverio, kad tai padarytumėte, atminkite, kad kai šie failai yra paruošti, jie turi būti išsaugoti mūsų projekto skiltyje, kuri automatiškai sugeneruoja IDE „Arduino“, taip pat turite atsiminti, nors aš tikiuosi, kad tai, kad kai einame prie „Arduino“eskizo „Yun“, įkeliame per „Wi -Fi“, todėl palieku jį tame pačiame puslapyje, kuriame yra „Arduino“vadovas, www.arduino. cc / lt / Guide / Arduino Yun # toc14, kuriame daugiau apie tai paaiškinta ir kaip turėtumėte paruošti „MicroSD“kortelę tokio tipo projektams, kuriuose failai turėtų būti saugomi serveryje. PHP failai bus 10 „consultaRelacion.php“, „consultaControl.php“, „index.php“„modificar2.php“, „modificar.php“, „borrar.php“, „borrar2.php“, „guardar“. php '' consulta.php ',' configuracion.php ', kuris bus susietas su kitu, kad pagrindinis meniu visada veiktų ir būtų prieinamas. Tiesiog paaiškinkite failą „configuracion.php“, kuris veikia kaip jungtis su mūsų duomenų baze. Mūsų redaktoriuje suplanuojame šį failo kodą:

  1. <? php
  2. / / Duomenų serveris ir duomenų bazė
  3. $ serveris = "localhost";
  4. $ username = "tavo vieta";
  5. $ password = "slaptažodis";
  6. $ database_name = "arduino";

Tai duomenys, kuriuos reikia prisijungti prie mūsų duomenų bazės „arduino“, bus tie patys, kuriuos naudojame savo „Python“scenarijuose. Užbaikite programuoti prisijungimo pareiškimą, kuriame buvo naudojamas mūsų scenarijus:

  1. $ conexion = mysql_connect ($ server, $ username, $ password) arba mirti ("Problemas al tratar de establecer la conexion");
  2. $ bd_sel = mysql_select_db ($ database_name) arba mirti ("Problemas al seleccionar la base de datos");
  3. ?>

Kiti failai pridedami.

10 žingsnis: Galiausiai, „Arduino YÚN“programa

Mes pasiekėme pagrindinę šios pamokos dalį, programuodami „Arduino Yun“, jokia informacija neišryškins viso kodo, nes jis yra gana platus, paminėkite tik šiuos svarbius dalykus:

  • Kodą sudaro 6 pagrindinės funkcijos ir 13 antrinių funkcijų, kurios tik palaiko serijinio LCD naudojimą.
  • Būkite importuojami tik iš trijų klasių, „SoftwareSerial.h“, su kuriais įvesime „Serial Attached“, kad prisijungtume prie ID-20 ir „Serial LCD“, pagrindinės klasės „Bridge.h“, su kuriais užmezgsime ryšį tarp „Linux“ir „ATMEGA32U4“, ir „Process.h“klasė bus naudojama konsultavimo procesams „Linux“.
  • Apibrėžkite tik tris kaiščius, kurie gali būti naudojami nemokamai.

Kodas pridedamas

11 žingsnis: Laimingų Naujųjų metų

Tęsiu tai kruopščiai, kad galėčiau jums tarnauti ir padėti jums gauti daugiau informacijos apie „Arduino Yun“. Palikite visus failus prie pabaigos. Kalbantiems ispanų kalba, palieku šį vadovėlį, bet ispanų kalba su reikiamais failais. Tikiuosi, kad jums laimingi nauji metai, mėgaukitės jais ir sėkmės šiais 2014 metais!

Rekomenduojamas: