Hello Guys today I'm gonna show you how can easily interface FPS with Nodemcu........
As we know if we want to interface FPS with Arduino nano we need to add0 resistors and it became a headache so if you don't want this headache you can simply connect it with nodemcu which is lots of easier.............................
In this project you will be given with full code uploading fingerprints and how to check it so lets gooooooooo.....
CONNECTION WITH NODEMCUVCC --------------------- VV [nodemcu]
GND -------------------- G [ nodemcu]
Rx [green wire ] ----------------------- D7
Tx [ White wire ] ---------------------- D8
#include "FPS_GT511C3.h"
#include "SoftwareSerial.h"
// NodeMCU pins: RX=D7, TX=D8
FPS_GT511C3 fps(D7, D8); // (NodeMCU SS_RX=D7, SS_TX=D8)
void setup()
{
Serial.begin(115200); // Faster for NodeMCU
delay(1000); // Extra delay for ESP boot
fps.Open(); // Initialize FPS
fps.SetLED(true); // Turn on LED
Serial.println("=== GT-511C3 NODEMCU ENROLL ===");
Enroll(); // Start enrolling
}
void Enroll()
{
// Find open enroll ID
int enrollid = 0;
bool usedid = true;
while (usedid == true)
{
usedid = fps.CheckEnrolled(enrollid);
if (usedid==true) enrollid++;
}
fps.EnrollStart(enrollid);
// 1st scan
Serial.print("Press finger to Enroll #");
Serial.println(enrollid);
while(fps.IsPressFinger() == false) delay(100);
bool bret = fps.CaptureFinger(true);
int iret = 0;
if (bret != false)
{
Serial.println("Remove finger");
fps.Enroll1();
while(fps.IsPressFinger() == true) delay(100);
// 2nd scan
Serial.println("Press same finger again");
while(fps.IsPressFinger() == false) delay(100);
bret = fps.CaptureFinger(true);
if (bret != false)
{
Serial.println("Remove finger");
fps.Enroll2();
while(fps.IsPressFinger() == true) delay(100);
// 3rd scan
Serial.println("Press same finger yet again");
while(fps.IsPressFinger() == false) delay(100);
bret = fps.CaptureFinger(true);
if (bret != false)
{
Serial.println("Remove finger");
iret = fps.Enroll3();
if (iret == 0)
{
Serial.println("✅ ENROLLING SUCCESSFUL!");
Serial.print("Fingerprint ID #"); Serial.print(enrollid); Serial.println(" saved!");
}
else
{
Serial.print("❌ Enrolling Failed: ");
Serial.println(iret);
}
}
else Serial.println("❌ Failed third finger");
}
else Serial.println("❌ Failed second finger");
}
else Serial.println("❌ Failed first finger");
}
void loop()
{
delay(100000);
}
Upper code is for uploading the fingerprint;;;;;;;
This code is for testing the fingerprint
/*****************************************************************
ALL_Fingerprints_Scanner.ino - NodeMCU ESP8266
Scans ALL enrolled IDs (0-199) at once
*****************************************************************/
#include "FPS_GT511C3.h"
#include "SoftwareSerial.h"
FPS_GT511C3 fps(D7, D8); // RX=D7, TX=D8
void setup()
{
Serial.begin(115200);
delay(1000);
fps.Open();
fps.SetLED(true);
Serial.println("=== ALL FINGERPRINTS ACCESS ===");
Serial.println("Place ANY enrolled finger...");
Serial.println("Supports ID #0, #1, #2...");
}
void loop()
{
if (fps.IsPressFinger())
{
Serial.println("\n🔍Scanning ALL fingerprints...");
bool captured = fps.CaptureFinger(false);
if (captured)
{
// SEARCH ALL 200 IDs AT ONCE
int matchedID = fps.Identify1_N();
if (matchedID >= 0 && matchedID <= 199)
{
Serial.print("✅ACCESS GRANTED! ");
Serial.print("ID #"); Serial.print(matchedID);
Serial.println(" MATCHED!");
// Your actions here:
// digitalWrite(RELAY, HIGH); // Unlock door
// sendWiFiAlert(matchedID); // IoT notification
}
else if (matchedID == -6)
{
Serial.println("❌NO FINGERPRINT MATCHED");
}
else
{
Serial.print("❌Scanner Error: "); Serial.println(matchedID);
}
}
else
{
Serial.println("❌Fingerprint too messy");
}
Serial.println("--- Ready for next scan ---");
delay(3000); // 3 second cooldown
}
delay(50);
}I HOPE THIS WILL HELP YOU
THANK YOU





Comments