Daftar Isi:

Kontrol Akses Arduino YÚN Dengan MySQL, PHP5 dan Python: 11 Langkah (dengan Gambar)
Kontrol Akses Arduino YÚN Dengan MySQL, PHP5 dan Python: 11 Langkah (dengan Gambar)

Video: Kontrol Akses Arduino YÚN Dengan MySQL, PHP5 dan Python: 11 Langkah (dengan Gambar)

Video: Kontrol Akses Arduino YÚN Dengan MySQL, PHP5 dan Python: 11 Langkah (dengan Gambar)
Video: Arduino Yún: Web Control Panel 2024, Juli
Anonim
Kontrol Akses Arduino YÚN Dengan MySQL, PHP5 dan Python
Kontrol Akses Arduino YÚN Dengan MySQL, PHP5 dan Python

Halo teman teman!

Nah, seperti yang Anda tahu, pada bulan September perisai perdana baru Arduino, Arduino YUN. Teman kecil ini memiliki sistem tertanam Linux yang dengannya kami dapat menjalankan apa pun yang dapat Anda pikirkan (setidaknya sejauh ini). Meskipun ada sangat sedikit informasi di papan baru ini, dengan keberangkatan di panduan yang menyediakan halaman Arduino (yang akan ditautkan nanti), ditambah sedikit pengetahuan tentang banyak Linux, dapat melaksanakan proyek besar Kontrol Akses. Kali ini saya akan menjelaskan bagaimana melakukan proyek ini, tetapi dengan cara yang cukup khusus di seluruh Arduino kami. Ini berfungsi, terima kasih server database MySQL yang akan menetap di YUN kami, database ini akan menyimpan dua tabel, satu untuk pengguna yang terkait dengan RFID tertentu dan tabel lain untuk menyimpan catatan semua kartu yang telah melewati pembaca kami. Sementara kami menggunakan bahasa pemrograman PHP dan skrip Python untuk melakukan beberapa dasar dan bekerja dengan data kami. Apalagi hardware overhead, kami menggunakan reader ID-20 di sebelah Serial LCD 16 karakter, ditambah LED RGB yang akan menjadi status informan kami. Kami dapat menggunakan kontrol akses ini semua yang dapat kami pikirkan, modifikasi, dan tambahkan relai atau ide lain. Hal ini dapat digunakan pada apa saja di mana Anda memiliki kartu dan ingin catatan. Ingatlah bahwa dokumen ini adalah publikasi gratis, penggunaan komersial dan modifikasi yang dikecualikan tidak diperbolehkan. Saya harap ini adalah jalur elektronik Open Source yang jauh lebih luas. Jadi kita pergi ke langkah berikutnya, pihak perlu!

Langkah 1: Bagian

Bagian
Bagian
Bagian
Bagian
Bagian
Bagian

Untuk melakukan proyek ini, kita harus memiliki: * 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 * Dasar LCD Karakter 16x2 5V https://www.sparkfun.com/products/790 $16.95 * Ransel LCD Serial Diaktifkan 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 * Somes Header Pin and wire $5.00 aprox. Secara keseluruhan, jika Anda membeli di toko Sparkfun, semuanya akan mendekati $150. Jika Anda tinggal di Amerika Latin, saya akan merekomendasikan membeli suku cadang di www.olimex.cl, adalah toko elektronik Chili yang sangat bagus.

Langkah 2: Perakitan

Perakitan
Perakitan
Perakitan
Perakitan
Perakitan
Perakitan

Beberapa koneksi yang harus dilakukan, menjelaskan secara singkat. Untuk LED RGB, pin LED merah harus berada di pin 9 Arduino, pin LED hijau harus di pin 8 Arduino dan pin LED biru harus di pin 7 Arduino. Untuk ID-20 Anda harus menghubungkan pin berikut seperti yang ditunjukkan pada tabel dalam urutan masing-masing, pin reader ke pin Arduino: Pin ID-20 ke pin Arduino ID-20 / Arduino PIN 1 -- PIN GND 2 -- PIN 5V 7 -- PIN GND 9 -- PIN 10 PIN 10 -- PIN BUZZER 11 -- 5V Dan terakhir, untuk konektor Serial LCD hanya akan diperlukan untuk pin 5v dan GND Arduino, sedangkan pin LCD Serial RX masuk ke pin 11 dari Arduinonya.

Langkah 3: Pemrograman Arduino Yun

Pemrograman Arduino Yun
Pemrograman Arduino Yun

Untuk tujuan membuat proyek kami, kami harus memulai dengan bagian perangkat lunak, menginstal beberapa file di Arduino opkg Yun kami:

  • Server MySQL
  • PHP5
  • MySQLdb untuk Python 2.7
  • Mod dari PHP5 ke MySQL

Ingatlah bahwa secara default di Bridge sudah terpasang Python 2.7, jadi Anda tidak perlu menginstal pembaruan apa pun untuk ini. Mulai login SSH berani masuk ke Arduino Yun kami, setelah Anda memulainya, ketik perintah berikut untuk memperbarui daftar aplikasi opkg:

pembaruan opkg

Langkah 4: Instalasi MySQL

Instalasi MySQL
Instalasi MySQL

Sekarang Kami akan membuat instalasi dan konfigurasi Server MySQL, ketik perintah berikut di konsol:

  1. opkg install libpthread libncurses libreadline mysql-server
  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 –-force
  6. /etc/init.d/mysqld start
  7. /etc/init.d/mysqld aktifkan
  8. mysqladmin -u kata sandi root 'tu-nueva-clave'

Setelah selesai memasukkan kode kita dan memulai server MySQL, Anda harus mengkonfigurasi database yang akan dimanipulasi. Tetapi sebelum mulai mengetik kode, kita perlu memahami bidang yang membawa tabel kita. Board tersebut terdiri dari 5 course, 'id', 'name', 'name', 'email', 'rfid' untuk memasarkan beberapa diantaranya akan saya berikan penjelasan singkat penggunaannya.

  • 'id': akankah bidang atau kolom atribut int yang akan memberi tahu kami nomor yang ditetapkan untuk ID Pengguna, nomor ini ditetapkan oleh database yang sama dan akan menjadi cara untuk mengindeks catatan kami.
  • 'nombre': kolom atribut akan menjadi ' varchar ' dapat ditunjukkan dengan nama yang digunakan untuk mengidentifikasi pengguna kartu kami.
  • ' apellido': kolom atribut akan menjadi ' varchar ' dapat ditunjukkan dengan nama belakang yang terkait dengan pengguna kami.
  • ' correo': adalah kolom atribut ' varchar ' yang akan berisi e-mail pengguna terkait.
  • 'rfid': adalah kolom atribut 'varchar' yang akan berisi kode dari kartu RFID yang Anda gunakan.

(Saya akan menggunakan variabel dalam bahasa Spanyol, karena bahasa ibu saya dan saya suka c:) Sekarang kita dapat mengkonfigurasi database kita tanpa masalah, oleh karena itu kita membuat panggilan ' arduino ' MySQL. Anda harus mengetikkan kode berikut:

mysqladmin -u root -p create arduino

Kami meminta kata sandi yang kami masukkan sebelumnya dalam instalasi, kami akan mengirimkannya untuk menyelesaikan pembuatan pangkalan. Selesai semua ini, kita masukkan query ke MySQL, Anda harus mengetikkan kode berikut di konsol:

mysql -root -p

Sekali lagi kami meminta kata sandi, Anda harus mengirimkannya lagi. Begitu berada di dalam perintah konsol MySQL, penunjuk kita ('mysql>') akan muncul siap untuk mengetik. Hal pertama yang akan kita lakukan adalah memindahkan basis data 'arduino' untuk bekerja di dalamnya. Ini dilakukan dengan mengetikkan perintah berikut di konsol MySQL:

