Orodha ya maudhui:

Dhibiti Ufikiaji wa Arduino YÚN Ukiwa na MySQL, PHP5 na Python: Hatua 11 (na Picha)
Dhibiti Ufikiaji wa Arduino YÚN Ukiwa na MySQL, PHP5 na Python: Hatua 11 (na Picha)

Video: Dhibiti Ufikiaji wa Arduino YÚN Ukiwa na MySQL, PHP5 na Python: Hatua 11 (na Picha)

Video: Dhibiti Ufikiaji wa Arduino YÚN Ukiwa na MySQL, PHP5 na Python: Hatua 11 (na Picha)
Video: Как использовать ESP32 WiFi и Bluetooth с Arduino IDE, полная информация с примерами и кодом. 2024, Septemba
Anonim
Dhibiti Ufikiaji wa Arduino YÚN Ukiwa na MySQL, PHP5 na chatu
Dhibiti Ufikiaji wa Arduino YÚN Ukiwa na MySQL, PHP5 na chatu

Halo Marafiki!

Kama unajua, mnamo Septemba ngao mpya ya kwanza ya Arduino, Arduino YUN. Rafiki huyu mdogo ana mfumo uliowekwa wa Linux ambao tunaweza kutumia chochote unachoweza kufikiria (angalau hadi sasa). Ingawa kuna habari chache sana kwenye bodi hii mpya, na kuondoka kwenye mwongozo ambao unatoa ukurasa wa Arduino (ambao utaunganisha baadaye), pamoja na maarifa kidogo ya Linux nyingi, zinaweza kutekeleza mradi mkubwa Ufikiaji wa Udhibiti. Wakati huu nitaelezea jinsi ya kufanya mradi huu, lakini kwa njia ya kutosha haswa kupitia Arduino yetu. Hii inafanya kazi, shukrani kwa seva ya hifadhidata ya MySQL ambayo itakaa katika YUN yetu, hifadhidata hii itahifadhi meza mbili, moja kwa watumiaji wanaohusishwa na RFID fulani na meza nyingine kuweka kumbukumbu za kadi zote ambazo zimepitia msomaji wetu. Wakati tunatumia programu za lugha za maandishi ya PHP na chatu kufanya msingi na kufanya kazi na data zetu. Kwa kuongezea, vifaa vya juu vya vifaa, tunatumia msomaji ID-20 karibu na LCD Serial ya herufi 16, pamoja na RGB LED ambayo itakuwa majimbo yetu ya habari. Tunaweza kutumia udhibiti huu wa ufikiaji kila kitu tunachoweza kufikiria, kurekebisha, na kuongeza relay au wazo lingine. Inaweza kutumika kwenye kitu chochote ambapo una kadi na unataka rekodi. Kumbuka kwamba hati hii ni uchapishaji wa bure, matumizi ya kibiashara na marekebisho ya msamaha hayaruhusiwi. Natumahi ni njia pana zaidi ya Umeme wa Chanzo wazi. Kwa hivyo tunaenda kwa hatua inayofuata, vyama vinahitaji!

Hatua ya 1: Sehemu

Sehemu
Sehemu
Sehemu
Sehemu
Sehemu
Sehemu

Kwa kufanya mradi huu, tunahitaji kuwa: $ 34.95 * Kuzuka kwa Msomaji wa RFID https://www.sparkfun.com/products/8423 $ 0.95 * Basic 16x2 Tabia LCD 5V https://www.sparkfun.com/products/790 $ 16.95 * Serial Backlack LCD Backpack https:// www. sparkfun.com/products/258 $ 16.95 * LED RGB 5mm https://www.sparkfun.com/products/105 $ 1.95 * Buzzer https://www.sparkfun.com/products/7950 $ 1.95 * Siri ya kichwa cha kichwa na waya $ 5.00 aprox. Kwa jumla, ukinunua kwenye duka Sparkfun, kila kitu kitakuwa karibu $ 150. Ikiwa unaishi Amerika Kusini, ningependekeza ununue sehemu kwenye www.olimex.cl, ni duka nzuri sana ya vifaa vya elektroniki vya Chile.

Hatua ya 2: Kukusanyika

Kukusanyika
Kukusanyika
Kukusanyika
Kukusanyika
Kukusanyika
Kukusanyika

