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

Arduino Fingerprint Attendance System met cloudgegevensopslag

Componenten en benodigdheden

Arduino Mega 2560 R3
× 1
ElectroPeak R301T Vingerafdruksensor
× 1
ElectroPeak Micro SD TF-kaartadaptermodule
× 1
ElectroPeak DS3231 I2C RTC-module
× 1
ElectroPeak 3,5" TFT-kleurenschermmodule
× 1
ElectroPeak NodeMCU ESP8266 ESP-12E Board
× 1
ElectroPeak mannelijk naar vrouwelijk verbindingsdraad
× 1

Benodigde gereedschappen en machines

Lasersnijder (algemeen)
Soldeerbout (algemeen)

Apps en online services

Arduino IDE

Over dit project

Je kunt deze en andere geweldige tutorials lezen op Officiële website ElectroPeak .

Overzicht

Tegenwoordig is leren over de werking en implementatie van IoT-apparaten zo essentieel vanwege het toenemende gebruik van IoT-systemen. In deze tutorial gaan we een vingerafdruk aanwezigheidsapparaat maken met Arduino, dat naast het opslaan van de inloggegevens en werkuren op de geheugenkaart, deze informatie uploadt naar het ThingSpeak-platform zodra het is verbonden met internet en u kunt deze informatie van het paneel downloaden in verschillende formaten, zoals CSV.

Wat je gaat leren

  • Werken met vingerafdruksensoren
  • Gegevens uploaden op ThingSpeak met NodeMCU
  • Maak een aanwezigheidsapparaat met de vingerafdruksensor en Arduino

Wat is ThingSpeak?

Het IoT (Internet of Things) stelt zich een wereld voor waarin een aantal dingen zijn verbonden met internet, interactie hebben met individuen en andere apparaten en meestal gegevens uploaden naar de cloud voor analyse.

ThingSpeak is een IoT-platform waarmee u live gegevens in cloud computing kunt weergeven en verzamelen.

Koppelen met ThingSpeak en gegevens uploaden

Volg de onderstaande stappen om de ThingSpeak-verbinding te starten:

Stap 1 ) Ga naar de ThingSpeak.com-website en maak een account aan.

Stap 2 ) Log in nadat u uw account heeft geactiveerd en klik op Nieuw kanaal in het Mijn kanaal sectie.

Stap 3 ) Schrijf in het nieuwe venster dat voor u is geopend een naam voor uw paneel en eventueel een beschrijving. Bepaal het aantal velden dat u nodig hebt door hun namen toe te kennen. De overige delen zijn optioneel. Sla het paneel op na het invullen van de informatie.

Stap 4 ) Ga nu naar API-sleutels in uw paneel.

Stap 5 ) Je hebt de Kanaal-ID . nodig en API-sleutel schrijven om gegevens te verzenden, dus schrijf ze op.

Stap 6) Download de ThingSpeak bibliotheek en voeg het toe aan je Arduino IDE.

De ThingSpeak-bibliotheek

Stap 7) Ga naar de Arduino IDE. Open de WriteMultipleFiels uit het gedeelte met voorbeelden en voer de waarden voor SSID, Wachtwoord, Kanaal-ID en Schrijf API-sleutel in.

/* WriteMultipleFields Beschrijving:Schrijft waarden naar velden 1,2,3,4 en status in een enkele Thingspeak-update om de 20 seconden. Hardware:op ESP8266 gebaseerde boards !!! BELANGRIJK - Wijzig het bestand secrets.h voor dit project met uw netwerkverbinding en Thingspeak-kanaaldetails. !!! Opmerking:- Vereist ESP8266WiFi-bibliotheek en ESP8622-board-add-on. Zie https://github.com/esp8266/Arduino voor details. - Selecteer de doelhardware in het menu Tools->Board - Dit voorbeeld is geschreven voor een netwerk dat WPA-codering gebruikt. Wijzig voor WEP of WPA de WiFi.begin()-aanroep dienovereenkomstig. Thingspeak ( https://www.Thingspeak.com ) is een analytische IoT-platformservice waarmee u live gegevensstromen in de cloud kunt aggregeren, visualiseren en analyseren. Ga naar https://www.Thingspeak.com om je aan te melden voor een gratis account en een kanaal aan te maken. Documentatie voor de Thingspeak Communication Library voor Arduino bevindt zich in de README.md-map waar de bibliotheek is geïnstalleerd. Zie https://www.mathworks.com/help/Thingspeak/index.html voor de volledige documentatie van Thingspeak. Zie het bijbehorende licentiebestand voor licentie-informatie. Copyright 2018, The MathWorks, Inc.*/#include "Thingspeak.h"#include "secrets.h"#include char ssid[] =SECRET_SSID; // uw netwerk SSID (naam) char pass [] =SECRET_PASS; // uw netwerkwachtwoordint keyIndex =0; // uw netwerksleutel Indexnummer (alleen nodig voor WEP)WiFiClient-client;unsigned long myChannelNumber =SECRET_CH_ID;const char * myWriteAPIKey =SECRET_WRITE_APIKEY;// Initialiseer onze waardenint number1 =0;int number2 =random(0.100);int number3 =random (0,100);int nummer4 =willekeurig (0,100);String myStatus ="";void setup() {Serial.begin(115200); // Initialiseer seriële WiFi.mode (WIFI_STA); Thingspeak.begin(klant); // Initialiseer Thingspeak}void loop() { // Maak verbinding met of maak opnieuw verbinding met wifi if(WiFi.status() !=WL_CONNECTED){ Serial.print("Poging om verbinding te maken met SSID:"); Serial.println(SECRET_SSID); while(WiFi.status() !=WL_CONNECTED){ WiFi.begin(ssid, pass); // Maak verbinding met het WPA/WPA2-netwerk. Wijzig deze regel als u een open of WEP-netwerk gebruikt Serial.print("."); vertraging (5000); } Serial.println("\nVerbonden."); } // stel de velden in met de waarden Thingspeak.setField (1, number1); Thingspeak.setField(2, nummer2); Thingspeak.setField (3, nummer 3); Thingspeak.setField(4, nummer4); // zoek het statusbericht uit if (number1> number2) { myStatus =String ("field1 is groter dan field2"); } else if(getal1  99){getal1 =0; } getal2 =willekeurig (0,100); getal3 =willekeurig (0,100); getal4 =willekeurig (0,100); vertraging (20000); // Wacht 20 seconden om het kanaal opnieuw te updaten} 

Nadat u de code heeft geüpload, ziet u enkele willekeurige nummers geüpload in velden 1 t/m 4 van uw paneel. Dezelfde gestructureerde code wordt gebruikt in het aanwezigheidssysteem voor het uploaden van gegevens.

Opmerking

Wacht ten minste 15 seconden tussen elke keer dat u de gegevens uploadt naar het ThingSpeak-paneel.

Aanwezigheidssysteem maken met behulp van de vingerafdruksensor en Arduino

In dit systeem wordt, na registratie van het in- en uitgaan van een persoon door middel van zijn vingerafdruk, de informatie inclusief datum, naam, aankomsttijd, vertrektijd en werktijden van de medewerker op de SD-kaart opgeslagen. Vervolgens wordt deze informatie op het door u opgegeven tijdstip naar ThingSpeak gestuurd. Als er geen internetverbinding is, worden niet-gepubliceerde gegevens opgeslagen en worden deze doorgestuurd naar ThingSpeak zodra deze is verbonden met internet. Omdat de informatie wordt opgeslagen in de EEPROM van de microcontroller, gaan ze bij stroomuitval niet verloren.

Circuit

Nadat alle modules zijn aangesloten, plaatst u het LCD-schild op de Arduino.

Tip

Omdat het LCD-schild enkele van de Arduino-pinnen bedekt, kun je de draad aan een specifieke pin vanaf de onderkant van het bord verbinden, als je deze pin nodig hebt.

Code

Voor deze code heb je de volgende bibliotheken nodig:

Adafruit-Fingerprint-Sensor-Bibliotheek

Adafruit-GFX-Bibliotheek

MCUFRIEND_kbv

RTClib

Download nu de volgende code en upload deze naar je Arduino. Deze code is geschreven voor 11 personen met standaardnamen, maar je kunt ze wijzigen en uit de standaardmodus verwijderen. Om een ​​nieuwe naam te registreren, sluit u het apparaat eenvoudig aan op uw computer en drukt u op de toets om de registratiemodus te openen, opent u vervolgens de seriële monitor en volgt u het registratieproces zoals wordt weergegeven op de seriële monitor.

Download de code uit bijlagen:

U kunt meer leren over het gebruik van een SD-kaart, de klokmodule en het LCD-scherm via de volgende links:

SD-kaartmodule met Arduino:gegevens lezen/schrijven

Hoe de DS1307 RTC-module met Arduino te gebruiken en een herinnering te maken

Absolute beginnershandleiding voor TFT LCD-schermen van Arduino.

NodeMCU voert de taak uit om de informatie in dit systeem te uploaden. Het neemt de uploadinformatie van Arduino via de seriële poort en retourneert de status van uploaden naar Arduino. Upload de volgende code op uw NodeMCU.

#include "Thingspeak.h"#include ESP8266WiFi.h>char ssid[] ="UW SSID";char pass[] ="SSID PASSWORD";WiFiClient client;unsigned long myChannelNumber =UW KANAAL-ID; const char * myWriteAPIKey ="UW KANAAL SCHRIJF API-SLEUTEL";String Final ="";String Datum ="";String Enter ="";String Exit ="";String Name ="";String WT ="";void String_Analyse (String-invoer) {int index1, index2, index3, index4; index1 =invoer.indexOf('*', 0); index2 =input.indexOf('*', index1 + 1); index3 =input.indexOf('*', index2 + 1); index4 =invoer.lastIndexOf('*'); Naam =invoer; Datum =invoer; Enter =invoer; Uitgang =ingang; WT =ingang; Naam.verwijder(index1); Datum.verwijder(index2); Datum.verwijder(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(); // lees de binnenkomende gegevens als string //Serial.println (Final); }}void setup() { Serial.begin(9600); WiFi.mode(WIFI_STA); Thingspeak.begin(klant); pinMode (LED_BUILTIN, UITGANG); digitalWrite(LED_BUILTIN, HIGH);}void loop() {if (WiFi.status()!=WL_CONNECTED) { //Serial.print("Poging om verbinding te maken met SSID:"); // Serieel.println(ssid); while (WiFi.status() !=WL_CONNECTED) { WiFi.begin(ssid, pass); // Maak verbinding met het WPA/WPA2-netwerk. Wijzig deze regel als u een open of WEP-netwerk gebruikt Serial.print("0"); vertraging (5000); } } digitalWrite (LED_BUILTIN, LAAG); //Serial.println("\nVerbonden."); Get_String(); String_Analyse (definitief); if (!Final.equals("")) { Thingspeak.setField(1, Datum); Thingspeak.setField(2, Naam); Thingspeak.setField (3, Enter); Thingspeak.setField(4, Afsluiten); Thingspeak.setField(5, WT); int x =Thingspeak.writeFields(myChannelNumber, myWriteAPIKey); if (x ==200) { vertraging (100); Serieel.print("1"); } anders { vertraging(100); Serieel.print("0"); } vertraging (17000); Laatste =""; } 

Wijzig eerst de Kanaal-ID en API-sleutel schrijven volgens uw ThingSpeak-paneel.

De String_Analuze (); functie in deze code verdeelt de NodeMCU-invoerreeksen in de datum, naam, aankomst- en vertrektijd en werkuren, en stuurt deze informatie naar ThingSpeak. Als het uploadproces succesvol is, wordt het teken "1" verzonden en anders wordt het teken "0" naar de Arduino gestuurd.

Het aanwezigheidsapparaat monteren

U kunt de volgende kaarten en plexiglas met verschillende kleuren of ander materiaal gebruiken om de behuizing van het aanwezigheidsapparaat te bouwen.

Download de lasergesneden kaart van het apparaatlichaam uit bijlagen:

Na het plaatsen van elektronische componenten en het monteren van de hele carrosserie, installeert u deze op de gewenste locatie. Sluit nu gewoon een 12V-adapter aan op het apparaat en het begint te werken.

Wat is het volgende?

  • Probeer meer pictogrammen op het LCD-scherm te gebruiken.
  • Probeer een RFID-optie aan het systeem toe te voegen.
  • Probeer de gegevens te uploaden naar de google spreadsheets in plaats van ThingSpeak .

Als je deze tutorial nuttig en interessant vindt, vind je ons leuk op Facebook.

Code

  • Code 1
  • Code 2
Code 1Arduino
Interfacing met Thingspeak en uploaden van gegevens
/* WriteMultipleFields Beschrijving:Schrijft waarden naar velden 1,2,3,4 en status in een enkele Thingspeak-update om de 20 seconden. Hardware:op ESP8266 gebaseerde boards !!! BELANGRIJK - Wijzig het bestand secrets.h voor dit project met uw netwerkverbinding en Thingspeak-kanaaldetails. !!! Opmerking:- Vereist ESP8266WiFi-bibliotheek en ESP8622-board-add-on. Zie https://github.com/esp8266/Arduino voor details. - Selecteer de doelhardware in het menu Tools->Board - Dit voorbeeld is geschreven voor een netwerk dat WPA-codering gebruikt. Wijzig voor WEP of WPA de WiFi.begin()-aanroep dienovereenkomstig. Thingspeak ( https://www.Thingspeak.com ) is een analytische IoT-platformservice waarmee u live gegevensstromen in de cloud kunt aggregeren, visualiseren en analyseren. Ga naar https://www.Thingspeak.com om je aan te melden voor een gratis account en een kanaal aan te maken. Documentatie voor de Thingspeak Communication Library voor Arduino bevindt zich in de README.md-map waar de bibliotheek is geïnstalleerd. Zie https://www.mathworks.com/help/Thingspeak/index.html voor de volledige documentatie van Thingspeak. Zie het bijbehorende licentiebestand voor licentie-informatie. Copyright 2018, The MathWorks, Inc.*/#include "Thingspeak.h"#include "secrets.h"#include char ssid[] =SECRET_SSID; // uw netwerk SSID (naam) char pass [] =SECRET_PASS; // uw netwerkwachtwoordint keyIndex =0; // uw netwerksleutel Indexnummer (alleen nodig voor WEP)WiFiClient-client;unsigned long myChannelNumber =SECRET_CH_ID;const char * myWriteAPIKey =SECRET_WRITE_APIKEY;// Initialiseer onze waardenint number1 =0;int number2 =random(0.100);int number3 =random (0,100);int nummer4 =willekeurig (0,100);String myStatus ="";void setup() {Serial.begin(115200); // Initialiseer seriële WiFi.mode (WIFI_STA); Thingspeak.begin(klant); // Initialiseer Thingspeak}void loop() { // Maak verbinding met of maak opnieuw verbinding met wifi if(WiFi.status() !=WL_CONNECTED){ Serial.print("Poging om verbinding te maken met SSID:"); Serial.println(SECRET_SSID); while(WiFi.status() !=WL_CONNECTED){ WiFi.begin(ssid, pass); // Maak verbinding met het WPA/WPA2-netwerk. Wijzig deze regel als u een open of WEP-netwerk gebruikt Serial.print("."); vertraging (5000); } Serial.println("\nVerbonden."); } // stel de velden in met de waarden Thingspeak.setField (1, number1); Thingspeak.setField(2, nummer2); Thingspeak.setField (3, nummer 3); Thingspeak.setField(4, nummer4); // zoek het statusbericht uit if (number1> number2) { myStatus =String ("field1 is groter dan field2"); } else if(getal1  99){getal1 =0; } getal2 =willekeurig (0,100); getal3 =willekeurig (0,100); getal4 =willekeurig (0,100); vertraging (20000); // Wacht 20 seconden om het kanaal opnieuw te updaten}
Code 2Arduino
#include "Thingspeak.h"#include ESP8266WiFi.h>char ssid[] ="YOUR SSID";char pass[] ="SSID PASSWORD";WiFiClient client;unsigned long myChannelNumber =YOUR CHANNEL ID;const char * myWriteAPIKey ="UW KANAAL SCHRIJF API-SLEUTEL";String Final ="";String Datum ="";String Enter ="";String Exit ="";String Name ="";String WT ="";void String_Analyze(String invoer) {int index1, index2, index3, index4; index1 =invoer.indexOf('*', 0); index2 =input.indexOf('*', index1 + 1); index3 =input.indexOf('*', index2 + 1); index4 =invoer.lastIndexOf('*'); Naam =invoer; Datum =invoer; Enter =invoer; Uitgang =ingang; WT =ingang; Naam.verwijder(index1); Datum.verwijder(index2); Datum.verwijder(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(); // lees de binnenkomende gegevens als string //Serial.println (Final); }}void setup() { Serial.begin(9600); WiFi.mode(WIFI_STA); Thingspeak.begin(klant); pinMode (LED_BUILTIN, UITGANG); digitalWrite(LED_BUILTIN, HIGH);}void loop() {if (WiFi.status()!=WL_CONNECTED) { //Serial.print("Poging om verbinding te maken met SSID:"); // Serieel.println(ssid); while (WiFi.status() !=WL_CONNECTED) { WiFi.begin(ssid, pass); // Maak verbinding met het WPA/WPA2-netwerk. Wijzig deze regel als u een open of WEP-netwerk gebruikt Serial.print("0"); vertraging (5000); } } digitalWrite (LED_BUILTIN, LAAG); //Serial.println("\nVerbonden."); Get_String(); String_Analyse (definitief); if (!Final.equals("")) { Thingspeak.setField(1, Datum); Thingspeak.setField(2, Naam); Thingspeak.setField (3, Enter); Thingspeak.setField(4, Afsluiten); Thingspeak.setField(5, WT); int x =Thingspeak.writeFields(myChannelNumber, myWriteAPIKey); if (x ==200) { vertraging (100); Serieel.print("1"); } anders { vertraging(100); Serieel.print("0"); } vertraging (17000); Laatste =""; }

Aangepaste onderdelen en behuizingen

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

Productieproces

  1. 10 voordelen van het gebruik van cloudopslag
  2. dvd-speler
  3. Aanwezigheidssysteem met Arduino en RFID met Python
  4. Draadloze magnetische gegevensoverdracht
  5. Arduino Alarmsysteem:SERENA
  6. Temperatuur- en vochtigheidsdatalogger
  7. Capacitieve vingerafdruksensor met een Arduino of ESP8266
  8. Arduino Cloud Sensor Tower
  9. Kelder/kruipruimte ventilatiesysteem
  10. Aanwezigheidssysteem op basis van Arduino en Google Spreadsheet
  11. De cloud in IoT