Мой датчик отпечатков пальцев не может быть сохранен в базе данных с помощью php

#php #arduino

#php #arduino

Вопрос:

Я использую датчик отпечатков пальцев AS608 с платой arduino uno R3, чтобы вставить отпечаток пальца в базу данных с помощью php. Библиотека, которую я использую, — это библиотека датчиков отпечатков пальцев Adafruit. Что я хочу сделать, так это использовать свой датчик отпечатков пальцев для сохранения отпечатков пальцев в базе данных, а не просто хранить их в датчике отпечатков пальцев. Но проблема в том, что он всегда показывает сбой подключения, и отпечаток пальца не вставляется в базу данных. Может ли кто-нибудь помочь мне в решении этой проблемы? Спасибо.

Вот исходный код для моего arduino.

 #include lt;Adafruit_Fingerprint.hgt; #include lt;SPI.hgt; #include lt;Ethernet.hgt; #include lt;SoftwareSerial.hgt; byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192,168,1,177); //IP address for your arduino. char server[] = "192.168.1.106"; //IP address of your computer. int interrupt=0; //Variable to control the iterations of void loop(). String mod=""; //Variable to be written on the database. String rcv=""; //Variable in which the server response is recorded. EthernetClient client; SoftwareSerial mySerial(2, 3); Adafruit_Fingerprint finger = Adafruit_Fingerprint(amp;mySerial);  uint8_t id;  void setup()  {  Serial.begin(9600);  while (!Serial); // For Yun/Leo/Micro/Zero/...  delay(100);  Serial.println("nnAdafruit Fingerprint sensor enrollment");   // set the data rate for the sensor serial port  finger.begin(57600);  Ethernet.begin(mac, ip);  delay(5000); //Wait for ethernet to connect.  if (finger.verifyPassword()) {  Serial.println("Found fingerprint sensor!");  } else {  Serial.println("Did not find fingerprint sensor :(");  while (1) { delay(1); }  } } void httpRequest() {// Connect to the server (your computer or web page)   if (client.connect(server, 80)) {  client.print("GET /fingerprint/fingerprint.php?"); // This  client.print("ID_S="); // This  client.print(id); // And this is what we did in the testing section above. We are making a  GET request just like we would from our browser but now with live data from the sensor  client.println(" HTTP/1.1"); // Part of the GET request  client.println("Host: 192.168.1.106"); // IMPORTANT: If you are using XAMPP you will have to find out the IP address of your computer and put it here (it is explained in previous article). If you have a web page, enter its address (ie.Host: "www.yourwebpage.com")  client.println("Connection: close"); // Part of the GET request telling the server that we are over transmitting the message  client.println(); // Empty line  client.println(); // Empty line  client.stop(); // Closing connection to server   }   else {  // If Arduino can't connect to the server (your computer or web page)  Serial.println("--gt; connection failedn");  } }  uint8_t readnumber(void) { uint8_t num = 0;   while (num == 0) {  while (! Serial.available());  num = Serial.parseInt();  }  return num; }  void loop() // run over and over again {   Serial.println("Ready to enroll a fingerprint!");  Serial.println("Please type in the ID # (from 1 to 127) you want to save this finger as...");  id = readnumber();  if (id == 0) {// ID #0 not allowed, try again!  return;  }  Serial.print("Enrolling ID #");  Serial.println(id);  while (! getFingerprintEnroll() ); }  uint8_t getFingerprintEnroll() {   int p = -1;  Serial.print("Waiting for valid finger to enroll as #"); Serial.println(id);  while (p != FINGERPRINT_OK) {  p = finger.getImage();  switch (p) {  case FINGERPRINT_OK:  Serial.println("Image taken");  break;  case FINGERPRINT_NOFINGER:  Serial.println(".");  break;  case FINGERPRINT_PACKETRECIEVEERR:  Serial.println("Communication error");  break;  case FINGERPRINT_IMAGEFAIL:  Serial.println("Imaging error");  break;  default:  Serial.println("Unknown error");  break;  }  }   // OK success!   p = finger.image2Tz(1);  switch (p) {  case FINGERPRINT_OK:  Serial.println("Image converted");  break;  case FINGERPRINT_IMAGEMESS:  Serial.println("Image too messy");  return p;  case FINGERPRINT_PACKETRECIEVEERR:  Serial.println("Communication error");  return p;  case FINGERPRINT_FEATUREFAIL:  Serial.println("Could not find fingerprint features");  return p;  case FINGERPRINT_INVALIDIMAGE:  Serial.println("Could not find fingerprint features");  return p;  default:  Serial.println("Unknown error");  return p;  }   Serial.println("Remove finger");  delay(2000);  p = 0;  while (p != FINGERPRINT_NOFINGER) {  p = finger.getImage();  }  Serial.print("ID "); Serial.println(id);  p = -1;  Serial.println("Place same finger again");  while (p != FINGERPRINT_OK) {  p = finger.getImage();  switch (p) {  case FINGERPRINT_OK:  Serial.println("Image taken");  break;  case FINGERPRINT_NOFINGER:  Serial.print(".");  break;  case FINGERPRINT_PACKETRECIEVEERR:  Serial.println("Communication error");  break;  case FINGERPRINT_IMAGEFAIL:  Serial.println("Imaging error");  break;  default:  Serial.println("Unknown error");  break;  }  }   // OK success!   p = finger.image2Tz(2);  switch (p) {  case FINGERPRINT_OK:  Serial.println("Image converted");  break;  case FINGERPRINT_IMAGEMESS:  Serial.println("Image too messy");  return p;  case FINGERPRINT_PACKETRECIEVEERR:  Serial.println("Communication error");  return p;  case FINGERPRINT_FEATUREFAIL:  Serial.println("Could not find fingerprint features");  return p;  case FINGERPRINT_INVALIDIMAGE:  Serial.println("Could not find fingerprint features");  return p;  default:  Serial.println("Unknown error");  return p;  }   // OK converted!  Serial.print("Creating model for #"); Serial.println(id);   p = finger.createModel();  if (p == FINGERPRINT_OK) {   Serial.println("Prints matched!");  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {  Serial.println("Communication error");  return p;  } else if (p == FINGERPRINT_ENROLLMISMATCH) {  Serial.println("Fingerprints did not match");  return p;  } else {  Serial.println("Unknown error");  return p;  }    Serial.print("ID "); Serial.println(id);  p = finger.storeModel(id);;  if (p == FINGERPRINT_OK) {  httpRequest();   Serial.println ("Stored!");  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {  Serial.println("Communication error");  return p;  } else if (p == FINGERPRINT_BADLOCATION) {  Serial.println("Could not store in that location");  return p;  } else if (p == FINGERPRINT_FLASHERR) {  Serial.println("Error writing to flash");  return p;  } else {  Serial.println("Unknown error");  return p;  }     delay(10000); }  

Вот мой php-код.

 lt;?php include ('connection.php'); $sql_insert = "INSERT INTO student (ID_S) VALUES ('".$_GET["ID_S"]."')"; if(mysqli_query($con,$sql_insert)) { echo "Done"; mysqli_close($con); } else { echo "error is ".mysqli_error($con ); } ?gt;  

Вот ошибка, которая отображается в arduino. введите описание изображения здесь

Вот ошибка, которая отображается на моей веб-странице. введите описание изображения здесь

Может кто-нибудь сказать мне, в чем моя проблема, потому что я в первый раз делаю arduino, спасибо.

Комментарии:

1. Есть ли $sql_insert = "INSERT INTO student (ID_S) VALUES ('".$_GET["ID_S"]."')"; этот код в вашем fingerprint.php файле?

2. Да, этот код находится в fingerprint.php файл.