Maunganisho machache ya kufanya, kuweka chini kuelezea kwa ufupi. Kwa RGB LED, pini nyekundu ya LED lazima iwe kwenye pin 9 ya Arduino, piga LED ya kijani inapaswa kwenda kwenye pin ya Arduino 8 na kubandika LED ya bluu iwe kwenye pin 7 ya Arduino. Kwa ID-20 lazima uunganishe pini zifuatazo kama inavyoonyeshwa kwenye jedwali kwa mpangilio, piga msomaji kwa pini ya Arduino: Piga kitambulisho cha 20-kubandika ID ya Arduino-20 / PIN ya Arduino 1 - PIN ya GND 2 - 5V PIN 7 - GND PIN 9 - PIN 10 PIN 10 - BUZZER PIN 11 - 5V Na mwishowe, kwa kiunganishi cha Serial LCD kitakuwa muhimu tu kwa pini 5v na GND za Arduino, wakati pini ya LCD Serial RX inaenda kubandika 11 ya Arduino.

Hatua ya 3: Upangaji wa Arduino Yun

Programu ya Yun Arduino
Programu ya Yun Arduino

Kwa madhumuni ya kutengeneza mradi wetu, tunahitaji kuanza na sehemu ya programu, sakinisha faili zingine kwenye Arduino opkg Yun yetu:

  • Seva ya MySQL
  • PHP5
  • MySQLdb ya Python 2.7
  • Mod ya PHP5 hadi MySQL

Kumbuka kwamba kwa msingi katika Bridge inakuja imewekwa Python 2.7, kwa hivyo hauitaji kusasisha sasisho hili kwa hili. Anza kuingia SSH kuthubutu kuingia Arduino Yun yetu, mara tu utakapoianzisha, andika amri ifuatayo kusasisha orodha ya programu za opkg:

sasisho la opkg

Hatua ya 4: Ufungaji wa MySQL

Ufungaji wa MySQL
Ufungaji wa MySQL

Sasa tutaanzisha usanidi na usanidi wa Seva ya MySQL, andika amri zifuatazo kwenye koni:

  1. opkg kufunga libpthread libncurses libreadline mysql-server
  2. sed -i, ^ datadir. *, datadir = / srv / mysql /, g '/etc/my.cnf
  3. sed -i, ^ tmpdir. *, tmpdir = / tmp /, g '/etc/my.cnf
  4. mkdir -p / srv / mysql
  5. mysql_install_db –-lazimisha
  6. /etc/init.d/mysqld kuanza
  7. /etc/init.d/mysqld wezesha
  8. mysqladmin -u nywila ya mizizi 'tu-nueva-clave'

Mara baada ya kumaliza kuingiza nambari zetu na kuanza seva ya MySQL, unapaswa kusanidi hifadhidata ambayo itatumia. Lakini kabla ya kuanza kuchapa nambari, tunahitaji kuelewa uwanja unaobeba meza yetu. Bodi hiyo itakuwa na kozi 5, 'id', 'jina', 'jina', 'barua pepe', 'rfid' kuuza baadhi yao nitatoa ufafanuzi mfupi wa matumizi yao.

  • 'id': uwanja au sifa ya safu wima ambayo itatuambia nambari iliyopewa Kitambulisho cha Mtumiaji, nambari hii imepewa hifadhidata sawa na itakuwa njia ya kuorodhesha rekodi zetu.
  • 'nombre': safu ya sifa itakuwa 'varchar' inaweza kuonyeshwa na jina ambalo mtumiaji wa kadi yetu ametambuliwa.
  • 'apellido': safu ya sifa itakuwa 'varchar' inaweza kuonyeshwa na jina la mwisho ambalo mtumiaji wetu anahusishwa.
  • 'correo': ni safu ya sifa 'varchar' ambayo itakuwa na barua pepe mtumiaji anayehusishwa.
  • 'rfid': ni safu ya sifa 'varchar' ambayo itakuwa na nambari ya kadi ya RFID unayotumia.

(Nitatumia anuwai kwa Kihispania, kwa sababu ni lugha yangu ya asili na napenda c:) Sasa tunaweza kusanidi hifadhidata yetu bila shida, kwa hivyo tunaunda simu ya 'arduino' MySQL. Lazima uandike nambari ifuatayo:

mysqladmin -u mzizi -p unda arduino

Tunaomba nywila tuliyoingiza mapema kwenye usanikishaji, tutaiwasilisha kukamilisha uundaji wa msingi. Kumaliza yote haya, tunaingiza swala kwa MySQL, unapaswa kuandika nambari ifuatayo kwenye koni:

mysql -root -p

