Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Sistem Absensi Sidik Jari Arduino dengan Penyimpanan Data Cloud

Komponen dan persediaan

Arduino Mega 2560 R3
× 1
Sensor sidik jari ElectroPeak R301T
× 1
Modul Adaptor Kartu Micro SD TF ElectroPeak
× 1
Modul RTC ElectroPeak DS3231 I2C
× 1
ElectroPeak 3.5" Modul Layar Tampilan Warna TFT
× 1
ElectroPeak NodeMCU ESP8266 ESP-12E Board
× 1
ElectroPeak male to Female Jumper Wire
× 1

Alat dan mesin yang diperlukan

Pemotong laser (generik)
Besi solder (generik)

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Anda dapat membaca ini dan tutorial menakjubkan lainnya di Situs web resmi ElectroPeak .

Ikhtisar

Saat ini, belajar tentang pengoperasian dan implementasi perangkat IoT sangat penting karena meningkatnya penggunaan sistem IoT. Dalam tutorial ini, kita akan membuat perangkat absensi sidik jari dengan Arduino, yang selain menyimpan informasi log-in dan jam kerja di kartu memori, mengunggah informasi ini ke platform ThingSpeak segera setelah terhubung ke Internet. dan Anda dapat mengunduh informasi ini dari panel dalam berbagai format, seperti CSV.

Apa yang Akan Anda Pelajari

  • Bekerja dengan sensor sidik jari
  • Mengunggah data di ThingSpeak menggunakan NodeMCU
  • Buat alat absensi dengan sensor sidik jari dan Arduino

Apa itu ThingSpeak?

IoT (Internet of Things) membayangkan dunia di mana sejumlah hal terhubung ke Internet, berinteraksi dengan individu dan perangkat lain, dan biasanya, mengunggah data ke cloud untuk dianalisis.

ThingSpeak adalah platform IoT yang memungkinkan Anda menampilkan dan mengumpulkan data langsung dalam komputasi awan.

Berinteraksi dengan ThingSpeak dan Mengunggah Data

Ikuti langkah-langkah di bawah ini untuk memulai koneksi ThingSpeak:

Langkah 1 ) Masuk ke situs web ThingSpeak.com dan buat akun.

Langkah 2 ) Masuk setelah mengaktifkan akun Anda dan klik Saluran Baru di Saluran Saya bagian.

Langkah 3 ) Di jendela baru yang terbuka untuk Anda, tulis nama untuk panel Anda dan deskripsi apa pun jika perlu. Tentukan jumlah bidang yang Anda butuhkan dengan menetapkan namanya. Bagian yang tersisa adalah opsional. Simpan panel setelah melengkapi informasi.

Langkah 4 ) Sekarang buka Kunci API di panel Anda.

Langkah 5 ) Anda memerlukan ID Saluran dan Tulis Kunci API untuk mengirimkan data, jadi tuliskan.

Langkah 6) Unduh ThingSpeak library dan tambahkan ke Arduino IDE Anda.

Perpustakaan ThingSpeak

Langkah 7) Pergi ke Arduino IDE. Buka WriteMultipleFiels dari bagian contoh dan masukkan nilai SSID, Password, Channel ID, dan Write API Key.

/* WriteMultipleFields Deskripsi:Menulis nilai ke bidang 1,2,3,4 dan status dalam satu pembaruan Thingspeak setiap 20 detik. Perangkat keras:papan berbasis ESP8266 !!! PENTING - Ubah file secret.h untuk proyek ini dengan koneksi jaringan Anda dan detail saluran Thingspeak. !!! Catatan:- Memerlukan perpustakaan ESP8266WiFi dan add-on papan ESP8622. Lihat https://github.com/esp8266/Arduino untuk detailnya. - Pilih perangkat keras target dari menu Tools->Board - Contoh ini ditulis untuk jaringan yang menggunakan enkripsi WPA. Untuk WEP atau WPA, ubah panggilan WiFi.begin() yang sesuai. Thingspeak ( https://www.Thingspeak.com ) adalah layanan platform IoT analitik yang memungkinkan Anda untuk menggabungkan, memvisualisasikan, dan menganalisis aliran data langsung di cloud. Kunjungi https://www.Thingspeak.com untuk mendaftar akun gratis dan membuat saluran. Dokumentasi Perpustakaan Komunikasi Thingspeak untuk Arduino ada di folder README.md tempat perpustakaan dipasang. Lihat https://www.mathworks.com/help/Thingspeak/index.html untuk dokumentasi lengkap Thingspeak. Untuk informasi lisensi, lihat file lisensi terlampir. Hak Cipta 2018, The MathWorks, Inc.*/#include "Thingspeak.h"#include "secrets.h"#include char ssid[] =SECRET_SSID; // SSID jaringan Anda (nama) char pass[] =SECRET_PASS; // kata sandi jaringan Andaint keyIndex =0; // kunci jaringan Anda Nomor indeks (hanya diperlukan untuk WEP)klien WiFiClient;unsigned long myChannelNumber =SECRET_CH_ID;const char * myWriteAPIKey =SECRET_WRITE_APIKEY;// Inisialisasi nilai kamiint number1 =0;int number2 =random(0,100);int number3 =random (0,100);int number4 =random(0,100);String myStatus ="";void setup() { Serial.begin(115200); // Inisialisasi serial WiFi.mode(WIFI_STA); Thingspeak.begin(klien); // Inisialisasi Thingspeak}void loop() { // Hubungkan atau sambungkan kembali ke WiFi if(WiFi.status() !=WL_CONNECTED){ Serial.print("Mencoba menyambungkan ke SSID:"); Serial.println(SECRET_SSID); while(WiFi.status() !=WL_CONNECTED){ WiFi.begin(ssid, pass); // Hubungkan ke jaringan WPA/WPA2. Ubah baris ini jika menggunakan jaringan terbuka atau WEP Serial.print("."); penundaan(5000); } Serial.println("\nTersambung."); } // set field dengan nilai Thingspeak.setField(1, number1); Thingspeak.setField(2, angka2); Thingspeak.setField(3, angka3); Thingspeak.setField(4, angka4); // mencari tahu pesan status if(number1> number2){ myStatus =String("field1 lebih besar dari field2"); } else if(angka1  99){ angka1 =0; } angka2 =acak(0,100); angka3 =acak(0,100); angka4 =acak(0,100); penundaan (20000); // Tunggu 20 detik untuk memperbarui saluran lagi} 

Setelah mengupload kode, Anda akan melihat beberapa nomor acak yang diupload di kolom 1 hingga 4 panel Anda. Kode terstruktur yang sama digunakan dalam sistem kehadiran untuk mengunggah data.

Catatan

Tunggu setidaknya 15 detik antara setiap kali Anda mengunggah data di panel ThingSpeak.

Membuat Sistem Absensi Menggunakan Sensor Sidik Jari dan Arduino

Dalam sistem ini, setelah mendaftarkan keluar masuknya seseorang dengan sidik jarinya, informasi termasuk tanggal, nama, waktu kedatangan, waktu keberangkatan dan jam kerja karyawan disimpan di kartu SD. Kemudian informasi ini akan dikirimkan ke ThingSpeak pada waktu yang telah Anda tentukan. Jika tidak ada koneksi Internet, data yang tidak dipublikasikan akan disimpan dan akan diteruskan ke ThingSpeak segera setelah terhubung ke Internet. Karena informasi disimpan dalam EEPROM mikrokontroler, informasi tersebut tidak akan hilang jika terjadi pemadaman listrik.

Sirkuit

Setelah menghubungkan semua modul, pasang pelindung LCD di Arduino.

Kiat

Karena Pelindung LCD menutupi beberapa pin Arduino, Anda dapat membatasi kabel ke pin tertentu dari bagian bawah papan, jika Anda membutuhkan pin ini.

Kode

Anda memerlukan perpustakaan berikut untuk kode ini:

Adafruit-Fingerprint-Sensor-Library

Adafruit-GFX-Library

MCUFRIEND_kbv

RTClib

Sekarang unduh kode berikut dan unggah ke Arduino Anda. Kode ini ditulis untuk 11 orang dengan nama default, tetapi Anda dapat mengubahnya dan menghapusnya dari mode default. Untuk mendaftarkan nama baru, cukup sambungkan perangkat ke komputer Anda dan tekan tombol untuk masuk ke mode register, lalu buka Serial Monitor dan ikuti proses pendaftaran seperti yang ditunjukkan pada Serial Monitor.

Unduh kode dari lampiran:

Anda dapat mempelajari lebih lanjut tentang menggunakan kartu SD, modul jam, dan LCD di tautan berikut:

Modul Kartu SD dengan Arduino:Cara Membaca/Menulis Data

Cara Menggunakan Modul DS1307 RTC dengan Arduino &Membuat Pengingat

Panduan Mutlak Pemula untuk Tampilan LCD TFT oleh Arduino.

NodeMCU menjalankan tugas mengunggah informasi dalam sistem ini. Dibutuhkan informasi pengunggahan dari Arduino melalui port serial dan mengembalikan status mengunggah ke Arduino. Unggah kode berikut di NodeMCU Anda.

#include "Thingspeak.h"#include ESP8266WiFi.h>char ssid[] ="YOUR SSID";char pass[] ="SSID PASSWORD";WiFiClient client;unsigned long myChannelNumber =ID CHANNEL ANDA; const char * myWriteAPIKey ="KUNCI API TULIS CHANNEL ANDA";String Final ="";String Date ="";String Enter ="";String Exit ="";String Name ="";String WT ="";void String_Analyze(Input string) { int indeks1, indeks2, indeks3, indeks4; indeks1 =input.indexOf('*', 0); index2 =input.indexOf('*', index1 + 1); index3 =input.indexOf('*', index2 + 1); index4 =input.lastIndexOf('*'); Nama =masukan; Tanggal =masukan; Masukkan =masukan; Keluar =masukan; WT =masukan; Nama.hapus(indeks1); Tanggal.hapus(indeks2); Date.remove(0, index1 + 1); Enter.hapus(indeks3); Enter.remove(0, index2 + 1); Keluar.hapus(indeks4); Exit.remove(0, index3 + 1); WT.remove(0, index4 + 1);}void Get_String(){ while (Serial.available()) { Final =Serial.readString(); // membaca data yang masuk sebagai string //Serial.println(Final); }}pengaturan batal() { Serial.begin(9600); WiFi.mode(WIFI_STA); Thingspeak.begin(klien); pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH);}void loop() { if (WiFi.status() !=WL_CONNECTED) { //Serial.print("Mencoba terhubung ke SSID:"); // Serial.println(ssid); while (WiFi.status() !=WL_CONNECTED) { WiFi.begin(ssid, pass); // Hubungkan ke jaringan WPA/WPA2. Ubah baris ini jika menggunakan jaringan terbuka atau WEP Serial.print("0"); penundaan(5000); } } digitalWrite(LED_BUILTIN, RENDAH); //Serial.println("\nTerhubung."); Get_String(); String_Analyze(Akhir); if (!Final.equals("")) { Thingspeak.setField(1, Tanggal); Thingspeak.setField(2, Nama); Thingspeak.setField(3, Enter); Thingspeak.setField(4, Keluar); Thingspeak.setField(5, WT); int x =Thingspeak.writeFields(myChannelNumber, myWriteAPIKey); if (x ==200) { delay(100); Serial.print("1"); } else { penundaan(100); Serial.print("0"); } penundaan (17000); Akhir =""; } 

Pertama, ubah ID Saluran dan Tulis Kunci API sesuai dengan Panel ThingSpeak Anda.

String_Analuze (); fungsi dalam kode ini membagi string input NodeMCU menjadi tanggal, nama, waktu kedatangan dan keberangkatan, dan jam kerja, dan mengirimkan informasi ini ke ThingSpeak. Kemudian jika proses upload berhasil maka akan mengirimkan karakter “1”, dan sebaliknya akan mengirimkan karakter “0” ke Arduino.

Merakit Perangkat Absensi

Anda dapat menggunakan peta berikut dan kaca Plexi dengan warna berbeda atau bahan lain apa pun untuk membuat bodi perangkat absensi.

Unduh peta potongan laser tubuh perangkat dari lampiran:

Setelah memasang komponen elektronik dan merakit seluruh bodi, pasang di lokasi yang diinginkan. Sekarang, cukup colokkan adaptor 12V ke perangkat dan perangkat mulai berfungsi.

Apa Selanjutnya?

  • Coba gunakan lebih banyak ikon di LCD.
  • Coba tambahkan opsi RFID ke sistem.
  • Coba unggah data di google spreadsheet alih-alih ThingSpeak .

Jika menurut Anda tutorial ini bermanfaat dan menarik, silakan sukai kami di Facebook.

Kode

  • Kode 1
  • Kode 2
Kode 1Arduino
Berinteraksi dengan Thingspeak dan Mengunggah Data
/* WriteMultipleFields Deskripsi:Menulis nilai ke bidang 1,2,3,4 dan status dalam satu pembaruan Thingspeak setiap 20 detik. Perangkat keras:papan berbasis ESP8266 !!! PENTING - Ubah file secret.h untuk proyek ini dengan koneksi jaringan Anda dan detail saluran Thingspeak. !!! Catatan:- Memerlukan perpustakaan ESP8266WiFi dan add-on papan ESP8622. Lihat https://github.com/esp8266/Arduino untuk detailnya. - Pilih perangkat keras target dari menu Tools->Board - Contoh ini ditulis untuk jaringan yang menggunakan enkripsi WPA. Untuk WEP atau WPA, ubah panggilan WiFi.begin() yang sesuai. Thingspeak ( https://www.Thingspeak.com ) adalah layanan platform IoT analitik yang memungkinkan Anda untuk menggabungkan, memvisualisasikan, dan menganalisis aliran data langsung di cloud. Kunjungi https://www.Thingspeak.com untuk mendaftar akun gratis dan membuat saluran. Dokumentasi Perpustakaan Komunikasi Thingspeak untuk Arduino ada di folder README.md tempat perpustakaan dipasang. Lihat https://www.mathworks.com/help/Thingspeak/index.html untuk dokumentasi lengkap Thingspeak. Untuk informasi lisensi, lihat file lisensi terlampir. Hak Cipta 2018, The MathWorks, Inc.*/#include "Thingspeak.h"#include "secrets.h"#include char ssid[] =SECRET_SSID; // SSID jaringan Anda (nama) char pass[] =SECRET_PASS; // kata sandi jaringan Andaint keyIndex =0; // kunci jaringan Anda Nomor indeks (hanya diperlukan untuk WEP)klien WiFiClient;unsigned long myChannelNumber =SECRET_CH_ID;const char * myWriteAPIKey =SECRET_WRITE_APIKEY;// Inisialisasi nilai kamiint number1 =0;int number2 =random(0,100);int number3 =random (0,100);int number4 =random(0,100);String myStatus ="";void setup() { Serial.begin(115200); // Inisialisasi serial WiFi.mode(WIFI_STA); Thingspeak.begin(klien); // Inisialisasi Thingspeak}void loop() { // Hubungkan atau sambungkan kembali ke WiFi if(WiFi.status() !=WL_CONNECTED){ Serial.print("Mencoba menyambungkan ke SSID:"); Serial.println(SECRET_SSID); while(WiFi.status() !=WL_CONNECTED){ WiFi.begin(ssid, pass); // Hubungkan ke jaringan WPA/WPA2. Ubah baris ini jika menggunakan jaringan terbuka atau WEP Serial.print("."); penundaan(5000); } Serial.println("\nTersambung."); } // set field dengan nilai Thingspeak.setField(1, number1); Thingspeak.setField(2, angka2); Thingspeak.setField(3, angka3); Thingspeak.setField(4, angka4); // cari tahu pesan status if(number1> number2){ myStatus =String("field1 is more than field2"); } else if(angka1  99){ angka1 =0; } angka2 =acak(0,100); angka3 =acak(0,100); angka4 =acak(0,100); penundaan (20000); // Tunggu 20 detik untuk memperbarui saluran lagi}
Kode 2Arduino
#include "Thingspeak.h"#include ESP8266WiFi.h>char ssid[] ="YOUR SSID";char pass[] ="SSID PASSWORD";WiFiClient client;unsigned long myChannelNumber =ID CHANNEL ANDA;const char * myWriteAPIKey ="KUNCI API TULIS CHANNEL ANDA";String Final ="";String Date ="";String Enter ="";String Exit ="";String Name ="";String WT ="";void String_Analyze(String masukan) { int indeks1, indeks2, indeks3, indeks4; indeks1 =input.indexOf('*', 0); index2 =input.indexOf('*', index1 + 1); index3 =input.indexOf('*', index2 + 1); index4 =input.lastIndexOf('*'); Nama =masukan; Tanggal =masukan; Masukkan =masukan; Keluar =masukan; WT =masukan; Nama.hapus(indeks1); Tanggal.hapus(indeks2); Date.remove(0, index1 + 1); Enter.hapus(indeks3); Enter.remove(0, index2 + 1); Keluar.hapus(indeks4); Exit.remove(0, index3 + 1); WT.remove(0, index4 + 1);}void Get_String(){ while (Serial.available()) { Final =Serial.readString(); // membaca data yang masuk sebagai string //Serial.println(Final); }}pengaturan batal() { Serial.begin(9600); WiFi.mode(WIFI_STA); Thingspeak.begin(klien); pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH);}void loop() { if (WiFi.status() !=WL_CONNECTED) { //Serial.print("Mencoba terhubung ke SSID:"); // Serial.println(ssid); while (WiFi.status() !=WL_CONNECTED) { WiFi.begin(ssid, pass); // Hubungkan ke jaringan WPA/WPA2. Ubah baris ini jika menggunakan jaringan terbuka atau WEP Serial.print("0"); penundaan(5000); } } digitalWrite(LED_BUILTIN, RENDAH); //Serial.println("\nTerhubung."); Get_String(); String_Analyze(Akhir); if (!Final.equals("")) { Thingspeak.setField(1, Tanggal); Thingspeak.setField(2, Nama); Thingspeak.setField(3, Enter); Thingspeak.setField(4, Keluar); Thingspeak.setField(5, WT); int x =Thingspeak.writeFields(myChannelNumber, myWriteAPIKey); if (x ==200) { delay(100); Serial.print("1"); } else { penundaan(100); Serial.print("0"); } penundaan (17000); Akhir =""; }

Suku cadang dan penutup khusus

uploads2ftmp2fdcd9a041-0d41-433f-b48f-b7fa0a1b7a832felectropeak_attendance_code_q4bsYBzou5.zip uploads2ftmp2f93ae52e3-7f3c-4744-b2db-b69baed578622fattendanceboxlasercut_ryMUOo5d7h.dwg

Proses manufaktur

  1. 10 Manfaat Menggunakan Penyimpanan Cloud
  2. Pemutar DVD
  3. Sistem Kehadiran Menggunakan Arduino dan RFID dengan Python
  4. Transfer Data Magnetik Nirkabel
  5. Sistem Alarm Arduino:SERENA
  6. Pencatat Data Suhu dan Kelembaban
  7. Sensor Sidik Jari Kapasitif dengan Arduino atau ESP8266
  8. Arduino Cloud Sensor Tower
  9. Sistem Ventilasi Basement/Crawlspace
  10. Cloud di IoT