Sisällysluettelo:

Arduino YÚNin pääsyn hallinta MySQL: n, PHP5: n ja Pythonin kanssa: 11 vaihetta (kuvilla)
Arduino YÚNin pääsyn hallinta MySQL: n, PHP5: n ja Pythonin kanssa: 11 vaihetta (kuvilla)

Video: Arduino YÚNin pääsyn hallinta MySQL: n, PHP5: n ja Pythonin kanssa: 11 vaihetta (kuvilla)

Video: Arduino YÚNin pääsyn hallinta MySQL: n, PHP5: n ja Pythonin kanssa: 11 vaihetta (kuvilla)
Video: How to Monitor and Control ESP32 from Anywhere in the World with RemoteXY IoT Cloud 2024, Marraskuu
Anonim
Hallitse Arduino YÚNin pääsyä MySQL: n, PHP5: n ja Pythonin avulla
Hallitse Arduino YÚNin pääsyä MySQL: n, PHP5: n ja Pythonin avulla

Hei ystävät!

No, kuten tiedätte, syyskuussa Arduinon uusi kantaesitys, Arduino YUN. Tällä pienellä ystävällä on Linux -sulautettu järjestelmä, jolla voimme ajaa mitä tahansa (ainakin toistaiseksi). Vaikka tällä uudella taululla on hyvin vähän tietoa, Arduino -sivun oppaasta (joka linkitetään myöhemmin) ja vähän tietoa monista Linux -ohjelmista voidaan suorittaa suuri hanke, jossa voidaan hallita pääsyä. Tällä kertaa selitän, miten tämä projekti tehdään, mutta riittävän erityisellä tavalla koko Arduinomme kautta. Tämä toimii, kiitos tietokantapalvelimen MySQL: n, joka asettuu YUN: iimme, tämä tietokanta tallentaa kaksi taulukkoa, yhden tietyn RFID: n käyttäjille, ja toisen taulukon, joka pitää kirjaa kaikista korteistamme, jotka ovat kulkeneet lukijamme läpi. Vaikka käytämme ohjelmointikieliä PHP- ja Python -komentosarjoja suorittaaksemme joitain perustoimintoja ja työskennelläksemme tietojemme kanssa. Lisäksi laitteiston yläpuolella käytämme ID-20-lukulaitetta 16 merkin sarja-nestekidenäytön vieressä sekä RGB-merkkivaloa, joka on informanttimme. Voimme käyttää tätä kulunvalvontaa kaikessa mitä voimme ajatella, muokata ja lisätä releen tai muun idean. Sitä voidaan käyttää mihin tahansa, missä sinulla on kortteja ja haluat ennätyksen. Muista, että tämä asiakirja on ilmainen julkaisu, kaupallinen käyttö ja vapautetut muutokset eivät ole sallittuja. Toivon, että se on paljon laajempi avoimen lähdekoodin elektroniikan polku. Joten siirrymme seuraavaan vaiheeseen, osapuolet tarvitsevat!

Vaihe 1: Osat

Osat
Osat
Osat
Osat
Osat
Osat

Tätä projektia varten meillä on oltava: * Arduino YUN https://www.sparkfun.com/products/12053 71,95 $ * RFID-lukija ID-20 (125 kHz) https://www.sparkfun.com/products/11828 34,95 dollaria * RFID -lukijakatkos https://www.sparkfun.com/products/8423 0,95 $ * Perus 16x2 -merkkinen LCD -5V https://www.sparkfun.com/products/790 16,95 dollaria * Sarjaliikennettä käyttävä LCD -reppu https:// www. sparkfun.com/products/258 16,95 dollaria * LED -RGB 5 mm https://www.sparkfun.com/products/105 $ 1,95 * summeri https://www.sparkfun.com/products/7950 1,95 $ * Somes -otsikkotappi ja -lanka noin 5,00 dollaria. Kaiken kaikkiaan, jos ostat Sparkfun -kaupasta, kaikki on lähellä 150 dollaria. Jos asut Latinalaisessa Amerikassa, suosittelen osien ostamista osoitteesta www.olimex.cl, on erittäin hyvä Chilen elektroniikkakauppa.

Vaihe 2: Kokoaminen

Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano

Harvat yhteydet tehtäviksi, selitä lyhyesti. RGB -LED -valon osalta punaisen LED -nastan on oltava Arduinon nastassa 9, nastan vihreä LED -valo palaa Arduino -nastassa 8 ja sininen LED -valo tulee olla Arduinon nastassa 7. ID-20: lle sinun on liitettävä seuraavat nastat taulukon mukaisesti vastaavassa järjestyksessä, nastanlukija Arduino-nastaan: Nasta ID-20 nastaan Arduino ID-20 / Arduino PIN 1-GND PIN 2-5V PIN 7 - GND PIN 9- PIN 10 PIN 10- BUZZER PIN 11- 5V Ja lopuksi, sarja-LCD-liitin tarvitaan vain Arduino 5v- ja GND-nastoihin, kun taas LCD Serial RX -tappi menee nastaan 11 Arduinosta.

Vaihe 3: Arduino Yun -ohjelmointi

Arduino Yun -ohjelmointi
Arduino Yun -ohjelmointi

Projektimme toteuttamiseksi meidän on aloitettava ohjelmiston osasta, asennettava joitain tiedostoja Arduino opkg Yun -laitteeseemme:

  • MySQL -palvelin
  • PHP5
  • MySQLdb Pythonille 2.7
  • PHP5: n muunnos MySQL: ksi

Muista, että Bridgessä oletusarvoisesti on asennettu Python 2.7, joten sinun ei tarvitse koskaan asentaa päivitystä tähän. Aloita SSH: n kirjaaminen, uskalla astua Arduino Yuniin, kun olet aloittanut ne, kirjoita seuraava komento päivittääksesi sovellusten luettelon opkg:

opkg päivitys

Vaihe 4: MySQL: n asennus

MySQL: n asennus
MySQL: n asennus

Nyt määritämme MySQL -palvelimen asennuksen ja kokoonpanon, kirjoita seuraavat komennot konsoliin:

  1. opkg install libpthread libncurses libreadline mysql-palvelin
  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 –-voima
  6. /etc/init.d/mysqld start
  7. /etc/init.d/mysqld enable
  8. mysqladmin -u root-salasana 'tu-nueva-clave'

Kun olet syöttänyt koodimme ja käynnistänyt MySQL -palvelimen, sinun on määritettävä manipuloitava tietokanta. Mutta ennen kuin aloitamme koodien kirjoittamisen, meidän on ymmärrettävä taulukkomme sisältämät kentät. Hallitus koostuu viidestä kurssista, "id", "name", "name", "email", "rfid" joidenkin markkinoimiseksi. Annan lyhyen selityksen niiden käytöstä.

  • 'id': näyttääkö kenttä tai attribuutti int -sarakkeen, joka kertoo meille käyttäjätunnukselle määritetyn numeron, tämän numeron antaa sama tietokanta ja se on tapa indeksoida tietueemme.
  • 'nombre': määritteen sarake on 'varchar', ja se voidaan ilmaista nimellä, jolla korttimme käyttäjä tunnistetaan.
  • 'apellido': attribuutti -sarake on 'varchar', ja sen voi merkitä sukunimellä, johon käyttäjämme liittyy.
  • 'Correo': on määritesarake 'varchar', joka sisältää sähköpostin, johon käyttäjä liittyy.
  • 'rfid': on määritesarake 'varchar', joka sisältää käyttämäsi RFID -kortin koodin.

(Käytän muuttujia espanjaksi, koska se on äidinkieleni ja pidän c: stä:) Nyt voimme määrittää tietokantamme ilman ongelmia, joten luomme "arduino" -kutsun MySQL. Sinun on kirjoitettava seuraava koodi:

mysqladmin -u root -p luo arduino

Pyydämme salasanaa, jonka annoimme aiemmin asennuksessa, lähetämme sen loppuun tukiaseman luomiseksi. Kun kaikki tämä on valmis, syötämme kyselyn MySQL: ään, kirjoita seuraava koodi konsoliin:

mysql -juuri -p

Pyydämme jälleen salasanaa, sinun on lähetettävä se uudelleen. Kun olemme MySQL -konsolikomennon sisällä, osoittimen ('mysql>') pitäisi näyttää valmiina kirjoittamiseen. Ensimmäinen asia, jonka teemme, on siirtää arduino -datan perusta toimimaan sen parissa. Tämä tehdään kirjoittamalla seuraava komento MySQL -konsoliin:

KÄYTÄ arduinoa