Tena tunauliza nywila, lazima uiwasilishe tena. Mara tu ndani ya amri ya dashibodi ya MySQL, sisi pointer ('mysql>') inapaswa kuonekana tayari kuchapa. Jambo la kwanza tutafanya ni kuhamisha msingi wa data ya 'arduino' kuifanyia kazi. Hii imefanywa kwa kuandika amri ifuatayo kwenye dashibodi ya MySQL:

TUMIA arduino

Tunaamini meza ya jina 'usuariosrfid' kwenye hifadhidata itatumia kwa mradi huu, andika nambari hii kwenye koni ya MySQL:

  1. Tengeneza Jedwali `usuariosrfid` (
  2. `id` int (255) SI NILI AUTO_INCREMENT,
  3. `nombre` varchar (300) SI NULL,
  4. `apellido` varchar (300) SI NULL,
  5. `correo` varchar (300) SI NULL,
  6. `rfid` varchar (300) SI NULL,
  7. KIWANGO CHA MSINGI (`id`)
  8. INJINI = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 0;

* Kumbuka kwamba wakati wa kubonyeza kitufe cha ENTER mwishoni mwa mstari wa amri kwenye kiweko cha MySQL, haitaendesha hadi upate ';' Kwa hivyo, mwisho wa nambari ni ';' Kukamilisha usanidi na usanidi wa MySQL, tunajaza sehemu kadhaa za majaribio ndani ya msingi wetu. Andika katika mistari ifuatayo:

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

Sasa endelea na uundaji wa meza 'ControlUsuarios', ambayo itaweka nambari zote za RFID zinazopita kwa msomaji, meza hii ina sehemu 3, 'id', 'rfid', 'date'.

  • 'id' ni uwanja au sifa ndani ya safu ambayo itakuwa na kitambulisho cha kila rekodi ya kuorodhesha.
  • Sifa ya 'rfid' ni safu ya 'varchar' iliyo na nambari ya lebo ya RFID ilisomwa na msomaji.
  • 'tarehe' ni safu wima ya 'varchar' ambayo itakuwa na tarehe ambayo kadi ilisomwa.

Ili kuunda meza 'ControlUsuarios', tunaingiza nambari ifuatayo kwenye dashibodi ya MySQL:

  1. Unda Jedwali `UdhibitiUsuarios` (
  2. `id` int (255) SI NILI AUTO_INCREMENT,
  3. `rfid` varchar (300) SI NULL,
  4. `fecha` varchar (300) SI NULL,
  5. KIWANGO CHA MSINGI (`id`)
  6. INJINI = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 0;

Hatimaye andika 'toka;' kwenye koni ili kutoka kwa Swala la MySQL, na kurudi kwa SHH ili tuanze na PHP5.

Hatua ya 5: Ufungaji wa PHP5

Ufungaji wa PHP5
Ufungaji wa PHP5

Endelea na usanidi na usanidi wa PHP5. Ufungaji huu ni rahisi kuliko MySQL, kwa hivyo haipaswi kuwagharimu chochote. Kwanza, weka kifurushi cha opkg kutoka kwa kupakua na kusanikisha Arduino Yun, kwa hivyo andika koni ya SSH ya Arduino hii:

opkg kufunga php5 php5-cgi

Mara tu ikipakuliwa na PHP5 imewekwa kwenye Arduino Yun yetu, kwa hivyo tulisanidi faili ya mizizi uHTTPd, seva ya http ambayo inaleta chaguo-msingi la Arduino, ninapendekeza utumie tu seva hii ya http kwa sababu ni rahisi zaidi na inapatikana katika usanidi, sio Apache au Lighttpd ni ngumu zaidi kuanzisha wakati wewe ni mpya katika uwanja huu. Ili kusanidi hii, tumia kihariri cha faili 'vi' SSH, kwa hili lazima uwe na maarifa ya chini kutumia mhariri huu. Anza kuandika nambari hii kwenye koni ili kufikia faili ya mipangilio uHTTPd:

vi / nk / config / uhttpd

Bonyeza 'i' kuhariri faili, kisha nenda kwenye laini ya nambari uliyoandika 'mkalimani wa orodha #. "php = / usr / bin / php-cgi" '. Lazima ufute herufi '#' nje mwanzoni mwa mstari, kisha bonyeza kitufe cha kutoroka (kitufe cha 'ESC'), ukisha kuwa tayari, lazima uchapishe amri ': wq' kuhifadhi faili na kutoka. Lazima uanze tena seva uHTTPd, kwa hili, unapaswa kuchapa koni ya amri ya SSH nambari ifuatayo:

/etc/init.d/uhttpd kuanzisha upya

Hatua ya 6: Kusanikisha Conector MySQL kwa PHP5 na Python

Kufunga Conector MySQL kwa PHP5 na Python
Kufunga Conector MySQL kwa PHP5 na Python

Endelea na usanidi na usanidi wa moduli za kuunganisha hifadhidata ya MySQL na PHP na chatu. Wacha tuanze na kiunganishi cha PHP. Andika nambari ifuatayo:

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

Ukiwa tayari haitahitaji kuanzisha tena seva uHTTPd, tayari kwa matumizi ya haraka. Sasa endelea na kontakt ya Python, kwa hiyo, lazima uweke nambari ifuatayo:

opkg kufunga python-mysql

Kwa hatua hii ya mwisho, tutakuwa na Arduino Yun yetu tayari kwa mradi wetu na msomaji wa kadi ID-20 RFID 125khz. Maliza sehemu hii na Maoni ya kile tumefanya:

  • Tuliweka seva ya MySQL kwenye Arduino Yun yetu, kisha tukaisanidi, na kuishia na kuingizwa kwa data ya jaribio.
  • Sakinisha inayosaidia ya PHP kwenye seva yetu.
  • Tulimaliza na usanidi na usanidi wa Kiunganishi cha MySQL kwa wote PHP na chatu.

Hatua ya 7: Nambari

Katika eneo hili, tunajadili nambari za programu zitakazotumika kwa mradi huu. Tunaondoka na nambari ya chatu, ambayo imegawanywa katika faili mbili: 'comprobar.py', ambayo itaunganisha kwenye hifadhidata na kutafuta Yun Arduino ikiwa matokeo yako ndani, na faili 'inadhibiti. py ', inayohusika na kurekodi kadi yoyote inayosomwa na msomaji ID-20, iwe kwenye orodha ya watumiaji waliosajiliwa au la. Kisha endelea na maelezo ya faili za PHP, ni: 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'delete2. php ',' guardar.php 'consulta.php', 'configuracion.php'. Kwa faili hizi redundaremos zote mbili kwa sababu ni rahisi kuelewa. Mwishowe maliza na nambari ambayo itakua kama mchoro wetu wa Arduino.

Hatua ya 8: Faili Python

Faili chatu
Faili chatu

Kama ilivyoelezwa hapo awali, hati zetu za Python zilifanya kazi na maktaba au darasa 'MySQLdb', ambayo tayari imewekwa hapo awali. Anza kwa kuunda faili na '.py' inayoitwa 'comprobar.py' katika mhariri wetu, napendekeza kutumia kesi hizi kwa programu katika Python, mhariri Sublime Nakala 3, ambayo unaweza kupakua kwenye wavuti yao ya www.sublimetext.com. Wacha tuanze kwa kuagiza maktaba kuungana na hifadhidata yetu ya MySQL, 'sys' ya maktaba ambayo itaturuhusu kuwasiliana na Arduino Yun yetu:

  1. kuagiza MySQLdb
  2. kuagiza sys

Mara tu tukiingiza maktaba au madarasa haya, tunaongeza anuwai kwa nambari yako, ambayo itakuwa data ya unganisho kutoka hifadhidata yetu ya MySQL, mfupa:

  1. mwenyeji = "127.0.0.1" # inalingana na anwani ya seva yetu ya MySQL.
  2. mtumiaji = "kiti chako" # ni mtumiaji wa hifadhidata yetu.
  3. passw = "nywila-yako" ni ya nywila ya mtumiaji. base = "arduino" # Hili ni jina la hifadhidata unayotumia.

Sasa anza na nambari za maandishi ya msingi:

  1. wakati Kweli:
  2. db = MySQLdb.connect (mwenyeji, mtumiaji, pasi, msingi)
  3. cur = db mshale ()
  4. resultado = cur.execute ("" "CHAGUA * KUTOKA usuariosrfid WAPI rfid LIKE% s AMRI KWA ID" "", (sys.argv [1],))
  5. ikiwa (matokeo = = 1):
  6. chapisha 1
  7. msafara (1)
  8. mwingine:
  9. chapisha 2
  10. msafara (1)

Ikiwa tutatambua, katika uamuzi wa cur.execute matokeo = ("" "CHAGUA * KUTOKA WAPI rfid usuariosrfid LIKE% s AMRI KWA ID" "" (sys.argv [1])) 'amri ya kutekeleza swali letu kulinganisha tofauti '(sys.argv [1])' ambayo ni nambari kutoka kwa kadi ya Arduino RFID iliyo na data yote ya uwanja 'rfid' meza 'usuariosrfid', ambayo, ikipata nambari ya usawa kutoka kwa arduino na au nambari zilizohifadhiwa kwenye hifadhidata, kurudi 1, ikiwa hii sio kweli na hakuna usawa kati ya nambari kutoka kwa arduino na zingine za msingi, tutarudi 2. Nambari hizi zitapokelewa na Arduino. Tunaendelea na faili inayofuata 'control.py. Faili hii inafanya kazi sawa na hapo juu, kuweka tu ladha mezani, rekodi hizi zimehifadhiwa zitakusanywa na msomaji ID-20 iliyounganishwa na Arduino Yun wetu, ili tuweze kuweka watumiaji wote waliosajiliwa wanaotumia msomaji wetu wa RFID.

Hatua ya 9: Faili za PHP

Kisha endelea na faili. 'Php' ambayo itaweka folda kutoka kwa seva yetu, kwa kufanya hivyo kumbuka kwamba ni muhimu kwamba faili hizi zikiwa tayari, zimehifadhiwa kwenye skit mradi wetu, ambao hutengeneza moja kwa moja IDE Arduino, unahitaji pia kukumbuka, ingawa ninatarajia hii, kwamba tunapokwenda hadi kwenye mchoro wetu wa Arduino Yun, tunapakia juu ya Wi -Fi, kwa hivyo ninaiacha kwenye mwongozo huo huo wa ukurasa Arduino, www.arduino. cc / sw / Mwongozo / Arduino Yun # toc14, ambayo inaelezea zaidi juu yake, na jinsi unapaswa kwenda kuandaa kadi ya MicroSD kwa aina hii ya mradi ambapo faili zinapaswa kuhifadhiwa kwenye seva. Faili za PHP zitakuwa 10 'consultaRelacion.php', 'consultaControl.php', 'index.php' modificar2.php ',' modificar.php ',' borrar.php ',' borrar2.php ',' guardar. php '' consulta.php ',' configuracion.php ', ambayo itaunganishwa kwa nyingine, kudumisha menyu ya msingi inayoendesha na inayopatikana kila wakati. Eleza tu faili 'configuracion.php', ambayo inafanya kazi kama kiunganishi na hifadhidata yetu. Katika mhariri wetu, tunapanga nambari ifuatayo kwenye faili:

  1. <? php
  2. / / Seva ya data na hifadhidata
  3. $ server = "localhost";
  4. $ username = "kiti chako";
  5. Nenosiri la $ = "password";
  6. $ database_name = "arduino";

Hizi ni data ambazo zinahitaji kuungana na hifadhidata yetu kwenye arduino zitakuwa zile zile tunazotumia katika hati zetu za Python. Maliza kupanga taarifa ya unganisho, ambayo ilitumia hati yetu:

  1. $ conexion = mysql_connect ($ server, $ username, $ password) au kufa ("Problemas al tratar de establecer la conexion");
  2. $ bd_sel = mysql_select_db ($ database_name) au kufa ("Matatizo ya kuchagua data base");
  3. ?>

Faili zingine zimeambatanishwa.

Hatua ya 10: Mwishowe, Programu ya Arduino YÚN

Tulifika sehemu kuu ya mafunzo haya, tukipanga Arduino Yun yetu, hakuna maelezo yoyote yatakayoangazia nambari yote ya kificho kwani ni pana sana, taja tu mambo muhimu yafuatayo:

  • Nambari hiyo ina kazi kuu 6 na kazi 13 za sekondari, ambazo ni msaada tu kwa matumizi ya Serial LCD.
  • Ingiza nje madarasa matatu tu, 'SoftwareSerial.h', ambayo tutaingiza Serial Attached kuungana na ID-20 na Serial LCD, darasa kuu 'Bridge.h' ambayo tutaunganisha Linux na ATMEGA32U4, na darasa la 'Process.h' litatumika kwa michakato ya mashauriano kwenye Linux.
  • Fafanua pini tatu tu, ambazo hutumia zingine kuwa bure.

Nambari imeambatanishwa

Hatua ya 11: Heri ya Mwaka Mpya

Ninaendelea hii kwa uangalifu kukuhudumia na kukusaidia kupata habari zaidi kuhusu Arduino Yun. Acha faili zote zilizoambatanishwa hadi mwisho. Kwa spika za urefu wa Uhispania, ninaacha mafunzo haya lakini kwa Kihispania na faili zinazohitajika. Natumai una mwaka mpya wenye furaha, ufurahie na kufaulu mwaka huu wa 2014!

Ilipendekeza: