Example: Ekey biometric scanner interconnection with Logic Machine

Task

The following example will show how to interconnect Ekey finger scanners directly to LogicMachine’s RS-485 port and do the necessary configuration.

 

Install Ekey packages

On LogicMachine3 or newer device install the following two packages through System configuration –> System –> Packages:
ekey_package1
ekey_package2

Reboot LogicMachine after this is successfully done.

 

Connect scanners

Connect ekey module scanners to LogicMachine’s RS-485 port. Use second RS-485 if there are more than 1 RS-485 on LogicMachine.
RS485 A <--> Ekey pin2 (yellow)
RS485 B <--> Ekey pin1 (green)

On one RS-485 you can connect a group of max. 8 Ekey module scanners.

ekey_scanner_lm3

LED on the scanner doesn’t blink if the communication is ok (steady Blue).

Ekey_scanner_blue_LogicMachine

Scanner detection

Scanners should be automatically detected in Ekey –> Scanners window

Ekey_scanners_detection_LogicMachine

Create 2-byte object

Create 2 byte unsigned integer object in Objects which will be grp address for specific scanner finger reading

Ekey_2byte_object_LM

Specify the created grp address as Finger object in Ekey –> Scanners section by clicking on specific scanner

Ekey_2byte_object_LM_assign_Ekey

Enroll fingers

Enroll finger for specific user on specific scanner. In Ekey –> Users click ENROLL, choose User, define finger and scanner. Press Save. In 30sec time you will have to enroll your finger three times. The scanner will turn on Orange LED, once the reading is done well,, it will be Green. And so three times.

Ekey_enroll1_LM
Ekey_enroll2_LM

By clicking on User, you can define Open time for specific finger enrollment

Ekey_open_time_LM3

Time frames are defined in Ekey –> Actions

Ekey_time_frames_LM3

Define access rights

Define access rights in Ekey –> Access Rights for users
Ekey_access_rights_LM3

Script to decode user/finger pair (fingers start at 0, users at 1)

Source code    
  1. value = event.getvalue()
  2.  
  3. user = bit.rshift(value, 4)
  4. finger = bit.band(value, 0x0F)
  5.  
  6. alert('User: %d, Finger: %d', user, finger)