Components and supplies
ESP32
Apps and platforms
rogerbit.
Project description
Code
Source code
c
Source code
1// Importar bibliotecas necesarias 2#include <WiFi.h> 3#include <HTTPClient.h> 4#include <Adafruit_Fingerprint.h> 5Adafruit_Fingerprint finger = Adafruit_Fingerprint(&Serial2); 6uint8_t id; 7int pin27 = 27; 8const int led = 2;//Led onboard del esp32 9String numID; 10int codigo; 11// Establezca su nombre y contraseña de wifi 12const char* ssid = "Tu_red_wifi"; 13const char* password = "Tu_clave_wifi"; 14// La URL de tu canal de thingspeak con el número de api_key 15String nombreServidor = "https://api.thingspeak.com/update?api_key=Tu_Api_Key"; 16void setup() 17{ 18 while (!Serial); // Para Yun/Leo/Micro/Zero/... 19 Serial.begin(9600);//Velocidad del puerto serie arduino 20 pinMode(pin27, OUTPUT);//Buzzer 21 pinMode(led, OUTPUT);//Led onboard del esp32 22 WiFi.begin(ssid, password); // Intenta conectarte a wifi con nuestra contraseña 23 Serial.println("Conectando"); // Imprime nuestro estado en el monitor de serie 24 // Espera a que se conecte el wifi 25 while(WiFi.status() != WL_CONNECTED) { 26 delay(500); 27 Serial.print("."); 28 } 29 Serial.println(""); 30 Serial.print("Conectado a la red WiFi con la dirección IP: "); 31 Serial.println(WiFi.localIP()); 32 //Dos bip indican que se conectó el dispositivo a la red wifi 33 bip(100); 34 delay(400); 35 bip(100); 36 Serial.println("Inicio detección del módulo fingerprint"); 37 // Velocidad de transmisión de datos entre el arduino y el módulo fingerprint 38 finger.begin(57600); 39 40 if (finger.verifyPassword()) { 41 Serial.println("¡Sensor de huellas dactilares conectado ok!"); 42 } else { 43 Serial.println("Revisa la conexión del sensor de huellas :("); 44 while (1); 45 } 46 Serial.println("Esperando una huella válida..."); 47} 48 49void loop() 50{ 51 datosFingerprint(); 52 delay(50); //Pequeño delay 53} 54// Devuelve -1 si falla, de lo contrario devuelve ID # 55int datosFingerprint() { 56 uint8_t p = finger.getImage(); 57 if (p != FINGERPRINT_OK) return -1; 58 59 p = finger.image2Tz(); 60 if (p != FINGERPRINT_OK) return -1; 61 62 p = finger.fingerFastSearch(); 63 if (p != FINGERPRINT_OK) return -1; 64 65//Encontrado una coincidencia! 66 Serial.print("Huella ID #"); Serial.print(finger.fingerID); 67 Serial.print(" con una confianza de "); Serial.println(finger.confidence); 68//Activar el buzzer durante 100 mili segundos 69bip(100); 70delay(100); 71numID = String(finger.fingerID); //Convierte el id en cadena para ser compatible con el display 72 73Serial.print("Huella Correcta # "); 74Serial.println(numID); 75digitalWrite(led, HIGH); 76////--------------------- 77if(WiFi.status()== WL_CONNECTED){ // Comprueba que la wifi todavía esté conectada 78HTTPClient http; // Inicializar nuestro cliente HTTP 79 String url = nombreServidor + "&field1=" + numID ; // Definir nuestra URL completa 80 http.begin(url.c_str()); // Inicializa nuestra solicitud HTTP 81 int codigoRespuestaHTTP = http.GET(); // Enviar solicitud HTTP 82 if (codigoRespuestaHTTP > 0){ // Verifica que haya código de estado HTTP correcto 83 Serial.print("Codigo de respuesta HTTP: "); 84 Serial.println(codigoRespuestaHTTP); 85 codigo = codigoRespuestaHTTP; 86 }else{ 87 Serial.print("Codigo de error: "); 88 Serial.println(codigoRespuestaHTTP); 89//Reintentamos una vez más por si hubo un error en la comunicación 90 http.begin(url.c_str()); // Inicializa nuestra solicitud HTTP 91 int codigoRespuestaHTTP = http.GET(); // Enviar solicitud HTTP 92 if (codigoRespuestaHTTP > 0){ // Verifica que haya código de estado HTTP correcto 93 Serial.print("Codigo de respuesta HTTP: "); 94 Serial.println(codigoRespuestaHTTP); 95 } 96 } 97 http.end(); 98 } 99 else { 100 Serial.println("WiFi desconectado"); 101 } 102numID=""; 103delay(10000); 104//Bip largo sibió datos a thingspeak 105if(codigo == 200){ 106digitalWrite(led, LOW); 107bip(750); 108} 109//Tres bip hubo un problema al subir los datos a thingpeag 110if(codigo != 200){ 111bip(150); 112delay(150); 113digitalWrite(led, LOW); 114bip(150); 115delay(150); 116digitalWrite(led, HIGH); 117bip(150); 118delay(150); 119digitalWrite(led, LOW); 120} 121} 122//Sonido del buzzer 123void bip(int demora){ 124digitalWrite(pin27, HIGH); 125delay(demora); 126digitalWrite(pin27, LOW); 127 }
Comments
Only logged in users can leave comments
carlosvolt
11 Followers
•0 Projects
0
0