Uskomme, että tietokannan nimitaulukkoa 'usuariosrfid' käytetään tässä projektissa, kirjoita tämä koodi MySQL -konsoliin:

  1. LUO TAULUKKO "usuariosrfid" (
  2. "id" int (255) EI NULL AUTO_INCREMENT,
  3. "nombre" varchar (300) EI NULL,
  4. "apellido" varchar (300) EI NULL,
  5. "korjaus" varchar (300) EI NULL,
  6. "rfid" varchar (300) EI NULL,
  7. ENSISIJAINEN AVAIN ("id")
  8. ) MOOTTORI = MyISAM DEFAULT CHARSET = latina1 AUTO_INCREMENT = 0;

* Muista, että kun painat ENTER -näppäintä komentorivin lopussa MySQL -konsolissa, se ei toimi, ennen kuin löydät ';' Siksi koodin lopussa on ';' Saadaksemme MySQL: n asennuksen ja kokoonpanon päätökseen täytämme joitain testikenttiä tukikohdassamme. Kirjoita seuraavat rivit:

  1. INSERT INTO "usuariosrfid" ("id", "nombre", "apellido", "correcto", "rfid") ARVOT
  2. (1, 'Pedro', 'Suarez', '[email protected]', '1234a-12345-b-123c'),
  3. (4, 'Matias', 'Lopez', '[email protected]', '987a-9876b-987c');

Jatka nyt "ControlUsuarios" -taulukon luomista, joka sisältää kaikki lukijan ohi kulkevat RFID -koodit. Tämä taulukko koostuu kolmesta kentästä, "id", "rfid", "date".

  • 'id' on kenttä tai attribuutti int -sarakkeessa, joka sisältää jokaisen indeksoinnin kohteena olevan tietueen tunnuksen.
  • "rfid" -attribuutti on RFID -tunnistekoodin sisältävä sarake "varchar", jonka lukija on lukenut.
  • "päivämäärä" on määritesarake "varchar", joka sisältää kortin lukupäivän.

Luodaksemme taulukon 'ControlUsuarios', syötämme seuraavan koodin MySQL -konsoliin:

  1. LUO TAULUKKO `ControlUsuarios` (
  2. "id" int (255) EI NULL AUTO_INCREMENT,
  3. "rfid" varchar (300) EI NULL,
  4. "fecha" varchar (300) EI NULL,
  5. ENSISIJAINEN AVAIN ("id")
  6. ) MOOTTORI = MyISAM DEFAULT CHARSET = latina1 AUTO_INCREMENT = 0;

Kirjoita lopuksi 'exit;' konsolista poistuaksesi MySQL -kyselystä ja palataksesi SHH: han, jotta voimme aloittaa PHP5: llä.

Vaihe 5: PHP5: n asennus

PHP5: n asennus
PHP5: n asennus

Jatka PHP5: n asennusta ja määritystä. Tämä asennus on helpompaa kuin MySQL, joten sen ei pitäisi maksaa heille mitään. Asenna ensin opkg -paketti ladattavasta ja asennettavasta Arduino Yunista, joten kirjoita Arduinon SSH -konsoliin tämä:

opkg asenna php5 php5-cgi

Kun olemme ladanneet ja PHP5: n asentaneet Arduino Yun -laitteeseemme, joten määritimme juuritiedoston uHTTPd, http -palvelimen, joka tuo Arduinon oletusasetukset, suosittelen käyttämään vain tätä http -palvelinta, koska se on monipuolisempi ja helpommin käytettävissä, ei Apache tai Lighttpd käyttöön, kun olet uusi tällä alalla. Määritä tämä käyttämällä tiedostoeditoria 'vi' SSH, sillä sinulla on oltava vähintään tiedot tämän editorin käytöstä. Aloita tämän koodin kirjoittaminen konsoliin päästäksesi asetustiedostoon uHTTPd:

vi/etc/config/uhttpd

Paina 'i' muokataksesi tiedostoa ja siirry sitten koodiriville, jonka olet kirjoittanut# luettelon tulkki. "php = / usr / bin / php-cgi" ". Sinun on poistettava merkki '#' rivin alusta ja painettava sitten Esc (näppäin 'ESC') -näppäintä. Kun olet valmis, sinun on kirjoitettava komento ': wq' tallentaaksesi tiedoston ja poistuaksesi. Sinun on käynnistettävä palvelin uHTTPd uudelleen, tätä varten sinun on kirjoitettava SSH: n komentokonsoliin seuraava koodi:

/etc/init.d/uhttpd käynnistä uudelleen

Vaihe 6: Asenna Conector MySQL PHP5: lle ja Pythonille

Asenna Conector MySQL PHP5: lle ja Pythonille
Asenna Conector MySQL PHP5: lle ja Pythonille

Jatka moduulien asennusta ja konfigurointia yhdistääksesi MySQL -tietokannan PHP: hen ja Pythoniin. Aloitetaan PHP -liittimestä. Kirjoita seuraava koodi:

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

Kun se on valmis, sen ei tarvitse käynnistää uudelleen palvelinta uHTTPd, joka on valmis välittömään käyttöön. Jatka nyt Python -liittimellä, sillä sinun on annettava seuraava koodi:

opkg asentaa python-mysql

Tässä viimeisessä vaiheessa meillä on Arduino Yun valmiina projektiin, jossa on kortinlukija ID-20 RFID 125 khz. Lopeta tämä osa palautteella siitä, mitä olemme tehneet:

  • Asensimme MySQL -palvelimen Arduino Yun -laitteellemme ja määritimme sen sitten, päättyen testitietojen lisäämiseen.
  • Asenna PHP -täydennys palvelimellemme.
  • Saimme valmiiksi MySQL Connectorin asennuksen ja konfiguroinnin sekä PHP: lle että Pythonille.

Vaihe 7: Koodit

Tällä alalla keskustelemme tämän hankkeen ohjelmointikoodeista. Lähdemme Python -koodilla, joka on jaettu kahteen tiedostoon: "comprobar.py", joka muodostaa yhteyden tietokantaan ja etsii Yun Arduinoa, jos tulos on siinä, ja tiedoston "control". py ', joka vastaa kortin tallentamisesta, jonka lukija ID-20 lukee riippumatta siitä, onko se rekisteröityjen käyttäjien tietokannassa vai ei. Jatka sitten PHP -tiedostojen kuvausta, ovat: "consultaRelacion.php", "consultaControl.php", "index.php" "modificar2.php", "modificar.php", "borrar.php", "delete2. php ',' guardar.php '' consulta.php ',' configuracion.php '. Näille tiedostoille redundaremos molemmat, koska ne on helppo ymmärtää. Lopuksi lopeta koodi, joka nousee Arduinon luonnoksena.

Vaihe 8: Tiedostot Python

Tiedostot Python
Tiedostot Python

Kuten aiemmin mainittiin, Python -skriptimme toimivat kirjasto tai luokka 'MySQLdb', joka on jo asennettu. Aloita luomalla editorissa tiedosto ".py", jota kutsutaan nimellä "comprobar.py", suosittelen käyttämään näitä tapauksia ohjelmointiin Pythonissa, Sublime Text 3 -editorissa, jonka voit ladata heidän verkkosivustoltaan www.sublimetext.com. Aloitetaan tuomalla kirjasto yhteyden muodostamiseksi MySQL -tietokantaamme, kirjaston 'sys', jonka avulla voimme kommunikoida Arduino Yunin kanssa:

  1. tuo MySQLdb
  2. tuontijärjestelmä

Kun olet tuonut nämä kirjastot tai luokat, lisäämme koodisi muuttujia, jotka ovat MySQL -tietokantamme yhteystietoja, luu:

  1. host = "127.0.0.1" # vastaa MySQL -palvelimemme osoitetta.
  2. user = "your-seat" # on tietokantamme käyttäjä.
  3. passw = "salasanasi" on käyttäjän salasana. base = "arduino" # Tämä on käyttämäsi tietokannan nimi.

Aloita nyt perusskriptikoodeilla:

  1. vaikka totta:
  2. db = MySQLdb.connect (isäntä, käyttäjä, salasana, tukiasema)
  3. cur = db. kohdistin ()
  4. resultado = cur.execute ("" "SELECT * FROM usuariosrfid WHERE rfid LIKE %s ORDER BY id" "", (sys.argv [1],))
  5. jos (resultado == 1):
  6. tulosta 1
  7. sys.exit (1)
  8. muu:
  9. tulosta 2
  10. sys.exit (1)

