Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Veilig Arduino Vingerafdruk Aanwezigheidssysteem met Cloud Opslag

Onderdelen en Benodigdheden

OnderdeelAantal
Arduino Mega 2560 R31
ElectroPeak R301T Vingerafdruksensor1
ElectroPeak Micro SD TF Kaart Adapter Module1
ElectroPeak DS3231 I2C RTC Module1
ElectroPeak 3.5" TFT Kleur Display Shield1
ElectroPeak NodeMCU ESP8266 ESP-12E Bord1
ElectroPeak Male-Female Dupont-draden1 set

Benodigde Tools

  • Lasersnijder
  • Solderbout

Apps & Online Services

  • Arduino IDE

Over dit Project

Lees deze en andere geweldige tutorials op ElectroPeak's officiële website.

Overzicht

Tegenwoordig is leren over IoT-apparaten essentieel door het toenemende gebruik. In deze tutorial bouwen we een vingerafdruk aanwezigheidssysteem met Arduino. Naast lokaal opslaan op SD-kaart (inloggegevens, werktijden), uploadt het data naar ThingSpeak zodra er internetverbinding is. Je kunt de data downloaden in diverse formaten (CSV, etc.).

Wat Je Leert

  • Werken met vingerafdruksensoren
  • Data uploaden naar ThingSpeak met NodeMCU
  • Een aanwezigheidssysteem bouwen met vingerafdruksensor en Arduino

Wat is ThingSpeak?

IoT (Internet of Things) verbindt dingen met internet voor data-uitwisseling en cloud-analyse. ThingSpeak is een IoT-platform voor live data-weergave en -verzameling in de cloud.

Veilig Arduino Vingerafdruk Aanwezigheidssysteem met Cloud Opslag

Koppelen met ThingSpeak & Data Uploaden

  1. Account aanmaken: Ga naar ThingSpeak.com en registreer.
  2. Nieuw Kanaal: Login → My Channels → New Channel.
  3. Kanaal configureren: Naam, beschrijving, aantal velden (bijv. Datum, Naam, Incheck, Uitcheck, Werkuren). Opslaan.
  4. API Keys: Noteer Channel ID en Write API Key.
  5. Bibliotheek: Installeer ThingSpeak bibliotheek via Library Manager.
  6. Voorbeeldcode: File → Examples → ThingSpeak → WriteMultipleFields. Vul SSID, Password, Channel ID, Write API Key in.
Veilig Arduino Vingerafdruk Aanwezigheidssysteem met Cloud Opslag
Veilig Arduino Vingerafdruk Aanwezigheidssysteem met Cloud Opslag
Veilig Arduino Vingerafdruk Aanwezigheidssysteem met Cloud Opslag
Veilig Arduino Vingerafdruk Aanwezigheidssysteem met Cloud Opslag
Veilig Arduino Vingerafdruk Aanwezigheidssysteem met Cloud Opslag

Let op: Wacht minstens 15 seconden tussen elke upload naar ThingSpeak.

Veilig Arduino Vingerafdruk Aanwezigheidssysteem met Cloud Opslag

Aanwezigheidssysteem Bouwen met Vingerafdruksensor & Arduino

Na registratie in/uitchecken via vingerafdruk worden: datum, naam, aankomsttijd, vertrektijd, gewerkte uren opgeslagen op SD-kaart. Data gaat naar ThingSpeak op ingestelde tijden. Zonder internet wordt data gebufferd (EEPROM → geen dataverlies bij stroomuitval) en later verzonden.

Schema

Veilig Arduino Vingerafdruk Aanwezigheidssysteem met Cloud Opslag

Na het aansluiten van alle modules, plaats de LCD-shield op de Arduino.

Tip: De LCD-shield bedekt sommige Arduino-pinnen. Gebruik draadjes aan de onderkant van het bord als je die pinnen nodig hebt.

Code

Benodigde bibliotheken:

  • Adafruit-Fingerprint-Sensor-Library
  • Adafruit-GFX-Library
  • MCUFRIEND_kbv (voor TFT LCD)
  • RTClib (voor DS3231)

Download de complete code uit de bijlagen. De code is geschreven voor 11 personen met standaardnamen, maar aanpasbaar. Nieuwe namen registreren: apparaat aan PC → toets voor registratiemodus → Serial Monitor openen → stappen volgen.

Veilig Arduino Vingerafdruk Aanwezigheidssysteem met Cloud Opslag

Meer over SD-kaart, klokmodule, LCD:

NodeMCU verzorgt de upload naar ThingSpeak. Haalt data op van Arduino via seriële poort, stuurt status (1=succes, 0=fout) terug.

#include "ThingSpeak.h"
#include 

char ssid[] = "JOUW_SSID";
char pass[] = "JOUW_WACHTWOORD";
WiFiClient client;
unsigned long myChannelNumber = JOUW_CHANNEL_ID;
const char * myWriteAPIKey = "JOUW_WRITE_API_KEY";

String Final = "", Date = "", Enter = "", Exit = "", Name = "", WT = "";

void String_Analyze(String input) {
  int index1 = input.indexOf('*', 0);
  int index2 = input.indexOf('*', index1 + 1);
  int index3 = input.indexOf('*', index2 + 1);
  int index4 = input.lastIndexOf('*');
  Name = input; Date = input; Enter = input; Exit = input; WT = input;
  Name.remove(index1);
  Date.remove(index2); Date.remove(0, index1 + 1);
  Enter.remove(index3); Enter.remove(0, index2 + 1);
  Exit.remove(index4); Exit.remove(0, index3 + 1);
  WT.remove(0, index4 + 1);
}

void Get_String() {
  while (Serial.available()) Final = Serial.readString();
}

void setup() {
  Serial.begin(9600);
  WiFi.mode(WIFI_STA); ThingSpeak.begin(client);
  pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH);
}

void loop() {
  if (WiFi.status() != WL_CONNECTED) {
    while (WiFi.status() != WL_CONNECTED) {
      WiFi.begin(ssid, pass); Serial.print("0"); delay(5000);
    }
  }
  digitalWrite(LED_BUILTIN, LOW);
  Get_String(); String_Analyze(Final);
  if (!Final.equals("")) {
    ThingSpeak.setField(1, Date);
    ThingSpeak.setField(2, Name);
    ThingSpeak.setField(3, Enter);
    ThingSpeak.setField(4, Exit);
    ThingSpeak.setField(5, WT);
    int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
    if (x == 200) { delay(100); Serial.print("1"); }
    else { delay(100); Serial.print("0"); }
    delay(17000); Final = "";
  }
}

Wijzig Channel ID en Write API Key naar jouw ThingSpeak-paneel. De functie String_Analyze() splitst de invoerstring (gescheiden door *) in datum, naam, in/uit-tijd, werktijd en stuurt dit naar ThingSpeak.

Apparaat Monteren

Gebruik de meegeleverde DXF/DWG-bestanden voor lasersnijden (plexiglas of ander materiaal).

Veilig Arduino Vingerafdruk Aanwezigheidssysteem met Cloud Opslag

Download lasersnij-tekening uit bijlagen. Na montage: 12V adapter aansteken → systeem start direct.

Wat Komt Er Nu?

  • Meer iconen op LCD toevoegen
  • RFID-optie toevoegen aan het systeem
  • Data uploaden naar Google Spreadsheets ipv ThingSpeak

Vind je deze tutorial nuttig? Like ons op Facebook!

Code

Code 1: ThingSpeak Interfacing & Upload

/* WriteMultipleFields - ThingSpeak voorbeeldcode */
#include "ThingSpeak.h"
#include "secrets.h"
#include 

char ssid[] = SECRET_SSID;
char pass[] = SECRET_PASS;
int keyIndex = 0;
WiFiClient client;
unsigned long myChannelNumber = SECRET_CH_ID;
const char * myWriteAPIKey = SECRET_WRITE_APIKEY;

int number1 = 0, number2 = 0, number3 = 0, number4 = 0;
String myStatus = "";

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA); ThingSpeak.begin(client);
}

void loop() {
  if (WiFi.status() != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: "); Serial.println(SECRET_SSID);
    while (WiFi.status() != WL_CONNECTED) { WiFi.begin(ssid, pass); Serial.print("."); delay(5000); }
    Serial.println("\nConnected.");
  }
  ThingSpeak.setField(1, number1); ThingSpeak.setField(2, number2);
  ThingSpeak.setField(3, number3); ThingSpeak.setField(4, number4);
  if (number1 > number2) myStatus = "field1 is greater than field2";
  else if (number1 < number2) myStatus = "field1 is less than field2";
  else myStatus = "field1 equals field2";
  ThingSpeak.setStatus(myStatus);
  int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
  if (x == 200) Serial.println("Channel update successful.");
  else Serial.println("Problem updating channel. HTTP error code " + String(x));
  number1++; if (number1 > 99) number1 = 0;
  number2 = random(0,100); number3 = random(0,100); number4 = random(0,100);
  delay(20000);
}

Code 2: NodeMCU Upload Code voor Aanwezigheidssysteem

#include "ThingSpeak.h"
#include 

char ssid[] = "JOUW_SSID";
char pass[] = "JOUW_WACHTWOORD";
WiFiClient client;
unsigned long myChannelNumber = JOUW_CHANNEL_ID;
const char * myWriteAPIKey = "JOUW_WRITE_API_KEY";

String Final = "", Date = "", Enter = "", Exit = "", Name = "", WT = "";

void String_Analyze(String input) { /* ... */ }
void Get_String() { /* ... */ }

void setup() { /* ... */ }
void loop() { /* ... */ }

Aangepaste Onderdelen & Behuizingen

  • electropeak_attendance_code_q4bsYBzou5.zip - Complete Arduino code
  • attendanceboxlasercut_ryMUOo5d7h.dwg - Lasersnijtekening behuizing

Productieproces

  1. De kracht van de cloud voor IoT: naadloze connectiviteit en datainzichten ontgrendelen
  2. DVD-spelers: Geschiedenis, Technologie en Toekomstige Innovaties
  3. Betrouwbaar Arduino RFID Aanwezigheidssysteem Aangedreven door Python
  4. Arduino Draadloze Magnetische Dataoverdracht met Infineon 3D-Sensor
  5. SERENA: Een Aangepast Arduino Mega 2560 Alarmsysteem Met TFT LCD Touchscreen
  6. Arduino temperatuur- en vochtigheidslogger met DHT11 en Ethernet Shield
  7. Een DFRobot Capacitieve Vingerafdruksensor integreren met Arduino of ESP8266
  8. Bouw een Sensor Toren met Arduino Cloud: Temperatuur, Beweging & Gas Monitoring
  9. Slimme Kelder Ventilatiesysteem: Arduino-gestuurde Vochtcontrole
  10. Real-time RFID aanwezigheidssysteem met Arduino en Google Sheets
  11. 10 Belangrijkste Voordelen Van Cloudopslag Voor Moderne Bedrijven