Système de surveillance des empreintes digitales Arduino avec stockage de données dans le cloud
Composants et fournitures
Arduino Mega 2560 R3
×
1
Capteur d'empreintes digitales ElectroPeak R301T
×
1
Module adaptateur de carte Micro SD TF ElectroPeak
×
1
Module RTC ElectroPeak DS3231 I2C
×
1
Module d'écran couleur TFT ElectroPeak 3.5"
×
1
ElectroPeak NodeMCU ESP8266 ESP-12E Board
×
1
Câble de connexion ElectroPeak mâle à femelle
×
1
Outils et machines nécessaires
Coupe laser (générique)
Fer à souder (générique)
Applications et services en ligne
Arduino IDE
À propos de ce projet
Vous pouvez lire ceci et d'autres tutoriels étonnants surSite officiel d'ElectroPeak.
Présentation
De nos jours, l'apprentissage du fonctionnement et de la mise en œuvre des appareils IoT est essentiel en raison de l'utilisation croissante des systèmes IoT. Dans ce tutoriel, nous allons créer un dispositif de présence d'empreintes digitales avec Arduino, qui en plus de stocker les informations de connexion et les heures de travail sur la carte mémoire, télécharge ces informations sur la plate-forme ThingSpeak dès qu'elle est connectée à Internet et vous pouvez télécharger ces informations à partir du panneau dans différents formats, tels que CSV.
Code
Code 1
Code 2
Code 1Arduino
Interfaçage avec Thingspeak et téléchargement de données
/* WriteMultipleFields Description :écrit les valeurs dans les champs 1,2,3,4 et l'état dans une seule mise à jour Thingspeak toutes les 20 secondes. Matériel :cartes basées sur ESP8266 !!! IMPORTANT - Modifiez le fichier secrets.h pour ce projet avec votre connexion réseau et les détails du canal Thingspeak. !!! Remarque :- Nécessite la bibliothèque ESP8266WiFi et le module complémentaire de carte ESP8622. Voir https://github.com/esp8266/Arduino pour plus de détails. - Sélectionnez le matériel cible dans le menu Outils->Carte - Cet exemple est écrit pour un réseau utilisant le cryptage WPA. Pour WEP ou WPA, modifiez l'appel WiFi.begin() en conséquence. Thingspeak ( https://www.Thingspeak.com ) est un service de plate-forme analytique IoT qui vous permet d'agréger, de visualiser et d'analyser des flux de données en direct dans le cloud. Visitez https://www.Thingspeak.com pour créer un compte gratuit et créer une chaîne. La documentation de la bibliothèque de communication Thingspeak pour Arduino se trouve dans le dossier README.md où la bibliothèque a été installée. Voir https://www.mathworks.com/help/Thingspeak/index.html pour la documentation complète de Thingspeak. Pour obtenir des informations sur les licences, consultez le fichier de licence joint. Copyright 2018, The MathWorks, Inc.*/#include "Thingspeak.h"#include "secrets.h"#include char ssid[] =SECRET_SSID; // votre réseau SSID (nom) char pass[] =SECRET_PASS; // votre mot de passe réseauint keyIndex =0; // votre clé réseau Numéro d'index (nécessaire uniquement pour WEP)Client WiFi;unsigned long myChannelNumber =SECRET_CH_ID;const char * myWriteAPIKey =SECRET_WRITE_APIKEY;// Initialiser nos valeursint number1 =0;int number2 =random(0,100);int number3 =random (0,100);int number4 =random(0,100);String myStatus ="";void setup() { Serial.begin(115200); // Initialiser la série WiFi.mode(WIFI_STA); Thingspeak.begin(client); // Initialiser Thingspeak}void loop() { // Se connecter ou se reconnecter au WiFi if(WiFi.status() !=WL_CONNECTED){ Serial.print("Tentative de connexion au SSID :"); Serial.println(SECRET_SSID); while(WiFi.status() !=WL_CONNECTED){ WiFi.begin(ssid, pass); // Connectez-vous au réseau WPA/WPA2. Modifiez cette ligne si vous utilisez un réseau ouvert ou WEP Serial.print("."); retard (5000); } Serial.println("\nConnecté."); } // définit les champs avec les valeurs Thingspeak.setField(1, number1) ; Thingspeak.setField(2, nombre2) ; Thingspeak.setField(3, numéro3) ; Thingspeak.setField(4, nombre4) ; // découvrir le message d'état if(number1> number2){ myStatus =String("champ1 est supérieur à champ2"); } else if(number1 99){ nombre1 =0 ; } nombre2 =aléatoire(0,100); nombre3 =aléatoire(0,100); nombre4 =aléatoire (0,100); retard (20000); // Attendre 20 secondes pour mettre à jour la chaîne à nouveau}
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 ="YOUR CHANNEL WRITE API KEY";String Final ="";String Date ="";String Enter ="";String Exit ="";String Name ="";String WT ="";void String_Analyze(String entrée) { int index1, index2, index3, index4; index1 =input.indexOf('*', 0); index2 =input.indexOf('*', index1 + 1); index3 =input.indexOf('*', index2 + 1); index4 =input.lastIndexOf('*'); Nom =entrée ; Date =entrée ; Entrée =entrée ; Sortie =entrée ; WT =entrée ; Nom.remove(index1) ; Date.remove(index2) ; Date.remove(0, index1 + 1); Enter.remove(index3) ; Enter.remove(0, index2 + 1); Quitter.remove(index4) ; Exit.remove(0, index3 + 1); WT.remove(0, index4 + 1);}void Get_String(){ while (Serial.available()) { Final =Serial.readString(); // lit les données entrantes sous forme de chaîne //Serial.println(Final); }} void setup() { Serial.begin(9600); WiFi.mode(WIFI_STA); Thingspeak.begin(client); pinMode(LED_BUILTIN, SORTIE); digitalWrite(LED_BUILTIN, HIGH);}void loop() { if (WiFi.status() !=WL_CONNECTED) { //Serial.print("Tentative de connexion au SSID :"); // Serial.println(ssid); while (WiFi.status() !=WL_CONNECTED) { WiFi.begin(ssid, pass); // Connectez-vous au réseau WPA/WPA2. Modifiez cette ligne si vous utilisez un réseau ouvert ou WEP Serial.print("0"); retard (5000); } } digitalWrite(LED_BUILTIN, LOW); //Série.println("\nConnecté."); Get_String(); String_Analyze(Final); if (!Final.equals("")) { Thingspeak.setField(1, Date); Thingspeak.setField(2, Nom); Thingspeak.setField(3, Entrée); Thingspeak.setField(4, Quitter); Thingspeak.setField(5, WT); int x =Thingspeak.writeFields(myChannelNumber, myWriteAPIKey); if (x ==200) { délai (100); Serial.print("1"); } else { retard (100); Serial.print("0"); } retard (17000); Final ="" ; }