Jos ymmärrämme, tuomiossa 'cur.execute result = ("" "SELECT * FROM WHERE rfid usuariosrfid LIKE% s ORDER BY id" "" (sys.argv [1]))' komento suorittaa kyselymme vertailla muuttujaa '(sys.argv [1])', joka on Arduinon RFID -kortin koodi, jossa on kaikki kenttätiedot 'rfid' taulukko 'usuariosrfid', joka löytää tasa -arvokoodin arduinosta ja tietokantaan tallennetut koodit. palauta 1, jos tämä ei ole totta ja arduino -koodin ja joidenkin tukiasemien välillä ei ole tasa -arvoa, palautamme 2. Nämä numerot vastaanottaa Arduino. Jatkamme seuraavan tiedoston 'control.py. Tämä tiedosto toimii samalla tavalla kuin yllä, vain säilyttäen jälkimaku pöydällä, nämä tallennetut tiedot kerää Arduino Yun -laitteeseemme yhdistetty lukija ID-20, jotta voimme säilyttää kaikki rekisteröityneet käyttäjät, jotka käyttävät RFID-lukijaamme.

Vaihe 9: Tiedostot PHP

Jatka sitten tiedostojen kanssa. "Php", joka pitää kansion palvelimeltamme, muista tämä, jotta nämä tiedostot on saatava valmiiksi ja tallennettava projektiin, joka luo automaattisesti IDE Arduinon, sinun on myös muistettava, vaikka odotankin tämä, että kun siirrymme Arduino -luonnokseen Yun, lataamme sen Wi -Fi: n kautta, joten jätän sen samalle sivulle Arduino, www.arduino. cc / fi / Opas / Arduino Yun # toc14, jossa kerrotaan enemmän siitä ja miten sinun on valmisteltava MicroSD -kortti tämän tyyppisiin projekteihin, joissa tiedostot on tallennettava palvelimelle. PHP -tiedostot ovat 10 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'borrar2.php', 'guardar. php '' consulta.php '', 'configuracion.php', joka linkitetään toiseen, jotta perusvalikko pysyy aina käynnissä ja käytettävissä. Selitä vain tiedosto 'configuracion.php', joka toimii tietokantamme yhdistäjänä. Ajoitamme editorissamme seuraavan koodin tiedostoon:

  1. <? php
  2. / / Datapalvelin ja tietokanta
  3. $ server = "paikallinen isäntä";
  4. $ username = "sinun paikkasi";
  5. $ password = "salasana";
  6. $ database_name = "arduino";

Nämä tiedot, jotka täytyy muodostaa yhteys tietokantaamme arduinossa, ovat samat kuin Python -skripteissämme. Lopeta skriptimme käyttäneen Connect -lauseen ohjelmointi:

  1. $ conexion = mysql_connect ($ server, $ username, $ password) tai kuole ("Problemas al tratar de establecer la conexion");
  2. $ bd_sel = mysql_select_db ($ tietokannan_nimi) tai kuole ("Ongelmien valinta, joka perustuu tietokantaan");
  3. ?>

Muut tiedostot ovat liitteenä.

Vaihe 10: Lopuksi Arduino YÚN -ohjelma

Pääsimme tämän opetusohjelman pääosaan, ohjelmoimalla Arduino Yun, mitään yksityiskohtia ei korosta koko koodia, koska se on melko laaja, mainitse vain seuraavat tärkeät kohdat:

  • Koodi koostuu kuudesta päätoiminnosta ja 13 toissijaisesta toiminnosta, jotka tukevat vain sarja -LCD -näytön käyttöä.
  • Tuodaan vain kolme luokkaa, "SoftwareSerial.h", jolla syötetään Serial Attached, jotta voidaan muodostaa yhteys ID-20: een ja Serial LCD -näyttöön, pääluokka "Bridge.h", jolla muodostamme yhteyden Linuxin ja ATMEGA32U4: n välille, ja "Process.h" -luokka toimivat Linux -konsultaatioprosesseissa.
  • Määritä vain kolme nastaa, jotka käyttävät muita ilmaisia.

Koodi on liitteenä

Vaihe 11: Hyvää uutta vuotta

Jatkan tätä huolellisesti palvellakseni sinua ja auttaaksesi sinua saamaan lisätietoja Arduino Yunista. Jätä kaikki tiedostot loppuun. Espanjan kielen puhujille jätän tämän opetusohjelman, mutta espanjaksi tarvittavat tiedostot. Toivon teille hyvää uutta vuotta, nauttikaa siitä ja menestystä tänä vuonna!

Suositeltava: