Proyek ini bertujuan untuk mengotentikasi/mengesahkan pengguna dari tag RFID menggunakan integrasi sederhana dengan database.
Proyek ini bertujuan untuk memenuhi menunggu yang sudah saya miliki dengan tema yang dimaksud dan juga untuk memenuhi permintaan dari pengguna masyarakat yang mencari topik seperti itu. - Dalam 1 hari, saya pikir saya melihat sekitar 3 orang mencari sesuatu.
Jadi biarkan game dimulai - saya harap Anda menyukainya :)
Dalam diagram di atas, seseorang dapat mengamati aliran aplikasi yang dikembangkan. Kedengarannya rumit, tetapi ketika Anda mulai memahami seolah -olah Anda memberikan komunikasi jaringan, Anda mengambil arsitektur seperti itu.
Pada dasarnya kami memiliki 2 aliran dalam proyek ini - ping dan pong . Keduanya akan dibahas di bawah ini.
Aliran untuk ping adalah aliran awal komunikasi. Dari situ semua komunikasi telah dimulai. Lihat gambar yang merujuk di bawah ini:
Pada dasarnya langkah -langkah di bawah ini akan dibuat:
... mengikuti topik berikutnya
Pong akan bertanggung jawab atas pengembalian, yaitu jika tag baca aktif/diblokir atau tidak ada. Hasilnya akan menjadi pengembalian boolean sederhana - 0 atau 1 . Lihat bagaimana aliran pada gambar di bawah ini:
Oleh karena itu, melanjutkan dengan aliran aplikasi, kontinuitas akan diberikan sesuai dengan langkah ke -5 yang dibahas dalam topik di atas.
Repositori disusun karena tanggung jawab yang ditawarkannya.
Firmware seperti yang dinyatakan terletak di dalam folder ESP8266 , jadi buka dengan IDE Arduino.
Catatan: Ingatlah bahwa Anda perlu menginstal 2 perpustakaan, keduanya dikutip dalam topik yang digunakan teknologi
Memiliki firmware sudah terbuka, Anda harus mengubah beberapa variabel ke ruang lingkup Anda. Seperti jaringan wifi, broker, topik.
Jadi waspadai variabel -variabel berikut:
SSID - nome de sua rede wifi
PASSWORD - senha de sua rede wifi
BROKER_MQTT - url do broker mqtt
BROKER_PORT - porta do broker mqtt
TOPIC_PING - topico utilizado para publicar o valor tag rfid
TOPIC_PONG - topico responsavel por receber o status da autenticação rfid
Perhatikan addendum untuk broker yang digunakan. Pialang ini yang telah saya terapkan pada PS saya untuk penggunaan pribadi. Anda dapat menggunakannya, tetapi saya tidak menjamin stabilitas 100% karena sepanjang waktu saya menguji sesuatu yang baru: p. Kiatnya adalah memiliki broker Anda sendiri, Mosquitto di rumah atau di beberapa VP.
Dengan setiap sirkuit papan siap, sekarang cukup unggah piring dan awasi monitor serial. Lihat apakah semuanya baik -baik saja. Jika ya, Anda dapat menguji tag RFID Anda untuk melihat apakah semuanya benar -benar baik mengenai dikirim. Sekarang mari kita pergi ke topik berikutnya.
Aplikasi Web - Terletak di folder klien , adalah 100% HTML, jadi Anda tidak memerlukan sesuatu yang luar biasa untuk Anda jalankan. Anda bahkan dapat membuka langsung dengan browser.
Di bawah ini adalah beberapa tips untuk memiliki lingkungan tes/pengembangan yang lebih menyenangkan.
Di bagian aplikasi web, kita harus membuat hanya 2 perubahan. Ini pada dasarnya adalah URL API dan juga URL broker.
Semua URL ada di file App.js , yang terletak di Asset/JS/App.js .
const apiPath = 'http://127.0.0.1:3000/api'; // caso esteja em localhost, pode deixar assim mesmo.
const mqttConfig = {
broker: 'broker.iot-br.com', // url do broker
topic: '/empresas/douglaszuqueto/catraca/entrada/ping', // topico ouvinte
port: 8083 // porta referente ao WebSockets do Broker
};
Basis data akan menjadi MySQL (saya memutuskan untuk memilihnya, karena ini adalah salah satu yang paling terkenal, jadi kebanyakan orang telah melewatinya: P).
Nama yang Anda tetapkan ke database adalah RFID , jika Anda ingin memilih nama lain tanpa masalah. Struktur bank berada dalam file database/database.sql .
Pada dasarnya tidak ada misteri, cukup buat struktur sesuai dengan file :).
Memasuki ujung belakang, seperti yang mungkin Anda sadari, Anda akan memiliki 2 alternatif. Dalam Python atau NodeJs.
Sejauh ini (05/06/2017), itu hanya dikembangkan di NodeJs, segera setelah saya memberi, saya akan membuat satu menggunakan Python dengan Flask.
Sebagai permulaan, tidak ada yang lebih adil daripada menginstal nodej, apakah Anda setuju? Untuk melakukan ini, masukkan situs web resmi dan instal sesuai dengan sistem operasi Anda.
Kedua, navigasikan ke folder NodeJs: Server/NodeJS .
Berada di folder, Anda harus melakukan beberapa prosedur awal, seperti menginstal fasilitas proyek serta mengatur akses ke database, di antara pengaturan lainnya.
Sebagai manajer ketergantungan, saya menggunakan benang, jika Anda belum memilikinya, tautan kutipan akan memiliki langkah -langkah yang diperlukan.
Setelah diinstal, cukup jalankan perintah benang .
Untuk memusatkan dengan cara keren variabel lingkungan kita, saya menggunakan dotenv untuk tujuan ini.
Anda akan menyadari bahwa pada akar proyek, ia memiliki file .env.example , membuat salinan bernama .env . Anda akan melihat struktur ini:
APP_URL=http://127.0.0.1:3000/ // url base do webservice
DB_HOST=127.0.0.1 // ip/host do Mysql
DB_DATABASE=rfid // nome dado ao banco de dados
DB_USER=rfid // usuário do banco de dados
DB_PASS=rfid // senha do banco de dados
BROKER_HOST=broker.iot-br.com // ip/host do broker
BROKER_PORT=1883 // porta do broker mqtt
Setelah dikonfigurasi, semuanya siap untuk memanjat layanan web kami.
Untuk melakukan ini, jalankan saja perintah YARN Prod (satu alias dari perintah indeks simpul )
Jika semuanya berjalan dengan baik, Anda akan memiliki akses ke layanan web yang berjalan di URL 127.0.0.1:3000/api . Dalam topik titik akhir , banding yang tersedia akan diperlakukan.
Untuk setiap tabel aplikasi kami - pengguna, tag, access_log - kami akan memiliki API untuk membuat crud (buat, baca, perbarui, hapus) dari setiap fitur yang tersedia.
Oleh karena itu, untuk setiap fitur, Anda dapat membuat permintaan dalam format berikut:
MÉTODO - URL - RECURSO
GET http://127.0.0.1:3000/api/tags
Neste simples caso, irá retornar todas tags cadastradas no sistema :)
Dengan setiap lingkungan yang siap, Anda dapat memulai tes. Untuk ini, miliki ID tag Anda dengan tangan.
Tak lama kemudian, Anda harus mendaftar di sistem, dan jika, sama seperti saya bahwa saya hanya memiliki dua, saya meninggalkan tag aktif dan satu dinonaktifkan. Dengan demikian mensimulasikan lingkungan di mana tag akan diautentikasi dan yang lain akan ditolak.
Bueno guys, untuk saat ini, saya pikir saya dapat mencapai tujuan saya di mana itu hanya untuk menunjukkan apa otentikasi tag RFID dengan database. Saya sedikit melampaui menciptakan layanan webrs dan dll, tetapi itu adalah ekosistem yang sangat keren.
Seperti yang Anda lihat, proyek ini adalah dasar -dasar dasar -dasarnya. Tidak memiliki lapisan otentikasi pengguna, enkripsi, yaitu keamanan secara umum.
Poin lain yang sudah menanyakan kepada saya adalah tentang pendaftaran otomatis tag melalui tertanam, LED, LCD dan ETC - segera benar -benar berfokus pada tujuan sebenarnya.
Saya ingin membuat proyek yang lebih lengkap jika ada minat tertentu dari komunitas, saya akui bahwa itu adalah proyek yang sangat bagus untuk dikembangkan, bahkan dengan semua 'kesederhanaan' yang terlibat.
Saya tinggal di sini, umpan balik apa pun, keraguan - sudah tahu di mana menemukan saya. Jadi jika Anda benar -benar menikmati proyek, pastikan untuk meninggalkan bintang itu di repositori :). Sangat penting untuk menilai berapa tingkat kontribusi yang disebabkannya.
Jangan lupa untuk mengikuti blog :): https://douglaszuqueto.com
Jika Anda menikmati ini dan proyek lain yang saya pertahankan, pada 06/18/2017 saya membuka kampanye dana berulang untuk mengumpulkan dana untuk dedikasi yang dipenuhi untuk proyek sumber terbuka.
Jadi, jika Anda ingin membantu saya, berikut adalah tautan dukungan saya. Terima kasih sebelumnya: D.