Example Code for Arduino-Delete face (I2C)

Last revision 2025/12/17

This article provides detailed instructions and example code for deleting face IDs using the Arduino platform with the I2C communication method, covering hardware setup, software preparation, and code execution for effective face recognition management.

Hardware Preparation

  • DFRduino UNO R3 (or similar) x 1
  • Gravity: 3D Face Recognition Module - UART&I2C x1

Software Preparation

Wiring Diagram

Turn the dial switch for switching communication mode to the I2C end

Arduino connection diagram

Other Preparation Work

Turn the dial switch for switching communication mode to the I2C end. Ensure the power supply meets the module's requirements (use Arduino's analog port or I2C interface VCC).

Sample Code

 /*!
  * @file  faceDelete.ino
  * @brief  face delete demo
  * @copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
  * @license The MIT License (MIT)
  * @author ZhixinLiu([email protected])
  * @version V1.0
  * @date 2024-04-25
  * @url https://github.com/DFRobot/DFRobot_3DFace
  */

#include "DFRobot_3DFace.h"

#define I2C_COMMUNICATION  //use I2C for communication, but use the serial port for communication if the line of codes were masked

#ifdef  I2C_COMMUNICATION
  DFRobot_3DFace_I2C face(&Wire ,DEVICE_ADDR);
#else
/* ---------------------------------------------------------------------------------------------------------------------
 *    board   |             MCU                | Leonardo/Mega2560/M0 |    UNO    | ESP8266 | ESP32 |  microbit  |   m0  |
 *     VCC    |            3.3V/5V             |        VCC           |    VCC    |   VCC   |  VCC  |     X      |  vcc  |
 *     GND    |              GND               |        GND           |    GND    |   GND   |  GND  |     X      |  gnd  |
 *     RX     |              TX                |     Serial1 TX1      |     5     |   5/D6  |  D2   |     X      |  tx1  |
 *     TX     |              RX                |     Serial1 RX1      |     4     |   4/D7  |  D3   |     X      |  rx1  |
 * ----------------------------------------------------------------------------------------------------------------------*/
/* Baud rate cannot be changed */
  #if defined(ARDUINO_AVR_UNO) || defined(ESP8266)
    SoftwareSerial mySerial(4, 5);
    DFRobot_3DFace_UART face(&mySerial ,57600);
  #elif defined(ESP32)
    DFRobot_3DFace_UART face(&Serial1 ,57600 ,/*rx*/D2 ,/*tx*/D3);
  #else
    DFRobot_3DFace_UART face(&Serial1 ,57600);
  #endif
#endif

void setup()
{
  Serial.begin(115200);
  while(!face.begin()){
    Serial.println("NO Deivces !");
    delay(1000);
  } Serial.println("Device connected!");
  
  sUserData_t data = face.getFaceMessage();
  if(data.result == true){
    Serial.print("user number = ");
    Serial.println(data.user_count);
  }
/*
  if(face.delAllFaceID()){
    Serial.println("delete all face success!");
  }
*/  
  uint8_t number = 1;
  if(face.delFaceID(number)){
    Serial.print("success delete face id = ");
    Serial.println(number);
  }else{
    Serial.print("faild delete face id = ");
    Serial.println(number);
  }
}

void loop()
{
  sUserData_t data = face.getFaceMessage();
  if(data.result == true){
    Serial.print("user number = ");
    Serial.println(data.user_count);
  }
  delay(1000);
}

Result

Delete the specified ID face or all faces, and print the corresponding data on the serial port.

Arduino serial port print data diagram

Additional Information

Turn the dial switch for switching communication mode to the I2C end.

Was this article helpful?

TOP