Innholdsfortegnelse:
- Trinn 1: Delene
- Trinn 2: Monteringen
- Trinn 3: Programmering av Arduino Yun
- Trinn 4: Installasjon av MySQL
- Trinn 5: Installasjon av PHP5
- Trinn 6: Installer Conector MySQL for PHP5 og Python
- Trinn 7: Koder
- Trinn 8: Filer Python
- Trinn 9: Filer PHP
- Trinn 10: Til slutt, programmet til Arduino YÚN
- Trinn 11: Godt nytt år
Video: Kontroller tilgang til Arduino YÚN med MySQL, PHP5 og Python: 11 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Hei venner!
Som du vet, i september ble det nye premiere -skjoldet til Arduino, Arduino YUN. Denne lille vennen har et innebygd Linux -system som vi kan kjøre alt du kan tenke deg (i hvert fall så langt). Selv om det er veldig lite informasjon om dette nye brettet, kan avgang i guiden som gir Arduino -siden (som vil koble til senere), pluss litt kunnskap om mange Linux, utføre et stort prosjekt med Control Access. Denne gangen vil jeg forklare hvordan du gjør dette prosjektet, men på en tilstrekkelig måte gjennom hele Arduino. Dette fungerer, takket være en databaseserver MySQL som vil bosette seg i vår YUN, denne databasen vil lagre to tabeller, en for brukere som er tilknyttet en bestemt RFID og en annen tabell for å holde oversikt over alle kort som har passert gjennom leseren vår. Mens vi bruker programmeringsspråk PHP og Python -skript for å utføre noen grunnleggende og arbeide med dataene våre. Dessuten bruker vi maskinvaren overhead, en leser ID-20 ved siden av en seriell LCD med 16 tegn, pluss en RGB LED som vil være informantstatene våre. Vi kan bruke denne tilgangskontrollen alt vi kan tenke oss, endre og legge til et relé eller en annen idé. Den kan brukes på alt du har kort og vil ha en plate. Husk at dette dokumentet er gratis publisering, kommersiell bruk og unntatte endringer er ikke tillatt. Jeg håper det er en langt mer omfattende vei for elektronisk åpen kildekode. Så vi går til neste trinn, partene trenger!
Trinn 1: Delene
For å gjøre dette prosjektet må vi ha: * 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 * Basic 16x2 Character LCD 5V https://www.sparkfun.com/products/790 $ 16,95 * Seriell aktivert LCD -ryggsekk https:// www. sparkfun.com/products/258 $ 16,95 * LED RGB 5mm https://www.sparkfun.com/products/105 $ 1,95 * summer https://www.sparkfun.com/products/7950 $ 1,95 * Somes Header Pin and wire $ 5,00 ca.. Alt i alt, hvis du kjøper i butikken Sparkfun, vil alt være nær $ 150. Hvis du bor i Latin -Amerika, vil jeg anbefale å kjøpe delene i www.olimex.cl, er en veldig god chilensk elektronikkbutikk.
Trinn 2: Monteringen
Få forbindelser å gjøre, og forklar kort. For RGB LED må den røde LED -pinnen være på pin 9 på Arduino, pin den grønne LED -lampen skal gå på Arduino pin 8 og pin den blå LED'en skal være på pin 7 på Arduino. For ID-20 må du koble følgende pins som angitt i tabellen i respektive rekkefølge, pin reader til Arduino pin: Pin ID-20 til pin Arduino ID-20 / Arduino PIN 1-GND PIN 2-5V PIN 7 - GND PIN 9- PIN 10 PIN 10- BUZZER PIN 11- 5V Og til slutt, for den serielle LCD-kontakten er det bare nødvendig med 5v og GND pins på Arduino, mens LCD Serial RX pin går til pin 11 av Arduino.
Trinn 3: Programmering av Arduino Yun
For å lage prosjektet vårt må vi starte med delen av programvaren, installere noen filer på vår Arduino opkg Yun:
- MySQL -server
- PHP5
- MySQLdb for Python 2.7
- Mod av PHP5 til MySQL
Husk at som standard i Bridge kommer installert Python 2.7, så du trenger aldri å installere noen oppdatering for dette. Begynn å logge SSH tør å gå inn i vår Arduino Yun, når du har startet dem, skriver du inn følgende kommando for å oppdatere listen over applikasjoner opkg:
opkg oppdatering
Trinn 4: Installasjon av MySQL
Nå vil vi etablere installasjonen og konfigurasjonen av MySQL Server, skriv inn følgende kommandoer i konsollen:
- opkg install 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 –-force
- /etc/init.d/mysqld start
- /etc/init.d/mysqld aktivere
- mysqladmin -u rotpassord 'tu-nueva-clave'
Når du er ferdig med å skrive inn kodene våre og startet MySQL -serveren, bør du konfigurere databasen som skal manipuleres. Men før vi begynner å skrive kodene, må vi forstå feltene som bærer bordet vårt. Styret skal bestå av 5 kurs, 'id', 'navn', 'navn', 'e -post', 'rfid' for å markedsføre noen av dem. Jeg skal gi en kort forklaring av bruken av dem.
- 'id': vil feltet eller attributten int kolonne som vil fortelle oss nummeret som er tilordnet bruker -ID, dette nummeret tilordnes av den samme databasen og vil være måten å indeksere våre poster på.
- 'nombre': attributtkolonnen vil være 'varchar' kan angis med navnet som kortbrukeren vår er identifisert med.
- 'apellido': attributtkolonnen vil være 'varchar' kan angis med etternavnet som brukeren vår er knyttet til.
- 'correo': er attributtkolonnen 'varchar' som inneholder e-posten til den tilknyttede brukeren.
- 'rfid': er attributtkolonnen 'varchar' som inneholder koden til RFID -kortet du bruker.
(Jeg vil bruke variablene på spansk, fordi det er morsmålet mitt og jeg liker c:) Nå kan vi konfigurere databasen vår uten problemer, derfor lager vi et 'arduino' kall MySQL. Du må skrive inn følgende kode:
mysqladmin -u root -p lage arduino
Vi ber om passordet vi skrev inn tidligere i installasjonen, vi sender det inn for å fullføre opprettelsen av basen. Ferdig med alt dette, vi skriver inn spørringen til MySQL, du bør skrive følgende kode i konsollen:
mysql -rot -p
Igjen ber vi om passordet, du må sende det inn igjen. Når vi er inne i MySQL -konsollkommandoen, skal vi pekeren ('mysql>') vises klar til å skrive. Det første vi vil gjøre er å flytte basen for 'arduino' data for å jobbe med det. Dette gjøres ved å skrive følgende kommando på MySQL -konsollen:
BRUK arduino
Vi tror navnetabellen 'usuariosrfid' i databasen vil bruke for dette prosjektet, skriv inn denne koden i MySQL -konsollen:
- LAG TABELL `usuariosrfid` (
- `id` int (255) IKKE NULL AUTO_INCREMENT,
- `nombre` varchar (300) IKKE NULL,
- `apellido` varchar (300) IKKE NULL,
- `correo` varchar (300) IKKE NULL,
- `rfid` varchar (300) IKKE NULL,
- PRIMÆR NØKKEL (`id ')
- ) MOTOR = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 0;
* Husk at når du trykker på ENTER -tasten på slutten av kommandolinjen i MySQL -konsollen, kjøres den ikke før du finner ';' Derfor er slutten av koden ';' For å fullføre installasjonen og konfigurasjonen av MySQL fyller vi noen testfelt i basen vår. Skriv inn følgende linjer:
- INSERT INTO `usuariosrfid` (` id`, `nombre`,` apellido`, `correo`,` rfid`) VERDIER
- (1, 'Pedro', 'Suarez', '[email protected]', '1234a-12345-b-123c'),
- (4, 'Matias', 'Lopez', '[email protected]', '987a-9876b-987c');
Fortsett nå med opprettelsen av tabellen 'ControlUsuarios', som vil inneholde alle RFID -koder som passerer leseren, denne tabellen består av 3 felt, 'id', 'rfid', 'date'.
- 'id' er feltet eller attributten int -kolonnen som vil inneholde id -en for hver post for indeksering.
- 'rfid' -attributtet er kolonnen 'varchar' som inneholder RFID -tag -koden ble lest av leseren.
- 'date' er attributtkolonnen 'varchar' som inneholder datoen kortet ble lest.
For å lage tabellen 'ControlUsuarios', skriver vi inn følgende kode i MySQL -konsollen:
- OPPRETT TABELL `ControlUsuarios` (
- `id` int (255) IKKE NULL AUTO_INCREMENT,
- `rfid` varchar (300) IKKE NULL,
- `fecha` varchar (300) IKKE NULL,
- PRIMÆR NØKKEL (`id ')
- ) MOTOR = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 0;
Skriv til slutt 'exit;' i konsollen for å gå ut av MySQL -spørringen, og gå tilbake til SHH, slik at vi kan starte med PHP5.
Trinn 5: Installasjon av PHP5
Fortsett med installasjonen og konfigurasjonen av PHP5. Denne installasjonen er enklere enn MySQL, så det bør ikke koste dem noe. Installer først opkg -pakken fra Arduino Yun som laster ned og installerer, så skriv inn SSH -konsollen til Arduino dette:
opkg installer php5 php5-cgi
Når den er lastet ned og PHP5 installert på vår Arduino Yun, så vi konfigurerte root -filen uHTTPd, http -serveren som bringer Arduino -standard, anbefaler jeg at du bare bruker denne http -serveren fordi den er mer allsidig og tilgjengelig i konfigurasjonen, ikke Apache eller Lighttpd er vanskeligere å sette opp når du er ny på dette feltet. For å konfigurere dette, bruk filredigereren 'vi' SSH, for dette må du ha minimum kunnskap for å bruke denne editoren. Begynn å skrive denne koden i konsollen for å få tilgang til innstillingsfilen uHTTPd:
vi/etc/config/uhttpd
Trykk på 'i' for å redigere filen, og gå deretter til kodelinjen du har skrevet '# list tolk. "php = / usr / bin / php-cgi" '. Du må slette tegnet '#' ut i begynnelsen av linjen, og deretter trykke på Escape (tasten 'ESC') -tasten. Når du er klar, må du skrive inn kommandoen ': wq' for å lagre filen og gå ut av. Du må starte serveren uHTTPd på nytt. For dette må du skrive inn følgende kommando i SSH -kommandokonsollen:
/etc/init.d/uhttpd start på nytt
Trinn 6: Installer Conector MySQL for PHP5 og Python
Fortsett med installasjonen og konfigurasjonen av modulene for å koble MySQL -databasen til PHP og Python. La oss starte med PHP -kontakten. Skriv inn følgende kode:
- opkg installer php5-mod-mysql
- sed -i 's,; extension = mysql.so, extension = mysql.so, g' /etc/php.ini
Når den er klar, trenger den ikke starte serveren uHTTPd på nytt, klar for umiddelbar bruk. Fortsett nå med kontakten for Python, for det må du skrive inn følgende kode:
opkg installer python-mysql
Med dette siste trinnet vil vi ha vår Arduino Yun klar for prosjektet vårt med kortleseren ID-20 RFID 125khz. Avslutt denne delen med tilbakemelding på det vi har gjort:
- Vi installerte MySQL -serveren på vår Arduino Yun, deretter konfigurerte vi den og avsluttet med innsetting av testdata.
- Installer PHP -komplementet til serveren vår.
- Vi avsluttet installasjonen og konfigurasjonen av MySQL Connector for både PHP og Python.
Trinn 7: Koder
I dette området diskuterer vi programmeringskodene som skal brukes for dette prosjektet. Vi forlater med Python -kode, som er delt inn i to filer: 'comprobar.py', som vil koble seg til databasen og søke Yun Arduino hvis resultatet er i den, og filen 'kontroll. py ', ansvarlig for registrering av kort som leses av leser-ID-20, enten i databasen over registrerte brukere. Fortsett deretter med beskrivelsen av PHP -filene: 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'delete2. php ',' guardar.php '' consulta.php ',' configuracion.php '. For disse filene redundaremos både fordi de er enkle å forstå. Endelig avslutt med koden som vil gå opp som vår Arduino -skisse.
Trinn 8: Filer Python
Som nevnt tidligere fungerte våre Python -skript med biblioteket eller klassen 'MySQLdb', som allerede er installert tidligere. Start med å lage en fil med '.py' kalt 'comprobar.py' i vår editor, jeg anbefaler å bruke disse sakene for programmering i Python, editoren Sublime Text 3, som du kan laste ned på deres nettsted www.sublimetext.com. La oss starte med å importere biblioteket for å koble til vår MySQL -database, bibliotekets 'sys' som lar oss kommunisere med vår Arduino Yun:
- importer MySQLdb
- importer sys
Når vi har importert disse bibliotekene eller klassene, legger vi til variabler i koden din, som vil være tilkoblingsdataene fra vår MySQL -database, bein:
- host = "127.0.0.1" # tilsvarer adressen til vår MySQL -server.
- user = "your-seat" # er brukeren av databasen vår.
- passw = "ditt passord" er for brukerens passord. base = "arduino" # Dette er navnet på databasen du bruker.
Start nå med baseskriptkodene:
- mens det er sant:
- db = MySQLdb.connect (vert, bruker, passw, base)
- cur = db.markør ()
- resultado = cur.execute ("" "SELECT * FRA usuariosrfid HVOR rfid LIKER %s ORDER BY id" "", (sys.argv [1],))
- hvis (resultado == 1):
- skrive ut 1
- sys.exit (1)
- ellers:
- skrive ut 2
- sys.exit (1)
Hvis vi innser, i dommen 'cur.execute result = ("" "SELECT * FROM WHERE rfid usuariosrfid LIKE% s ORDER BY id" "" (sys.argv [1]))' kommando for å utføre spørringen vår, sammenlign variabelen '(sys.argv [1])' som er koden fra Arduino RFID -kortet med alle feltdataene 'rfid' tabellen 'usuariosrfid', som, ved å finne likhetskode fra arduinoen eller eller kodene som er lagret i databasen, vil return 1, hvis dette ikke er sant og det ikke er likhet mellom koden fra arduinoen og noen av basen, returnerer vi 2. Disse tallene vil bli mottatt av Arduinoen. Vi fortsetter med den neste filen 'control.py. Denne filen fungerer på samme måte som ovenfor, bare med et ettersmak på et bord. Disse postene har lagret skal samles av leser-ID-20 koblet til vår Arduino Yun, slik at vi kan beholde alle registrerte brukere som bruker vår RFID-leser.
Trinn 9: Filer PHP
Fortsett deretter med filene. 'Php' som vil beholde mappen fra serveren vår, for å gjøre dette må du huske at det er nødvendig at disse filene når de er klare, blir lagret i prosjektet vårt, som automatisk genererer IDE Arduino, du må også huske, selv om jeg regner med dette, at når vi går opp til vår Arduino -skisse Yun, laster vi opp via Wi -Fi, så jeg lar den ligge på samme side manuell Arduino, www.arduino. cc / no / Guide / Arduino Yun # toc14, som forklarer mer om det, og hvordan du bør gå forberedt MicroSD -kort for denne typen prosjekter der filene skal lagres på serveren. PHP -filene vil være 10 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'borrar2.php', 'guardar. php '' consulta.php ',' configuracion.php ', som vil bli hyperkoblet til den andre, for å opprettholde en grunnleggende meny som alltid er tilgjengelig og tilgjengelig. Bare forklar filen 'configuracion.php', som fungerer som en kontakt med databasen vår. I vår redaktør planlegger vi følgende kode i filen:
- <? php
- / / Dataserver og database
- $ server = "localhost";
- $ brukernavn = "setet ditt";
- $ password = "password";
- $ database_name = "arduino";
Dette er dataene som må kobles til databasen vår i arduinoen, vil være de samme som vi bruker i våre Python -skript. Fullfør programmeringen av connect -setningen, som brukte skriptet vårt:
- $ conexion = mysql_connect ($ server, $ brukernavn, $ passord) eller die ("Problemas al tratar de establecer la conexion");
- $ bd_sel = mysql_select_db ($ database_name) eller die ("Problemas al seleccar la base de datos");
- ?>
De andre filene er vedlagt.
Trinn 10: Til slutt, programmet til Arduino YÚN
Vi kom til hoveddelen av denne opplæringen, og programmerte vår Arduino Yun. Ingen detaljer vil fremheve hele koden, da den er ganske omfattende, bare nevne følgende viktige punkter:
- Koden består av 6 hovedfunksjoner og 13 sekundære funksjoner, som bare er støtte for bruk av den serielle LCD -skjermen.
- Bli importert bare tre klasser, 'SoftwareSerial.h', som vi vil legge inn Serial Attached for å koble til ID-20 og Serial LCD, hovedklassen 'Bridge.h' som vi vil gjøre forbindelsen mellom Linux og ATMEGA32U4, og 'Process.h' -klassen vil tjene til konsultasjonsprosesser i Linux.
- Definer bare tre pins, som bruker andre være gratis.
Koden er vedlagt
Trinn 11: Godt nytt år
Jeg fortsetter dette grundig for å tjene deg og hjelpe deg med å få mer informasjon om Arduino Yun. La alle filene være vedlagt til slutten. For høyttalere i spansk språk, forlater jeg denne opplæringen, men på spansk med de nødvendige filene. Jeg håper du får et godt nytt år, nyt det og suksess i 2014!
Anbefalt:
Få tilgang til Solaredge -dataene dine ved hjelp av Python: 4 trinn
Få tilgang til Solaredge -dataene dine ved hjelp av Python: Fordi dataene fra solaredge -transformatorene ikke lagres lokalt, men på serverne til solaredge, ønsket jeg å bruke dataene mine lokalt, på denne måten kan jeg bruke dataene i mine egne programmer. Jeg vil vise deg hvordan du kan be om dataene dine på solaredge -nettene
Kvantifisere tilgang til tankene dine: 8 trinn (med bilder)
Kvantifisere tilgang til tankene dine: Så jeg leder et kreativt teknologilaboratorium ved California College of the Arts. Det er egentlig et pedagogisk hackerspace for kunst- og designstudenter. Ganske fantastisk, ikke sant? Etter eksamen fra University of Minnesota med en grad i mekanisk
Manuell tilgang til GPS Ublox Neo 6M med Raspberry Pi B+: 3 trinn
Manuell tilgang til GPS Ublox Neo 6M Med Raspberry Pi B+: Raspberry Pi er en veldig kompatibel mini -PC for forskjellige moduler som er ganske enkle å bruke. I utgangspunktet er det nesten det samme som PC, men kan styres med GPIO fra Raspberry Pi. Raspberry Pi er også støtte med flere kommunikasjonslinjer, en
Slik får du tilgang til musikken din hvor som helst med Mac Mini: 5 trinn
Slik får du tilgang til musikken din hvor som helst med Mac Mini: Denne instruksjonen gjør datamaskinen til en privat delingsserver. Det vil være vert for musikken din, slik at bare du kan komme til den. Men forutsatt at internettforbindelsen din er rask nok, vil du kunne få tilgang til den fra hele verden. Hvor kult er det
Få tilgang til Kontroller en server eller de fleste Windows -datamaskiner eksternt: 6 trinn
Få tilgang til Kontroller en server eller nesten hvilken som helst Windows -datamaskin: Denne instruksjonsboken er en kombinasjon av noen få ideer som jeg har sett her på instrukser. Ha4xor4life la ut en instruks som heter Sjekk enkelt opp på din personlige filserver. Det er en god idé, men det krevde en skjerm med to innganger