Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- $ ./arduino-cli sketch new fingerprint
- $ nano $HOME/Arduino/fingerprint/fingerprint.ino
- Terus kopas, Ctrl+O Return save, Ctrl+X exit
- $ ./arduino-cli compile --fqbn arduino:avr:nano:cpu=atmega328old $HOME/Arduino/fingerprint/
- $ ./arduino-cli upload -p /dev/ttyUSB0 --fqbn arduino:avr:nano:cpu=atmega328old $HOME/Arduino/fingerprint/
- $ minicom -D /dev/ttyUSB0 -p 57600
- */
- #include <SoftwareSerial.h>
- SoftwareSerial mySerial(10, 11); // RX, TX
- // GND-nya module nyambung ke GND
- // RX-nya module nyambung ke pin 11 (Software TX)
- //// Bila fingerprint module tidak 5V tolerant namun arduinonya 5V,
- //// ganti jadi GND -- Resistor -- Resistor -- Rx-nya module -- Resistor -- pin 11
- //// Resistor = 1 kOhm (contoh)
- // TX-nya module nyambung ke pin 10 (Software RX)
- // VCC-nya module nyambung ke 5V atau 3.3V (sesuai module fingerpint)
- // T_OUT sambung ke GPIO input microcontroller (LOW = ada touch)
- // T_3V3 nyambung ke 3.3V
- void setup() {
- Serial.begin(57600); // Serial connected to PC (USB), tengok di Serial Monitor
- while (! Serial) {} //
- mySerial.begin(57600); // Software serial connected to FPM10A
- // Countdown timer, 5 detik untuk membuka Serial Monnitor
- uint8_t s;
- s = 5;
- while (s > 0){
- Serial.print("Ready in ");
- Serial.println(s);
- delay(1000);
- s--;
- }
- Serial.println("Now");
- // Countdown timer, 5 detik untuk naruh jari
- s = 5;
- while (s > 0){
- Serial.print("Scan your fingerprint in ");
- Serial.println(s);
- delay(1000);
- s--;
- }
- Serial.println("Now");
- // The GenImg command, memerintah module untuk melakukan scan
- mySerial.write((uint8_t) 0xEF); // START
- mySerial.write((uint8_t) 0x01); // START
- mySerial.write((uint8_t) 0xFF); // ADDR
- mySerial.write((uint8_t) 0xFF); // ADDR
- mySerial.write((uint8_t) 0xFF); // ADDR
- mySerial.write((uint8_t) 0xFF); // ADDR
- mySerial.write((uint8_t) 0x01); // PID:01 (Command)
- mySerial.write((uint8_t) 0x00); // LENGTH
- mySerial.write((uint8_t) 0x03); // LENGTH
- mySerial.write((uint8_t) 0x01); // DATA:01 (GenImg)
- mySerial.write((uint8_t) 0x00); // SUM
- mySerial.write((uint8_t) 0x05); // SUM
- delay(1000); // waiting for result
- // The GenIm result, menerima result dari module dan menampilkan ke Serial Monitor
- // Result should be something like EF 01 FF FF FF FF 07 00 03 00 00 0A
- // Start:EF01, Addr:FFFFFFFF, PID:07 (Confirmation), Length:0003, Data:00 (OK), Sum:000A
- Serial.println("Result:");
- while (mySerial.available()){
- uint8_t d = mySerial.read();
- if (d < 0x0F)
- Serial.print(0);
- Serial.print(d, HEX);
- Serial.print(' ');
- }
- Serial.println();
- // For command list, see https://pastebin.com/ezC4rmZy
- }
- void loop() { }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement