Managing Smart Warehouse Using Fingerprint Recognition Technology

We discuss the application of fingerprint recognition to warehouse information management with Android in an Arduino master platform. Fingerprint identification is used to monitor and manage relation information and warehouse data. When goods are picked up, this management system automatically recognizes them by their indentations, reducing the need for human labor. Moreover, the temperature and humidity of the warehouse can be monitored in real time to ensure the quality of goods. Our fingerprint recognizer also supports a monitoring function that can be used in warehouses of up to 100 m 2 . Administrators can instantly know the status of a warehouse via mobile devices. The results of experiments on the accuracy of fingerprint analysis show that fingerprint identification is suitable for the access control mechanism of a warehouse.


Introduction
In recent years, mobile devices have been widely used in daily life, and manufacturers have continuously introduced new additional functions and applications. As a result, the use of development software and peripheral accessories of mobile phones is expanding into industrial applications, for example, the control of lighting equipment, temperature, and industrial control equipment. (1) In a warehouse, controlled functions are provided for the entry and exit of goods. Therefore, a convenient and practical system is required. Fingerprint identification is a biometric technology (2) that can be used to determine who is entering or leaving a warehouse or a container, and it is a reasonably effective and straight forward strategy. (3,4) The advantage of fingerprints is that they cannot be copied to fraudulently gain access to a warehouse. They are safer, more convenient, and more practical than a traditional access control card. (5) In addition, finding goods in a large warehouse is a very troublesome and difficult task. Thus, LEDs are used to indicate where goods are located, facilitating the rapid extraction and management of goods.
Our proposed fingerprint recognition for use in a warehouse is based on Arduino (6) and has independent operation and interface characteristics that can communicate with software. The system uses Arduino languages such as Macromedia Flash, Processing, and Super Collider to combine electronic components, such as switches, sensors, control devices, LEDs, and stepper motors. The system has the following functions: 1. fingerprint identification, 2. a fingerprint library, 3. an instant display of temperature and humidity, and 4. the LED indication of the position of goods.

Related Theories
With the advancement of technology, different types of sensors have been introduced for use with Bluetooth, Wi-Fi, or near-field communication (NFC) technology or to connect various computers and mobile devices to various types of sensors, and transfer the data collected by each device to the required system. (7)

Fingerprint pattern technologies
In general, there are four main fingerprint comparison technologies as follows: (8,9) 1) Grammar comparison A whole image is divided into many equal-size blocks. Each block is given a different number (direction code) according to the difference in grain flow direction. Then, the obtained direction codes are represented by a basic symbol to obtain a one-dimensional series of symbols or a two-dimensional tree structure. Each symbol and its category are determined by comparison analysis.

2) Structural comparison
After the fingerprint grain is tracked, the grain is formatted into a direction code. Fingerprint features often appear where the direction code changes the most. Therefore, fingerprint features can be extracted from the direction code. Furthermore, these features can be used as a basis for comparison analysis.

3) Thin grain feature comparison
An input fingerprint image is subjected to preprocessing. After the positions of the end, cross, and center points are stored, the proposed system will compare the feature points of the fingerprint images in the file form.

4) Graphical comparison
After a fingerprint image is processed by image processing and grain tracking, the grain is coded according to the feature points of grain valleys. The images classified by the grain valleys can be rearranged to obtain the same image files for comparison analysis.

Fingerprint image preprocessing
Fingerprint image preprocessing (10) is a key part of the fingerprint recognition process. The fingerprint identification system is a pattern recognition system that includes fingerprint image acquisition, processing, feature extraction, and comparison. Fingerprints are commonly used for personal identification confirmation, such as in access control systems, time and attendance systems, general computers, and laptops. (11) A fingerprint recognition system usually consists of the following processes: (12,13) 1) Image acquisition Fingerprint images are acquired through specialized fingerprint collectors such as scanners, digital cameras, and smart phones. Different methods are used to collect fingerprints and to divide the acquired fingerprint images into rolling and flat fingerprints.

2) Image compression
Images of fingerprints in a database are usually converted to JPEG, WSQ, EZW, and other files to reduce storage space and facilitate management. (14) 3) Image processing This mainly involves fingerprint area detection, image quality judgment, pattern and frequency estimation, image enhancement, and refinement.

4) Fingerprint analysis
After obtaining the fingerprint features, the system extracts the fingerprint image and then analyzes it. The fingerprint morphological features include centers (upper and lower) and triangles (left, right), and detailed feature points mainly include the start, end, joint, and bifurcation points of the grain. (15)

Structure of Fingerprint Recognizer
In this work, fingerprint sensors are applied as input devices, and the NFC protocol is used as the communication platform to deliver the detected data from the controller to the server. The controller employs the Arduino suite with a Bluetooth module for controlling and receiving sensor information to transmit and monitor the goods in real time.