GUNAKAN arduino

Kami yakin tabel nama 'usuariosrfid' dalam database akan digunakan untuk proyek ini, ketik kode ini di konsol MySQL:

  1. BUAT TABEL `usuariosrfid` (
  2. `id` int(255) BUKAN NULL AUTO_INCREMENT,
  3. `nombre` varchar(300) TIDAK NULL,
  4. `apellido` varchar(300) TIDAK NULL,
  5. `correo` varchar(300) TIDAK NULL,
  6. `rfid` varchar(300) TIDAK NULL,
  7. KUNCI UTAMA (`id`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;

* Ingat bahwa ketika menekan tombol ENTER di akhir baris perintah di konsol MySQL, itu tidak akan berjalan sampai Anda menemukan ';' Oleh karena itu, di akhir kode adalah ';' Untuk menyelesaikan instalasi dan konfigurasi MySQL, kami mengisi beberapa bidang uji di dalam basis kami. Ketik baris berikut:

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

Sekarang lanjutkan dengan pembuatan tabel 'ControlUsuarios', yang akan menampung semua kode RFID yang lewat oleh pembaca, tabel ini terdiri dari 3 bidang, 'id', 'rfid', 'date'.

  • 'id' adalah kolom atau atribut int kolom yang akan berisi id dari setiap record untuk pengindeksan.
  • Atribut 'rfid' adalah kolom 'varchar' yang berisi kode tag RFID yang dibaca oleh reader.
  • 'date' adalah kolom atribut 'varchar' yang akan berisi tanggal kartu dibaca.

Untuk membuat tabel 'ControlUsuarios', kita masukkan kode berikut ke dalam konsol MySQL:

  1. BUAT TABEL `KontrolUsuarios` (
  2. `id` int(255) BUKAN NULL AUTO_INCREMENT,
  3. `rfid` varchar(300) TIDAK NULL,
  4. `fecha` varchar(300) TIDAK NULL,
  5. KUNCI UTAMA (`id`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;

Terakhir ketik 'keluar;' di konsol untuk keluar dari Query MySQL, dan kembali ke SHH sehingga kita bisa mulai dengan PHP5.

Langkah 5: Instalasi PHP5

Instalasi PHP5
Instalasi PHP5

Lanjutkan dengan instalasi dan konfigurasi PHP5. Instalasi ini lebih mudah daripada MySQL, jadi mereka tidak perlu mengeluarkan biaya apa pun. Pertama, instal paket opkg dari unduhan dan instal Arduino Yun, jadi ketik di konsol SSH Arduino ini:

opkg instal php5 php5-cgi

Setelah diunduh dan PHP5 diinstal pada Arduino Yun kami, jadi kami mengkonfigurasi file root uHTTPd, server http yang membawa Arduino default, saya sarankan Anda hanya menggunakan server http ini karena lebih fleksibel dan dapat diakses dalam konfigurasi, bukan Apache atau Lighttpd lebih sulit untuk mengatur ketika Anda baru di bidang ini. Untuk mengkonfigurasi ini, gunakan editor file 'vi' SSH, untuk ini Anda harus memiliki pengetahuan minimum untuk menggunakan editor ini. Mulailah mengetik kode ini di konsol untuk mengakses file pengaturan uHTTPd:

vi /etc/config/uhttpd

Tekan 'i' untuk mengedit file, lalu pergi ke baris kode yang telah Anda tulis '# daftar juru bahasa. "php = / usr / bin / php-cgi"'. Anda harus menghapus karakter '#' di awal baris, lalu tekan tombol escape (tombol 'ESC'), setelah Anda siap, Anda harus mengetikkan perintah ': wq' untuk menyimpan file dan keluar. Anda harus me-restart server uHTTPd, untuk ini, Anda harus mengetik di konsol perintah SSH kode berikut:

/etc/init.d/uhttpd restart

Langkah 6: Instalasi Conector MySQL untuk PHP5 dan Python

Instalasi Conector MySQL untuk PHP5 dan Python
Instalasi Conector MySQL untuk PHP5 dan Python

Lanjutkan dengan instalasi dan konfigurasi modul untuk menghubungkan database MySQL dengan PHP dan Python. Mari kita mulai dengan konektor PHP. Ketik kode berikut:

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

Setelah siap tidak perlu me-restart server uHTTPd, siap untuk langsung digunakan. Sekarang lanjutkan dengan konektor untuk Python, untuk itu, Anda harus memasukkan kode berikut:

opkg instal python-mysql

Dengan langkah terakhir ini, kami akan menyiapkan Arduino Yun untuk proyek kami dengan pembaca kartu ID-20 RFID 125khz. Selesaikan bagian ini dengan Umpan Balik dari apa yang telah kami lakukan:

  • Kami menginstal server MySQL di Arduino Yun kami, lalu mengkonfigurasinya, diakhiri dengan penyisipan data uji.
  • Instal pelengkap PHP ke server kami.
  • Kami selesai dengan instalasi dan konfigurasi Konektor MySQL untuk PHP dan Python.

Langkah 7: Kode

Di area ini, kita membahas kode pemrograman yang akan digunakan untuk proyek ini. Kami meninggalkan dengan kode Python, yang dibagi menjadi dua file: 'comprobar.py', yang akan terhubung ke database dan mencari Yun Arduino jika hasilnya ada di dalamnya, dan file 'kontrol. py', bertanggung jawab untuk merekam setiap kartu yang dibaca oleh pembaca ID-20, baik dalam database pengguna terdaftar atau tidak. Kemudian dilanjutkan dengan deskripsi file PHP, yaitu: 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'delete2. php ', ' guardar.php '' konsultasi.php ', ' konfigurasi.php '. Untuk file ini redundaremos keduanya karena mudah dimengerti. Terakhir selesaikan dengan kode yang akan naik sebagai sketsa Arduino kita.

Langkah 8: File Python

File Python
File Python

Seperti yang disebutkan sebelumnya, skrip Python kami berfungsi dengan perpustakaan atau kelas 'MySQLdb', yang sudah diinstal sebelumnya. Mulailah dengan membuat file dengan '.py' bernama 'comprobar.py' di editor kami, saya sarankan menggunakan kasus ini untuk pemrograman dengan Python, editor Sublime Text 3, yang dapat Anda unduh di situs web mereka www.sublimetext.com. Mari kita mulai dengan mengimpor perpustakaan untuk terhubung ke database MySQL kita, perpustakaan 'sys' yang akan memungkinkan kita untuk berkomunikasi dengan Arduino Yun kita:

  1. impor MySQLdb
  2. sistem impor

Setelah mengimpor perpustakaan atau kelas ini, kami menambahkan variabel ke kode Anda, yang akan menjadi data koneksi dari database MySQL kami, bone:

  1. host = "127.0.0.1" # sesuai dengan alamat server MySQL kami.
  2. user = "your-seat" # adalah pengguna database kami.
  3. passw = "kata sandi Anda" untuk kata sandi pengguna. base = "arduino" # Ini adalah nama database yang Anda gunakan.

Sekarang mulai dengan kode skrip dasar:

  1. sementara Benar:
  2. db= MySQLdb.connect(host, user, passw, base)
  3. skr = db.kursor()
  4. resultado = cur.execute("""SELECT * FROM usuariosrfid WHERE rfid LIKE %s ORDER BY id""", (sys.argv[1],))
  5. jika (hasil == 1):
  6. cetak 1
  7. sys.keluar(1)
  8. lain:
  9. cetak 2
  10. sys.keluar(1)

Jika kita sadari, dalam penilaian 'cur.execute result = ("" "SELECT * FROM WHERE rfid usuariosrfid LIKE% s ORDER BY id" "" (sys.argv [1]))' perintah untuk mengeksekusi query kita bandingkan variabel '(sys.argv [1])' yang merupakan kode dari kartu RFID Arduino dengan semua data bidang 'rfid' tabel 'usuariosrfid', yang, menemukan kode kesetaraan dari arduino dan atau kode yang disimpan dalam database, akan return 1, jika ini tidak benar dan tidak ada kesamaan antara kode dari arduino dan beberapa basis, kami akan mengembalikan 2. Angka-angka ini akan diterima oleh Arduino. Kami melanjutkan dengan file berikutnya 'control.py. File ini bekerja dengan cara yang sama seperti di atas, hanya menyimpan aftertaste di atas meja, catatan yang disimpan ini akan dikumpulkan oleh ID pembaca-20 yang terhubung ke Arduino Yun kami, sehingga kami dapat menyimpan semua pengguna terdaftar yang menggunakan pembaca RFID kami.

Langkah 9: File PHP

Kemudian lanjutkan dengan file. ' Php ' yang akan menyimpan folder dari server kami, untuk melakukan ini ingat bahwa perlu bahwa file-file ini setelah siap, disimpan di skit proyek kami, yang secara otomatis menghasilkan IDE Arduino, Anda juga perlu ingat, meskipun saya mengantisipasi ini, bahwa ketika kita pergi ke Arduino sketsa Yun kita, kita upload melalui Wi - Fi, jadi saya meninggalkannya di halaman yang sama manual Arduino, www.arduino. cc / en / Guide / Arduino Yun # toc14, yang menjelaskan lebih lanjut tentang itu, dan bagaimana Anda harus menyiapkan kartu MicroSD untuk jenis proyek ini di mana file harus disimpan di server. File PHP akan menjadi 10 'konsultaRelacion.php', 'konsultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'borrar2.php', 'guardar. php ' 'konsulta.php ', ' configuracion.php ', yang akan di-hyperlink ke yang lain, untuk menjaga menu dasar selalu berjalan dan dapat diakses. Jelaskan saja file 'configuracion.php', yang berfungsi sebagai penghubung dengan database kita. Di editor kami, kami menjadwalkan kode berikut dalam file:

  1. <? php
  2. // Server data dan database
  3. $server = "host lokal";
  4. $ nama pengguna = "kursi Anda";
  5. $ kata sandi = "kata sandi";
  6. $ nama_database = "arduino";

Ini adalah data yang perlu terhubung ke database kami di arduino akan sama dengan yang kami gunakan di skrip Python kami. Selesaikan pemrograman pernyataan connect, yang menggunakan skrip kami:

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

File lainnya terlampir.

Langkah 10: Akhirnya, Program Arduino YÚN

Kami sampai ke bagian utama dari tutorial ini, memprogram Arduino Yun kami, tidak ada detail yang akan menyoroti semua kode karena cukup luas, hanya sebutkan poin-poin penting berikut:

  • Kode tersebut terdiri dari 6 fungsi utama dan 13 fungsi sekunder, yang hanya mendukung penggunaan Serial LCD.
  • Diimpor hanya tiga kelas, 'SoftwareSerial.h', yang dengannya kita akan memasukkan Serial Attached untuk terhubung dengan ID-20 dan Serial LCD, kelas utama 'Bridge.h' yang dengannya kita akan membuat koneksi antara Linux dan ATMEGA32U4, dan kelas 'Process.h' akan berfungsi untuk proses konsultasi di Linux.
  • Tentukan hanya tiga pin, yang menggunakan yang lain bebas.

Kode terlampir

Langkah 11: Selamat Tahun Baru

Saya melanjutkan ini dengan cermat untuk melayani Anda dan membantu Anda mendapatkan informasi lebih lanjut tentang Arduino Yun. Biarkan semua file terlampir sampai akhir. Untuk penutur bahasa Spanyol, saya meninggalkan tutorial ini tetapi dalam bahasa Spanyol dengan file yang diperlukan. Saya harap Anda memiliki tahun baru yang bahagia, menikmatinya dan sukses di tahun 2014 ini!

Direkomendasikan: