Système de Pointage par Empreinte Arduino Sécurisé avec Stockage Cloud
Composants et fournitures
| Composant | Quantité |
|---|---|
| Arduino Mega 2560 R3 | 1 |
| Capteur empreinte ElectroPeak R301T | 1 |
| Module carte microSD ElectroPeak | 1 |
| Module RTC DS3231 I2C ElectroPeak | 1 |
| Écran TFT 3,5" couleur ElectroPeak | 1 |
| NodeMCU ESP8266 ESP-12E ElectroPeak | 1 |
| Fils de liaison mâle/femelle ElectroPeak | 1 lot |
Outils nécessaires
- Découpeuse laser
- Fer à souder
Applications et services en ligne
- Arduino IDE
- Plateforme ThingSpeak (IoT cloud)
À propos du projet
Tutoriel original sur le site officiel ElectroPeak.
Vue d'ensemble
Dispositif de pointage par empreinte digitale avec Arduino : stockage local (carte SD + EEPROM) + envoi cloud ThingSpeak (export CSV possible). En cas de coupure Internet, les données sont mises en file d'attente et envoyées dès reconnexion. Alimentation 12V via adaptateur secteur.
Ce que vous apprendrez
- Utilisation capteur empreinte digitale
- Envoi données sur ThingSpeak via NodeMCU
- Construction système pointage complet
Qu'est-ce que ThingSpeak ?
Plateforme IoT (MathWorks) pour collecter, visualiser, analyser des flux de données temps réel dans le cloud. Gratuit pour usage basique.
Connexion ThingSpeak & envoi données
- Créer compte sur ThingSpeak.com
- Se connecter → My Channels → New Channel
- Nommer le canal, définir 5 champs : Date, Nom, Entrée, Sortie, Heures travail
- Récupérer Channel ID et Write API Key (onglet API Keys)
- Installer librairie
ThingSpeakdans Arduino IDE - Exemple
WriteMultipleFields: renseigner SSID, mot de passe, Channel ID, Write API Key
Important : Attendre ≥ 15 s entre deux envois ThingSpeak (limitation API).
Système pointage complet (Arduino Mega + NodeMCU)
Fonctionnement : Après lecture empreinte, infos (date, nom, entrée, sortie, heures) stockées sur carte SD. NodeMCU récupère via liaison série et envoie à ThingSpeak. Si pas de WiFi, données conservées en EEPROM (survivent coupure courant).
Câblage
Tous modules connectés, puis shield écran TFT enfiché sur Mega. Astuce : le shield masque certains pins → souder fils par dessous si besoin.
Code Arduino Mega (principal)
Librairies requises :
Adafruit-Fingerprint-Sensor-LibraryAdafruit-GFX-LibraryMCUFRIEND_kbv(écran TFT)RTClib(DS3231)
Code complet (gère 11 employés par défaut, modifiable, mode enregistrement via moniteur série) → téléchargement ZIP.
Code NodeMCU (envoi ThingSpeak)
#include "ThingSpeak.h"
#include
char ssid[] = "VOTRE_SSID";
char pass[] = "MOT_DE_PASSE";
WiFiClient client;
unsigned long myChannelNumber = VOTRE_CHANNEL_ID;
const char * myWriteAPIKey = "VOTRE_WRITE_API_KEY";
String Final = "", Date = "", Enter = "", Exit = "", Name = "", WT = "";
void String_Analyze(String input) {
int i1 = input.indexOf('*', 0);
int i2 = input.indexOf('*', i1 + 1);
int i3 = input.indexOf('*', i2 + 1);
int i4 = input.lastIndexOf('*');
Name = input; Name.remove(i1);
Date = input; Date.remove(i2); Date.remove(0, i1 + 1);
Enter = input; Enter.remove(i3); Enter.remove(0, i2 + 1);
Exit = input; Exit.remove(i4); Exit.remove(0, i3 + 1);
WT = input; WT.remove(0, i4 + 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);
delay(100); Serial.print(x == 200 ? "1" : "0");
delay(17000); Final = "";
}
}
Fonction String_Analyze() parse la chaîne reçue (séparateur *) et répartit dans les 5 champs ThingSpeak. Retourne 1 (succès) ou 0 (échec) à l'Arduino Mega.
Assemblage boîtier
Plans découpe laser (fichier DWG) dispo en téléchargement. Assembler, installer composants, brancher adaptateur 12V → fonctionnement autonome.
Évolutions possibles
- Plus d'icônes sur l'écran TFT
- Ajouter option badge RFID
- Remplacer ThingSpeak par Google Sheets
Codes (section Code)
- Code 1 : Exemple ThingSpeak
WriteMultipleFields(configuration WiFi/API) - Code 2 : Sketch NodeMCU complet (ci-dessus)
- Code Mega : Dans archive ZIP (pointage, SD, RTC, TFT, communication NodeMCU)
Pièces personnalisées
electropeak_attendance_code_q4bsYBzou5.zip(codes sources)attendanceboxlasercut_ryMUOo5d7h.dwg(plans boîtier découpe laser)
Processus de fabrication
- 10 Avantages Clés du Stockage Cloud pour les Entreprises Modernes
- Lecteurs DVD : Histoire, Technologie et Innovations Futures
- Système de pointage RFID fiable avec Arduino et Python (base de données phpMyAdmin)
- Transfert de données magnétique sans fil Arduino + capteur 3D Infineon TLE493D
- SERENA : Système d'Alarme Arduino Mega 2560 Personnalisé avec Écran Tactile TFT LCD
- Enregistreur de Température et Humidité Arduino avec DHT11 et Shield Ethernet
- Intégrer un capteur d'empreintes capacitif DFRobot (ID809) avec Arduino ou ESP8266
- Tour de Capteurs avec Arduino Cloud : Température, Mouvement et Gaz
- Exploiter la puissance du Cloud pour l'IoT : connectivité fluide et insights données