Simple Access Control System: Use Barcode Scanner RTMU86 Control The Lock Directly, Without Use Access Control Panel.
RTMU86 uploads the scan data to the server and controls the door lock
In most cases, the composition of the access control system is like this: barcode scanner / NFC reader + access control panel + lock + control software/server.
However, if you use our RTMU86, we can make the system more simple.
Firstly, connect use RTMU86 scanner with the lock, and then connect RTMU86 to the server via Ethernet. The scanned content is sent to the server through the Ethernet. After the server verifies the content and sends the unlock command to the RTMU86, the RTMU86 directly controls the lock to be opened. So the solution becomes:
barcode scanner / NFC reader+ lock + control software/server.
Through this solution, we do not need to use the access control panel, thereby reducing the cost and greatly simplifying the difficulty of system integration. So
- If you use this solution, customers need to develop/build their own access control management software.
- In this article, we introduce a solution without the use of an access controller, but you can also use the RTMU86 to work together with the access controller and then connect with the lock. To learn more about this solution, please read: https://www.rtscan.net/wiegand-barcode-scanner-and-zkteco-access-control-system/
Below, we describe the hardware connection and scanner configuration in detail.
1. Hardware connection
(1) RTMU86 connection with a lock
12V is connected to the RTMU86 com terminal input, and NO is connected to the positive pole of the electromagnetic lock power supply. After mu86 receives the unlock command, the com and no ports are turned on, and the electromagnetic lock is energized and unlocked.
Door lock connection diagram
(2) RTMU86 network port connection
The RTMU86 Ethernet version (the other version is the Wiegand version) directly leads out four network cable pins, which can be connected to four of the standard eight-core network cables according to the color. The network cable adopts the 568B connection method. Please refer to the table for wiring according to the color.
|Network cable color||Orange||Orange white||Green||Green white|
|Network cable color icon|
(2)Setup work mode
WIFI/Ethernet/2G output: TCP
(3) Set NET
SuccessAction：flash Green （Optional）
Set the service address and port to which the data is uploaded (*necessary settings)
Address: server address, such as 192.168.4.1
Port num: server port
IP mode setting
Dynamic IP: dynamic IP, IP address is automatically assigned by the router
Static IP: manually specify the IP address, when set to static IP, you must specify the IP address, Subnet mask, Gateway, the format is as follows
(4) Device scan code configuration
Click config code to generate configuration code. Device scan code configuration code to complete the configuration
For detailed usage of the configuration tool, please refer to “ScannerConfig Configuration Tool User Manual”.
After the configuration is complete, the device automatically connects to the specified server, and then reports the scan data after scanning the code.
3. Connect to the server
As a client, the MU86 scanner can establish a long TCP connection to the server and process the response returned by the server. The interface specification is defined as follows
The format of the requested TCP/IP server IP address is: xxx.xxx.xxx.xxx
The format of the requested TCP/IP server port is: 0-65535
The scanner sends the original scanned data to the server
4. Register account and control door lock
Use the server to build TCP server, accept the data reported by the scanner, determine the uploaded data, and issue the unlock command
Relay control command: (command is a hexadecimal array)
|Command header||Command word||Data length||Byte 1||Byte 2||Check word|
|0X55 0XAA||0x2a||0X02 0X00|
|Duration (unit: 50MS) 0x00: Default time|
55 aa 2a 02 00 01 02 d4 Relay on 100ms
55 aa 2a 02 00 00 02 d5 off relay
More instructions reference<>
In this test, the server side uses python to build tcpsever, reads the data uploaded by the device, and judges whether it meets the registered id and is in compliance with the issued unlock instruction
The device establishes a connection
Uploaded data received
ID is the same as the saved id, issue the unlock command
Reference source code
import binascii from quopri import HEX from socket import * from time import ctime HOST = '192.168.4.1' PORT = 8888 BUFSIZ = 1024 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) tcpSerSock.bind(ADDR) tcpSerSock.listen(5) id_list = ["12345678", "abcdefg"] def calculate_bbc(data, len): bbc = 0 for i in range(len): bbc ^= data[i] return bbc def detection_id(data): data_len = len(data) if data_len < 8: return 0 if data == 0x55 and data == 0xaa and data == 0x30 and data == 0x00: bbc = calculate_bbc(data, data_len - 1) if bbc == data[data_len - 1]: id_len = data + data * 256 id = data[6:6+id_len] print("read id=", id) for cid in id_list: if id == cid.encode("UTF-8"): return 1 print("Id not registered:", id) return 0 else: return 0 def send_lock_open(client, ms): buf = [0x55, 0xaa, 0x2a, 0x02, 0x00, 0x01, 0x00, 0x00] if ms < 50: ms = 50 buf = int(ms / 50) buf = calculate_bbc(buf, 7) # print("send:", bytes(buf)) client.send(bytes(buf)) recv = client.recv(BUFSIZ) if not recv: return -1 # print(recv) if recv == b'\x55\xaa\x2a\x00\x00\x00\xd5': return 1 else: return 0 def send_lock_close(client): buf = [0x55, 0xaa, 0x2a, 0x02, 0x00, 0x00, 0x00] buf = calculate_bbc(buf, 6) client.send(bytes(buf)) while True: print('waiting for connection...') tcpCliSock, addr = tcpSerSock.accept() print('...connnecting from:', addr) while True: data = tcpCliSock.recv(BUFSIZ) if not data: break # print(data) if detection_id(data): print('open the door') if send_lock_open(tcpCliSock, 1000): print('open the door success') tcpCliSock.close() tcpSerSock.close()