System design flow chart
The physical architecture of the proposed system is shown in Fig. 1. After receiving data, the sensing module controls the Bluetooth module through Arduino and transmits the data. When the data sensed by the sensing module is transmitted to a smart phone or a notebook computer, the user is provided with correct monitoring information. Furthermore, the LED of the indicator can be controlled remotely and the temperature and humidity values obtained by the sensor can be displayed. In addition, through the identification of a fingerprint, the identity of the person who extracted the item can be instantly recognized. Referring to the architecture in Fig. 1, the functions and diagrams of each part are as follows: 1) Smart mobile devices receive and display temperature and humidity, and switch the LED of the indicator on and off. 2) The Bluetooth module transfers data.
3) A 9A server (personal computer) is used for fingerprint reorganization, database management, and the display of fingerprints and temperature and humidity. 4) The fingerprint recognizer provides a comparison of fingerprints. 5) An Arduino controller is used to control LEDs and Bluetooth modules to send messages.

Hardware elements
A DHT11 temperature and humidity sensor is used in the proposed system. It has a low voltage and low power consumption, and is directly connected to the Arduino controller. It is used in the fingerprint identification module as a dedicated digital module concentration technology to ensure high reliability and excellent long-term stability.

KSR306 fingerprint recognition module
This fingerprint module is an optical fingerprint sensor based on a high-speed and highperformance AS601 DSP processor. For the participation management, the intelligent module has fingerprint recording, image processing, fingerprint comparison, search, and template storage. The features are extracted from the fingerprint image via an algorithm.
The storage, alignment, and search of fingerprints are all carried out by fingerprint preservation and matching processes. The fingerprint matching process is divided into fingerprint alignment (1:1) and fingerprint search (1:N).
Each fingerprint is recorded twice, the two recorded images are processed, and the composite template is stored in the module.
For the reorganization of fingerprint images, the fingerprint sensor is used to record and verify the fingerprint image and process it. Then, the proposed system compares and matches the fingerprint template in the database; this is called the fingerprint comparison mode, i.e., the 1:1 mode. If it matches multiple templates, this is called the fingerprint search mode, i.e., the 1:N mode. The module delivers the results of matching.
The fingerprint identification module can communicate directly with a single chip with a DC 3.3 or 5 V power supply through serial communication. The data transmitter (TD) of the fingerprint module is connected to the data receiver (RXD) on the board. The data-receiving end (RD) of the fingerprint module is connected to the data-transmitting end (TXD).

HC-06 Bluetooth module
In the proposed system, a Bluetooth device is used for data transmission. This module is mainly used in short-distance wireless data transmission. It can be easily connected to the Bluetooth device of the PC in the system, and data can be exchanged between the two modules. This avoids cumbersome cable connections and the need for a serial cable. A connection is between the Arduino's device and the wiring pins of HC-06 that is used for data transmission and set as the Bluetooth device.

Development environment
To create the development environment, we should first download the Android Software Development Kit (Android SDK), Android Development Tools (ADT), and Java Development Kit (JDK) application software. The steps are shown in Fig. 2. After installing the JDK, the Eclipse integrated development environment (IDE) is installed and plugged in the ADT, and Android is set.
To design the app of the mobile device, the following operations of the operating systems, JDK, ADT, and Android SDK are required. The following points explain why these preoperations are required:

1) Operating system
Suitable versions of the Windows operating system package for the proposed system include Windows XP and Windows 7, and the Eclipse development platform. 2) JDK Before using the Eclipse development platform, JDK5 or JDK6 or higher must be installed because the JDK version includes the Java Runtime Environment (JRE).

3) ADT
The ADT is an Eclipse plug-in that should be installed on the Eclipse platform to write Android application development software.

4) Android SDK
This kit comprises the developer resources of Android, such as Android's library, programdebugging tools, and a mobile phone simulator.

Program flow chart
The flow chart in Fig. 3 shows that the Bluetooth serial port is established first. Then, the Bluetooth device is turned on to establish communication, enabling it to control the LED, temperature, and humidity.
For LED control, we first connect the corresponding LED according to the input command via the platform. After setting the platform, the LED will light up. If it is not lit, the proposed system will jump back to the LED control and wait for the command. The current temperature and humidity are displayed on the platform after the Bluetooth device is connected, after which the proposed system can be closed to shut it down.
Referring to Fig. 3, the controller first starts reading image instructions. Secondly, it waits to receive a packet. Thirdly, it reads the instructions to generate a feature. After confirming that the reading is completed, the fingerprint is input and fingerprint images are stored. If the input is successful, then a message indicating successful input is displayed on the platform. The fingerprint execution process is shown in Fig. 4.

Bluetooth connection to Arduino
In this work, we use Arduino as the control unit for sensors and other devices. Regarding the transmission between Arduino and the HC-06 module, they communicate through the serial interface, that is, via the Tx and Rx pins. As long as the data is written to the HC-06 module through the above serial interface, mutual data transmission can be performed, and the received data is also transmitted through the serial interface.
The HC-06 module is combined with Arduino. The single-point transmission function is used. The data can also be transmitted among different sensors. In this manner, the sensors can be connected to Bluetooth by the controller. The interface of the app on the Android mobile devices used to control the system includes search, connect/disconnect Bluetooth device menus, message transfer windows, buttons, and so forth. In the interface, the message transfer window should contain a label, a text box, and buttons.
Because Android phones block programs with an unknown source, before installation, the setting should be changed to allow the installation of programs from unknown sources.
While Arduino is connected to Android, the phone is turned on to start Bluetooth. Then, the password is entered and the Bluetooth MAC will transmit fingerprint images.

Bluetooth connection to Arduino and PC
Arduino is disconnected from the PC side during subsequent processing. Therefore, to receive the packet data returned to the computer via Bluetooth, a set of software must be installed to receive COM port packets on the receiving computer.
Before the Bluetooth module on Arduino sends data to the PC, it is necessary to turn on Arduino and open an appropriate communication port (COM port) for the Bluetooth module on the computer.
After selecting the COM port, it is necessary to check that the baud rate matches that on the Bluetooth module. For example, the baud rate on the Bluetooth module is 115200. Thus, in the Tera terminal of the PC, the baud rate must also be 115200.

Database specifications of fingerprints
In this study, the KSR306 fingerprint recognition module is combined with an optical sensor. To reduce the required recognition time, memory space, and cost, the technology of 1:1 fingerprint comparison, which is embedded in the KSR306 module, is utilized and Office Access is used as the database to store and update the fingerprint data via the average position method for paired fingerprint feature points. To reduce the time for fingerprint comparison, effectively improved features are employed in the fingerprint feature point comparison to enable similarity measurements.

Human interface of mobile smart devices
The proposed system will complete the following actions when the mobile device is turned on.

1) Bluetooth matching
When the program is turned on, the button indicating the Bluetooth device search is pressed. This search will start and nearby Bluetooth devices will be searched for.

2) LED control
The LED indicates that the Bluetooth device is working. When the power is turned on, the red LED will be lit, and the Bluetooth device is working. On the contrary, when the power is turned off, the LED will be switched off, and the Bluetooth device is idle.

3) Temperature and humidity display
The value of humidity represents the current ambient humidity as a percentage, and the value of temperature represents the temperature of the current environment in Celsius.

Display results of temperature and humidity on PC side
If the Bluetooth and the temperature and humidity sensors are working, the temperature and humidity data are received by the computer from Bluetooth. The sensed information of temperature and humidity on Arduino is passed to the computer through the HC-06 Bluetooth module. The data are also transmitted back to the computer from the Arduino side via Bluetooth, so the Arduino device is no longer restricted by the route.

Fingerprint identification interface
The fingerprint module is connected to the computer using the connector of the USB. When the system is turned on and the COM port is selected successfully, all the functions will be opened. The fingerprint identification system is composed of the following: Firstly, the fingerprint and all fingerprint images, and recognized files are stored here. The interface shows the fingerprint currently being compared.
If this identification module is working, then the comparison functions can be started. The module can compare up to 1000 data at a high speed as shown in Fig. 5. Finally, the displayed fingerprint ID and working time are shown in Fig. 6.

Fingerprint identification analysis
In this section, the analysis of fingerprint identification is introduced. The analyzed factors are storage time and comparison time as shown in Fig. 6. 1) Fingerprint identification data Sample fingerprint images are created from the five right fingers of six people. Figure  7 shows that the index and little fingers are the best fingers for fingerprint comparison with a comparison time of milliseconds because fingerprint alignment is based on human body conditions. 2) Fingerprint identification/comparison time Referring to Table 1, which shows the time required for fingerprint comparison, the longer the time required for the comparison, the more likely failure to identify a fingerprint occurs. 3) Storage time required for fingerprint identification Figure 8 shows the storage time required for fingerprint identification, which suggests that the time for thumb storage is the shortest, because it is the image with the largest area, making it good for analysis. The experiment reveals that the valley and grain of the little and index fingers can be read in milliseconds.

Conclusions
We have discussed how to apply fingerprint identification technology to an intelligent warehouse management system. Fingerprint identification is used with temperature and humidity sensing and LEDs, and Bluetooth is used to connect a mobile phone used as a control system and to identify fingerprints.
When a fingerprint is recognized, the system can immediately identify whose fingerprint it is. If the fingerprint is not archived in the database, an error message will be shown after a comparison with the other stored fingerprints. When the comparison is successful, the manager will receive a record of the identification.
The components of this proposed system are very cheap and easy to manage, and it is easy to install the system on site. In addition, the Bluetooth module is used to receive and display the temperature and humidity, so people can also use their mobile phone to control LED lights indicating the position of goods, making it easy to find them in a huge warehouse.
A current trend is to use mobile devices as control systems. Another feature of the proposed system is the control of multipurpose features through a handheld device. In conclusion, fingerprint identification is used to manage goods in a warehouse. The advantages of this system are summarized as follows: 1) The device has a low cost, is easy to install, and has a high cost/performance ratio.
2) The device can be widely used, such as in wardrobes or warehouses.
3) The temperature can be displayed immediately. 4) A mobile device can be used as a displayer.