Përmbajtje:
- Hapi 1: Pjesët
- Hapi 2: Montimi
- Hapi 3: Programimi i Arduino Yun
- Hapi 4: Instalimi i MySQL
- Hapi 5: Instalimi i PHP5
- Hapi 6: Instalimi i Conector MySQL për PHP5 dhe Python
- Hapi 7: Kodet
- Hapi 8: Dosjet Python
- Hapi 9: Dosjet PHP
- Hapi 10: Së fundi, Programi i Arduino YÚN
- Hapi 11: Gëzuar Vitin e Ri
Video: Kontrolloni hyrjen e Arduino YÚN Me MySQL, PHP5 dhe Python: 11 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:20
Përshëndetje miq!
Epo, siç e dini, në shtator mburoja e re premiere e Arduino, Arduino YUN. Ky mik i vogël ka një sistem të integruar në Linux me të cilin ne mund të ekzekutojmë gjithçka që ju vjen ndërmend (të paktën deri më tani). Ndërsa ka shumë pak informacion në këtë tabelë të re, me largimin në udhëzuesin që siguron faqen Arduino (e cila do të lidhet më vonë), plus një njohuri të vogël për shumë Linux, mund të kryejë një projekt të madh, një Access Access. Këtë herë unë do të shpjegoj se si të bëhet ky projekt, por në një mënyrë të mjaftueshme veçanërisht në të gjithë përmes Arduino -s tonë. Kjo funksionon, falë një serveri të bazës së të dhënave MySQL i cili do të vendoset në YUN -in tonë, kjo bazë e të dhënave do të ruajë dy tabela, një për përdoruesit e lidhur me një RFID të veçantë dhe një tabelë tjetër për të mbajtur shënimet e të gjitha kartave që kanë kaluar përmes lexuesit tonë. Ndërsa përdorim gjuhë programimi PHP dhe skriptet Python për të kryer disa elemente bazë dhe për të punuar me të dhënat tona. Për më tepër, hardueri i sipërm, ne përdorim një lexues ID-20 pranë një LCD serial me 16 karaktere, plus një LED RGB i cili do të jetë gjendja jonë informuese. Ne mund të përdorim këtë kontroll aksesi gjithçka që mund të mendojmë, modifikojmë dhe shtojmë një stafetë ose një ide tjetër. Mund të përdoret në çdo gjë ku keni karta dhe dëshironi një rekord. Kujtoni që ky dokument është publikim falas, përdorimi komercial dhe modifikimet e përjashtuara nuk lejohen. Shpresoj se është një rrugë më e gjerë e elektronikës me burim të hapur. Pra, ne shkojmë në hapin tjetër, palët kanë nevojë!
Hapi 1: Pjesët
Për ta bërë këtë projekt, duhet të kemi: * Arduino YUN https://www.sparkfun.com/products/12053 71.95 $ * RFID Reader ID-20 (125 kHz) https://www.sparkfun.com/products/11828 $ 34.95 * RFID Reader Breakout https://www.sparkfun.com/products/8423 $ 0.95 * Karakteri bazë 16x2 LCD 5V https://www.sparkfun.com/products/790 $ 16.95 $ * Serial LCD i aktivizuar serial https:// www. sparkfun.com/products/258 $ 16.95 * LED RGB 5mm https://www.sparkfun.com/products/105 $ 1.95 * Zile Me Në përgjithësi, nëse blini në dyqanin Sparkfun, gjithçka do të jetë afër 150 dollarë. Nëse jetoni në Amerikën Latine, unë do të rekomandoja blerjen e pjesëve në www.olimex.cl, është një dyqan elektronik shumë i mirë kilian.
Hapi 2: Montimi
Disa lidhje për të bërë, duke i shpjeguar shkurtimisht. Për RGB LED, kunja LED e kuqe duhet të jetë në kunjin 9 të Arduino, pin LED jeshil duhet të shkojë në kunjin Arduino 8 dhe pin LED blu duhet të jetë në kunjin 7 të Arduino. Për ID-20 duhet të lidhni kunjat e mëposhtëm siç tregohet në tabelë sipas renditjes përkatëse, lexuesi i kunjave në pinin Arduino: Pin ID-20 në pin Arduino ID-20 / Arduino PIN 1-GND PIN 2-5V PIN 7 - GND PIN 9- PIN 10 PIN 10- BUZZER PIN 11- 5V Dhe së fundi, për lidhësin serial LCD do të jetë i nevojshëm vetëm për kunjat 5v dhe GND të Arduino, ndërsa kunja LCD Serial RX shkon në pin 11 të Arduino -s.
Hapi 3: Programimi i Arduino Yun
Me qëllim të bërjes së projektit tonë, ne duhet të fillojmë me pjesën e softuerit, të instalojmë disa skedarë në Arduino opkg Yun tonë:
- Serveri MySQL
- PHP5
- MySQLdb për Python 2.7
- Modifikimi i PHP5 në MySQL
Kujtoni që si parazgjedhje në Bridge vjen i instaluar Python 2.7, kështu që kurrë nuk keni nevojë të instaloni ndonjë përditësim për këtë. Filloni të regjistroheni SSH guxoni të hyni në Arduino Yun tonë, pasi t'i keni filluar, shkruani komandën e mëposhtme për të përditësuar listën e aplikacioneve opkg:
përditësim opkg
Hapi 4: Instalimi i MySQL
Tani Ne do të vendosim instalimin dhe konfigurimin e MySQL Server, shkruani komandat e mëposhtme në tastierë:
- opkg instaloni libpthread libncurses libreadline mysql-server
- sed -i 's, ^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 –-forca
- /etc/init.d/mysqld start
- /etc/init.d/mysqld aktivizo
- mysqladmin -u fjalëkalimi rrënjësor 'tu-nueva-clave'
Pasi të keni përfunduar futjen e kodeve tona dhe të filloni serverin MySQL, duhet të konfiguroni bazën e të dhënave që do të manipulojë. Por, para se të fillojmë të shtypim kodet, duhet të kuptojmë fushat që mbajnë tabelën tonë. Bordi do të përbëhet nga 5 kurse, 'id', 'name', 'name', 'email', 'rfid' për të nxjerrë në treg disa prej tyre do të jap një shpjegim të shkurtër të përdorimit të tyre.
- 'id': a do të jetë fusha ose atributi int kolona që do të na tregojë numrin e caktuar për ID -në e Përdoruesit, ky numër caktohet nga e njëjta bazë e të dhënave dhe do të jetë mënyra për indeksimin e të dhënave tona.
- 'nombre': kolona e atributeve do të jetë 'varchar' mund të tregohet me emrin me të cilin identifikohet përdoruesi i kartës sonë.
- 'apellido': kolona e atributeve do të jetë 'varchar' mund të tregohet me mbiemrin me të cilin është lidhur përdoruesi ynë.
- 'correo': është kolona e atributeve 'varchar' e cila do të përmbajë e-mail përdoruesin e lidhur.
- 'rfid': është kolona e atributeve 'varchar' e cila do të përmbajë kodin e kartës RFID që përdorni.
(Unë do të përdor variablat në spanjisht, sepse është gjuha ime amtare dhe më pëlqen c:) Tani ne mund të konfigurojmë bazën e të dhënave tona pa problem, prandaj krijojmë një thirrje 'arduino' MySQL. Ju duhet të shkruani kodin e mëposhtëm:
mysqladmin -u rrënjë -p krijo arduino
Ne kërkojmë fjalëkalimin që kemi futur më herët në instalim, do ta dorëzojmë për të përfunduar krijimin e bazës. Përfunduar e gjithë kjo, ne futim pyetjen në MySQL, ju duhet të shkruani kodin e mëposhtëm në tastierë:
mysql -rrënjë -p
Përsëri ne kërkojmë fjalëkalimin, ju duhet ta paraqisni përsëri. Pasi të jeni brenda komandës së tastierës MySQL, treguesi ('mysql>') duhet të duket i gatshëm për të shtypur. Gjëja e parë që do të bëjmë është të lëvizim bazën që të dhënat 'arduino' të punojnë në të. Kjo bëhet duke shtypur komandën e mëposhtme në tastierën MySQL:
PERDORni arduino
Ne besojmë se tabela e emrave "usuariosrfid" në bazën e të dhënave do të përdorë për këtë projekt, shkruani këtë kod në tastierën MySQL:
- KRIJONI TABEL `usuariosrfid` (
- `id` int (255) JO AUTO_INCREMENT NULL,
- `nombre` varchar (300) JO NULL,
- `apellido` varchar (300) JO NULL,
- `correo` varchar (300) JO NULL,
- `rfid` varchar (300) JO NULL,
- ÇELEYS PRIMARE (`id`)
- ) ENGINE = KARSETI PEFRPARUES I MyISAM = latin1 AUTO_INCREMENT = 0;
* Mos harroni se kur shtypni butonin ENTER në fund të vijës së komandës në tastierën MySQL, nuk do të funksionojë derisa të gjeni ';' Prandaj, në fund të kodit është ';' Për të përfunduar instalimin dhe konfigurimin e MySQL, ne mbushim disa fusha testimi brenda bazës sonë. Shkruani në rreshtat e mëposhtëm:
- INSERT N `` usuariosrfid` (`id`,` nombre`, `apellido`,` correo`, `rfid`) VLERAT
- (1, 'Pedro', 'Suarez', '[email protected]', '1234a-12345-b-123c'),
- (4, 'Matias', 'Lopez', '[email protected]', '987a-9876b-987c');
Tani vazhdoni me krijimin e tabelës 'ControlUsuarios', e cila do të strehojë të gjitha kodet RFID që kalojnë nga lexuesi, kjo tabelë përbëhet nga 3 fusha, 'id', 'rfid', 'data'.
- 'id' është fusha ose atributi kolona int e cila do të përmbajë id -in e secilës regjistrim për indeksim.
- Atributi 'rfid' është kolona 'varchar' që përmban kodin e etiketës RFID u lexua nga lexuesi.
- 'data' është kolona e atributeve 'varchar' e cila do të përmbajë datën e leximit të kartës.
Për të krijuar tabelën 'ControlUsuarios', futim kodin e mëposhtëm në tastierën MySQL:
- CREATE TABELA `ControlUsuarios` (
- `id` int (255) JO AUTO_INCREMENT NULL,
- `rfid` varchar (300) JO NULL,
- `fecha` varchar (300) JO NULL,
- ÇELEYS PRIMARE (`id`)
- ) ENGINE = MyISAM KARSETI PARAPRAK = latin1 AUTO_INCREMENT = 0;
Së fundi shtypni 'exit;' në tastierë për të dalë nga MySQL Query dhe për t'u kthyer në SHH kështu që mund të fillojmë me PHP5.
Hapi 5: Instalimi i PHP5
Vazhdoni me instalimin dhe konfigurimin e PHP5. Ky instalim është më i lehtë se MySQL, kështu që nuk duhet t'u kushtojë asgjë. Së pari, instaloni paketën opkg nga shkarkimi dhe instalimi i Arduino Yun, kështu që shkruani në tastierën SSH të Arduino këtë:
opkg instaloni php5 php5-cgi
Pasi të shkarkohet dhe PHP5 të instalohet në Arduino Yun tonë, kështu që ne konfiguruam skedarin rrënjë uHTTPd, serveri http që sjell Arduino default, ju rekomandoj që ta përdorni vetëm këtë server http sepse është më i gjithanshëm dhe i arritshëm në konfigurim, jo Apache ose Lighttpd janë më të vështira për t'u konfiguruar kur jeni i ri në këtë fushë. Për ta konfiguruar këtë, përdorni redaktuesin e skedarëve 'vi' SSH, për këtë ju duhet të keni njohuri minimale për të përdorur këtë redaktues. Filloni të shtypni këtë kod në tastierë për të hyrë në skedarin e cilësimeve uHTTPd:
vi/etc/config/uhttpd
Shtypni 'i' për të redaktuar skedarin, pastaj shkoni te rreshti i kodit që keni shkruar '# list interpretues. "php = / usr / bin / php-cgi" '. Ju duhet të fshini karakterin '#' në fillim të rreshtit, pastaj shtypni butonin shpëtoj (çelësi 'ESC'), pasi të jeni gati, duhet të shtypni komandën ': wq' për të ruajtur skedarin dhe për të dalë nga. Duhet të rinisni serverin uHTTPd, për këtë, duhet të shkruani në tastierën e komandës të SSH kodin e mëposhtëm:
/etc/init.d/uhttpd rinis
Hapi 6: Instalimi i Conector MySQL për PHP5 dhe Python
Vazhdoni me instalimin dhe konfigurimin e moduleve për të lidhur bazën e të dhënave MySQL me PHP dhe Python. Le të fillojmë me lidhësin PHP. Shkruani kodin e mëposhtëm:
- opkg instaloni php5-mod-mysql
- sed -i's,; extension = mysql.so, extension = mysql.so, g '/etc/php.ini
Pasi të jetë gati nuk do të ketë nevojë të rindizni serverin uHTTPd, gati për përdorim të menjëhershëm. Tani vazhdoni me lidhësin për Python, për këtë, duhet të futni kodin e mëposhtëm:
opkg instaloni python-mysql
Me këtë hap të fundit, ne do të kemi Arduino Yun tonë gati për projektin tonë me lexuesin e kartave ID-20 RFID 125khz. Përfundoni këtë pjesë me Reagime për atë që kemi bërë:
- Ne instaluam serverin MySQL në Arduino Yun tonë, pastaj e konfiguruam atë, duke përfunduar me një futje të të dhënave të testit.
- Instaloni komplementin PHP në serverin tonë.
- Ne përfunduam me instalimin dhe konfigurimin e MySQL Connector për PHP dhe Python.
Hapi 7: Kodet
Në këtë fushë, ne diskutojmë kodet e programimit që do të përdoren për këtë projekt. Ne largohemi me kodin Python, i cili ndahet në dy skedarë: 'comprobar.py', i cili do të lidhet me bazën e të dhënave dhe do të kërkojë Yun Arduino nëse rezultati është në të, dhe kontrollin e skedarit. py ', përgjegjës për regjistrimin e çdo karte që lexohet nga lexuesi ID-20, pavarësisht nëse është apo jo në bazën e të dhënave të përdoruesve të regjistruar. Pastaj vazhdoni me përshkrimin e skedarëve PHP, janë: 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'delete2. php ',' guardar.php '' consulta.php ',' configuracion.php '. Për këto skedarë redundaremos të dy sepse janë të lehtë për t'u kuptuar. Më në fund përfundoni me kodin i cili do të ngjitet si skica jonë Arduino.
Hapi 8: Dosjet Python
Siç u përmend më herët, skriptet tona Python funksionuan me bibliotekën ose klasën "MySQLdb", e cila tashmë është instaluar më parë. Filloni duke krijuar një skedar me '.py' të quajtur 'comprobar.py' në redaktorin tonë, unë rekomandoj përdorimin e këtyre rasteve për programim në Python, redaktuesi Sublime Text 3, të cilin mund ta shkarkoni në faqen e tyre të internetit www.sublimetext.com. Le të fillojmë duke importuar bibliotekën për t'u lidhur me bazën tonë të të dhënave MySQL, 'sys' të bibliotekës e cila do të na lejojë të komunikojmë me Arduino Yun tonë:
- importoni MySQLdb
- import sys
Pasi të kemi importuar këto biblioteka ose klasa, ne shtojmë variabla në kodin tuaj, të cilat do të jenë të dhënat e lidhjes nga baza jonë e të dhënave MySQL, kocka:
- host = "127.0.0.1" # korrespondon me adresën e serverit tonë MySQL.
- përdoruesi = "your-seat" # është përdoruesi i bazës së të dhënave tona.
- passw = "fjalëkalimi juaj" është për fjalëkalimin e përdoruesit. base = "arduino" # Ky është emri i bazës së të dhënave që përdorni.
Tani filloni me kodet bazë të skriptit:
- ndërsa e vërtetë:
- db = MySQLdb.connect (host, përdorues, passw, bazë)
- cur = db.cursor ()
- resultado = cur.execute ("" "SELECT * NGA usuariosrfid KU RFID NGA %s URDH PYR ID" "", (sys.argv [1],))
- nëse (resultado == 1):
- shtyp 1
- sys.exit (1)
- tjeter:
- shtyp 2
- sys.exit (1)
Nëse e kuptojmë, në gjykimin 'cur.execute result = ("" "SELECT * NGA KU rfid usuariosrfid SI% s ORDER BY id" "(sys.argv [1]))' komandën për të ekzekutuar pyetjen tonë krahasoni variablin '(sys.argv [1])' i cili është kodi nga karta Arduino RFID me të gjitha të dhënat e tabelës 'rfid' tabela 'usuariosrfid', e cila, duke gjetur kodin e barazisë nga arduino dhe kodet e ruajtura në bazën e të dhënave, do të kthimi 1, nëse kjo nuk është e vërtetë dhe nuk ka barazi midis kodit nga arduino dhe disa prej bazës, ne do të kthejmë 2. Këta numra do të merren nga Arduino. Ne vazhdojmë me skedarin tjetër 'control.py. Ky skedar funksionon njësoj si më sipër, vetëm duke mbajtur një shije të mëparshme në një tryezë, këto të dhëna të ruajtura do të mblidhen nga lexuesi ID-20 i lidhur me Arduino Yun tonë, kështu që ne mund t'i mbajmë të gjithë përdoruesit e regjistruar që përdorin lexuesin tonë RFID.
Hapi 9: Dosjet PHP
Pastaj vazhdoni me skedarët. 'Php' që do të mbajë dosjen nga serveri ynë, për ta bërë këtë mos harroni se është e nevojshme që këto skedarë pasi të jenë gati, të ruhen në skit projektin tonë, i cili gjeneron automatikisht IDE Arduino, ju gjithashtu duhet të mbani mend, edhe pse unë parashikoj kjo, që kur ngjitemi në skicën tonë Arduino Yun, ngarkojmë përmes Wi -Fi, kështu që e lë në të njëjtën faqe manual Arduino, www.arduino. cc / sq / Guide / Arduino Yun # toc14, e cila shpjegon më shumë për të, dhe sesi duhet të shkoni të përgatitur kartën MicroSD për këtë lloj projekti ku skedarët duhet të ruhen në server. Skedarët PHP do të jenë 10 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'borrar2.php', 'guardar. php '' consulta.php ',' configuracion.php ', e cila do të lidhet me tjetrën, për të mbajtur një menu bazë gjithmonë të hapur dhe të arritshme. Thjesht shpjegoni skedarin 'configuracion.php', i cili funksionon si lidhës me bazën tonë të të dhënave. Në redaktorin tonë, ne caktojmë kodin e mëposhtëm në skedar:
- <? php
- / / Serveri i të dhënave dhe baza e të dhënave
- $ server = "localhost";
- $ username = "vendi juaj";
- $ password = "fjalëkalim";
- $ database_name = "arduino";
Këto janë të dhënat që duhet të lidhen me bazën tonë të të dhënave në arduino do të jenë të njëjtat që përdorim në skriptet tona Python. Përfundoni programimin e deklaratës së lidhjes, e cila përdori skriptin tonë:
- $ conexion = mysql_connect ($ server, $ username, $ password) ose vdes ("Problems al tratar de establecer la conexion");
- $ bd_sel = mysql_select_db (emri i bazës së të dhënave) ose vdes ("Problems al seleccionar la bazë të të dhënave");
- ?>
Dosjet e tjera janë bashkangjitur.
Hapi 10: Së fundi, Programi i Arduino YÚN
Ne arritëm në pjesën kryesore të këtij mësimi, duke programuar Arduino Yun tonë, asnjë detaj nuk do të nxjerrë në pah të gjithë kodin pasi është mjaft i gjerë, përmend vetëm pikat e mëposhtme të rëndësishme:
- Kodi përbëhet nga 6 funksione kryesore dhe 13 funksione dytësore, të cilat janë vetëm një mbështetje për përdorimin e LCD Serial.
- Të importohen vetëm tre klasa, 'SoftwareSerial.h', me të cilat do të futim Serial Attached për t'u lidhur me ID-20 dhe Serial LCD, klasën kryesore 'Bridge.h' me të cilën do të bëjmë lidhjen midis Linux dhe ATMEGA32U4, dhe klasa 'Process.h' do të shërbejë për proceset e konsultimit në Linux.
- Përcaktoni vetëm tre kunja, të cilat përdorin të tjerët të jenë falas.
Kodi është i bashkangjitur
Hapi 11: Gëzuar Vitin e Ri
Unë vazhdoj me përpikëri për t'ju shërbyer dhe për t'ju ndihmuar të merrni më shumë informacion në lidhje me Arduino Yun. Lërini të gjithë skedarët të bashkangjitur deri në fund. Për folësit e gjuhës spanjolle, e lë këtë mësim por në spanjisht me skedarët e nevojshëm. Shpresoj që të keni një vit të ri të lumtur, ta gëzoni dhe suksese këtë 2014!
Recommended:
Një kungull IoT Halloween - Kontrolloni LED me një aplikacion Arduino MKR1000 dhe Blynk ???: 4 hapa (me fotografi)
Një kungull IoT Halloween | Kontrolloni LED me një aplikacion Arduino MKR1000 dhe Blynk ???: Përshëndetje të gjithëve, Disa javë më parë ishte Halloween dhe duke ndjekur traditën unë gdhenda një kungull të bukur për ballkonin tim. Por duke pasur kungullin tim në natyrë, kuptova se ishte mjaft e bezdisshme të duhej të dilja çdo mbrëmje për të ndezur qirinjën. Edhe une
Arduino Kontrolloni shpejtësinë dhe drejtimin e motorit DC duke përdorur një potenciometër, ekran OLED dhe butona: 6 hapa
Arduino Kontrolli shpejtësinë dhe drejtimin e motorit DC duke përdorur një potenciometër, ekran OLED dhe butona: Në këtë tutorial ne do të mësojmë se si të përdorim një drejtues L298N DC MOTOR CONTROL dhe një potenciometër për të kontrolluar shpejtësinë dhe drejtimin e motorit DC me dy butona dhe të shfaqim vlerën e potenciometrit në ekranin OLED. Shikoni një video demonstruese
Si të ndërtoni një kub LED 8x8x8 dhe ta kontrolloni atë me një Arduino: 7 hapa (me fotografi)
Si të ndërtoni një kub LED 8x8x8 dhe ta kontrolloni atë me një Arduino: Jan 2020 edit: Unë po e lë këtë në rast se dikush dëshiron ta përdorë atë për të gjeneruar ide, por nuk ka më kuptim të ndërtosh një kub bazuar në këto udhëzime. IC -të e shoferit LED nuk janë bërë më, dhe të dy skicat janë shkruar në versionin e vjetër
Arduino Kontrolloni shpejtësinë dhe drejtimin e motorit DC duke përdorur një potenciometër dhe butona: 6 hapa
Arduino Kontrolli i shpejtësisë dhe drejtimit të motorit DC duke përdorur një potenciometër dhe butona: Në këtë tutorial do të mësojmë se si të përdorim një drejtues L298N DC MOTOR CONTROL dhe një potenciometër për të kontrolluar shpejtësinë dhe drejtimin e motorit DC me dy butona. Shikoni një video demonstruese
Light Jewel ✽ Kontrolloni shiritin tuaj LED pa Arduino dhe kod: 5 hapa (me fotografi)
Light Jewel ✽ Kontrolloni shiritin tuaj LED pa Arduino dhe kod: Kjo është një llambë e zgjuar që ndryshon shkëlqimin duke palosur pjesën e sipërme. Koncepti: Kjo është një llambë e përshtatshme për përdoruesit për këdo që gëzon të lexojë në një mjedis relaksues. Mundohuni të përfytyroni njerëz të ulur në tavolinë pranë një dritareje me disa shije të lezetshme