Development of Laboratory Equipment Inventory System Using Radio Frequency and Internet of Things

The purpose of this research is to create a laboratory equipment inventory system. With this system, users, namely lecturers, lab assistants, and final project students, can find out the borrower's data, borrowing time, return time, and the tool availability status. The research method used is experimental. This system is based on IoT technology. The main brain from the hardware side uses the NodeMCU ESP8266. NodeMCU, apart from being a controller, can also function as a WiFi module. On the server-side, PHP and MySQL are used. When the user wants to borrow a tool, the user can use an RFID tag to open the cupboard. Furthermore, the NodeMCU will continue to scan for the presence of items in the cupboard using a radio frequency with RF433MHz. This information is sent to the server when the cupboard is closed and locked automatically. The server will receive the information and decipher the information. As a result, the testing process in this study proved that the system has been able to detect the presence of items in the cupboard and track anyone who borrows laboratory equipment with a 100% success percentage.


INTRODUCTION
The laboratory in an educational institution is usually used to carry out the learning process related to practicum. In addition, the laboratory is used by laboratory assistants for research and students who are researching their final project. The laboratory has many tools that can be used or borrowed by laboratory lecturers and students. Furthermore, lecturers and students will be referred to as users. Laboratory users can borrow tools. The large number of users borrowing equipment and poor record-keeping of borrowing equipment can increase the gap between equipment loss and damage without knowing who is responsible. Therefore, for management and security in the use of laboratory equipment, a recording system or equipment loan log can be used.
Many pieces of research related to laboratory equipment inventory have been carried out. One of them is a study conducted in 2018, wherein its implementation uses a barcode for borrowing goods and requires a special operator [1]. Another research was conducted in 2020, wherein in this study, the borrowing process was still manual by using a form on the application [2]. Both studies went well, however from the two studies, there was no security to secure the equipment cupboard and detect the presence of tools in the cupboard.
Still, in 2020, there are other studies related to laboratory equipment supplies. The system uses an RFID system that can detect the presence of goods in the laboratory [3]. However, in this study, the system only checks the existence of the goods and does not recognize who is borrowing and using the goods in the laboratory.
In general, some previous studies only focused on borrowing using forms, and there was no security for both cupboards and tools, and in other studies, only focused on checking the existence of laboratory equipment. In this study, the system built will be able to find out who opened the tool cabinet, who borrowed laboratory equipment, borrowing time, return time, and can be seen if the tool is not in the cupboard. The advantage of the system is that users can take the equipment they need in the laboratory independently and can directly use the equipment. This can be solved by utilizing Internet of Things (IoT) technology. By utilizing IoT, we can combine electronic devices as well as controllers, sensors, and the internet to obtain data and manage devices [4], [5]. In addition to getting data, we can also exchange data with the target device [6], [7].
In this system, users can borrow equipment using a previously registered RFID card. Users can unlock cupboards by doing the RFID card tagging process. Furthermore, the user just takes the items from the cupboard, and later it will automatically be directly recorded on the server. From the hardware side, NodeMCU ESP8266 is used as the main brain of the system. NodeMCU ESP8266 will record who opened the cupboard and continue to perform the scanning process regarding the presence of items in the cupboard using radiofrequency. To send and receive radio frequencies in this system, the RF433MHz module is used, and NodeMCU is equipped with RF433MHz Tx and the Rx side in the Arduino Nano.
Each RF433MHz Rx module is connected to an Arduino Nano as an equipment tag. The reason for using tags with Arduino Nano and RF433MHz is because they are more efficient in terms of price compared to using UHF RFID, as in previous studies [3]. If we use UHF RFID, both the reader and the tag, the scanning distance will be further compared to using the RF433MHz module without an antenna. UHF RFID generally has a scan distance of more than 5 meters [3], and some even have a scan distance of 10-15 meters. This will make it difficult to detect who took the tool from the equipment cupboard.
Furthermore, NodeMCU ESP8266 will send the result information to the server online. The information sent to the server is when the cupboard is locked back by the borrower. The information contains the user's RFID card code and the items retrieved by the user. The borrowing and returning times are taken from the server time when the update process occurs. This system is also given a notification in the form of a buzzer sound when the door is forced open and damages the cabinet where the tool is stored. From the server side, there is a web application that can be used to view a list of users and see the availability of goods accompanied by a log of equipment borrowing. As a side note, the number of tags in this study is limited to 6 pieces only. This amount can be increased as needed.
From all the explanations above, it can be concluded the advantages and disadvantages of this research. The advantage of this research is that it facilitates the process of borrowing equipment and can track who borrows equipment. It further facilitates tracking when faulty equipment is detected. The shortcoming of this research is in the resource on the equipment tag, which requires careful maintenance regarding the replacement of the battery used in the tag.
Despite the advantages and disadvantages, this research still has a contribution. The contribution of this research is in the form of a system that can be used in the laboratory of a university or institution that has relatively expensive equipment and requires supervision and logs related to the equipment in it.

RESEARCH METHOD
The method used in this research is the experimental method. In this method, various experiments are carried out following the relevant theoretical basis [8]. In the implementation, various designs, simulations, and tests are carried out following the theoretical studies that have been obtained. This was done to achieve the initial objectives of this research. These steps can be illustrated in Fig. 1.

Study of Literature
At this stage, various studies are carried out on the necessary theories. In addition, looking for previous research related to this research as a supporter and also making comparisons in each study to get updates in research.

Design
The next stage is the design stage. At this stage, the hardware and software designs are made. The hardware design includes system block diagrams and system circuits. Software design includes algorithms for hardware and web applications. The block diagram of this system is shown in Fig. 2.

Fig 2. Inventory system block diagram
The main brain of this system is the NodeMCU ESP8266. NodeMCU ESP8266 is a System on Chip (SoC) equipped with a WiFi feature [9]. The ESP8266 NodeMCU hardware is built based on the ESP-12 module [10]. NodemMCU has a core L106 processor from Espressif that can run at a frequency of 80MHz and has a RAM of 224KB [11]. For peripherals, NodeMCU is equipped with 10 GPIO pins, 1 analog pin, and a pin for SPI communication [12]. In this system, the NodeMCU is connected to the RF433MHz Rx module to scan the presence of equipment. Each piece of equipment will be tagged in the form of RF433Mhz Tx, which is already connected to the Arduino Nano. This RF433MHz module itself is a module that can be used to send data using radio frequencies. The modulation used in this module is amplitude shift keying (ASK) [13]. This module has a bit rate of 9.6Kbps [14]. The input voltage range for this module to operate is between 3V-12V [15].
Each RF433 Rx module is connected to an Arduino Nano. The data sent from the Arduino Nano to the NodeMCU is a special string that is unique to each device. Arduino Nano uses ATMega328 [16]. Arduino Nano is equipped with a 16MHz crystal, digital pins, and analog pins [17], [18]. The language used to program this board uses the C language [19].
In this system, we use RFID. Generally, RFID consists of a reader and a tag or more [20]. An RFID reader is used to authorizing access to the use of the tool cupboard. The RFID reader used in this system is RFID MFRC522. RFID itself works based on electromagnetic fields [21]. This type of RFID module uses a frequency of 13.56KHz [22]. The communication line for this MFRC5222 uses the SPI pin [23]. In this system, relays and solenoids are used, which function as tool cupboard locks. The relay itself is an electronic switch that will work when the current passes through the coil and changes the position of the switch [24]. Limit switches are used to detect when there is an opening of a tool cupboard without access. Limit is included in the mechanical sensor [25]. The output value of this limit switch is a digital value of 0 and 1 [26]. If this happens, the NodeMCU will activate the buzzer.
On the server-side, PHP and MySQL are used. PHP is used in this system because it is included in a web programming language with a type of server-side scripting and can be inserted into HTML or vice versa [27], [28]. This PHP plays a role in the backend [29]. The data on the server will be stored in the database, and in this case, it is stored using MySQL. MySQL belongs to the type of RDBMS [30]. source and can be accessed with PHP easily [31]. After getting the appropriate block diagram, the next step is to create a circuit for this system. The circuit of this system is shown in Fig. 3.

Fig 3. Inventory system electronic circuit
In Fig. 3, it can be seen that on the right side of the image, there is a circuit with the NodeMCU ESP8266. The circuit is the main circuit that will function to scan equipment using radio frequency (RF433MHz Rx) and serves to secure access rights to equipment cabinets. The power source for the circuit on the NodeMCU uses a DC adapter.
On the left of Fig. 3, you can see a lot of Arduino Nano. All Arduino Nanos are connected to the RF433MHz Tx module, which will serve as a tag for each piece of equipment. The image does not describe the resources used for reasons of the adequacy of image size. In its implementation, the power source for each Arduino Nano series uses two CR2302 batteries. The next section is the software design section. First, the software design for NodeMCU. The following is a program flow design written in the form of a text algorithm: 1. Start 2. Initialize I/O and variables 3. Activate the connection to the server 4. Read RFID 5. Are any tags recognized? 6. If there is no tag recognized, then: a. Read sensor limit switch b. If the limit switch sensor is zero, then turn on the buzzer. c. Back to point 4 7. If any tags are recognized, then: a. Save tag code to a variable b. Activate relay and solenoid c. Read limit switch (the limit switch will be 0) d. Scan all the equipment in the cupboard, then save each tag to a variable and save the amount to the data_scan variable. e. Is the limit switch value = 1? f. If yes, then:  Lock the cupboard by deactivating the relay and solenoid  Send the tag code and all the results of scanning tag data to the server using the POST method  Back to point 4. g. If not, then return to point 7.d.
Next is the flow of the data reception program for the server-side using the PHP programming language. The following is a program flow design written in the form of a text algorithm: 3. If yes, accept the data then parse it into a variable 4. Compare the code of each received tag with each tag code that has the status of "Not Available" in the database. 5. If there is a matched tag code, then the status update becomes "Available" and updates the return time in the database table. 6. If there is no match, proceed to point 7 7. Compare each tag code with the "Available" status in the database. 8. If there is a code tag that is not found in the data sent by NodeMCU, then create a new row in the database table containing the item code, item name, status to "Not Available" and update the loan time according to server time.

Simulation
At the simulation stage, various experiments related to the program were carried out. The program for NodeMCU is debugged and simulated using the Arduino IDE serial monitor, while the PHP program is debugged using a browser.

Implementation and testing
In this implementation and testing stage, all elements of this research are combined where the NodeMCU block, tag block, server are connected, and web application development using PHP. Furthermore, everything is executed according to the initial destination scenario. The testing process at this stage is carried out in parts and as a whole according to the scenario of the initial purpose of the study.

RESULTS AND DISCUSSION
In the system that was built, users can borrow equipment even though there is no guarding officer. Borrowing can also be done even if the borrower does not record the goods borrowed. The research was conducted in 2018 and 2020, where the recording of equipment borrowing uses a form and without securing the equipment cupboard so that it has not been able to detect the presence of equipment in the cupboard [1] [2]. Another study in 2020 was able to detect the presence of equipment in the cupboard but could not detect who the borrower was [3]. Meanwhile in this study using RFID to detect the identity of the borrower and radiofrequency to detect the presence of equipment in the cupboard. Users of this system are lecturers, lab assistants, and final project students. The three users can borrow equipment in the laboratory. The three users have an RFID tag that contains the user's identity. RFID tags are used to open equipment cabinet doors. If the RFID tag is recognized, the appliance cabinet door will open. However, if the RFID tag is not recognized, then the equipment cabinet door will not open.
Once the RFID tag is recognized, and the cabinet door is opened, the alarm system will be deactivated, and the user can borrow equipment. When the user closes the cupboard door, the cupboard door will be automatically locked, and the alarm system will reactivate. However, if the door is forcibly opened, the buzzer that functions as an alarm will turn on.
NodeMCU will scan the presence of all equipment in the cupboard using radio frequency based on the tag on each piece of equipment. Furthermore, the user data recorded from the RFID tag and the data scanned by the equipment will be sent to the server by the NodeMCU ESP8266. The data will be received on the PHP page and then processed. Processing is done to record user data and get the status of borrowing and returning the tool.
Users can view the history of the loan and the availability status of the equipment on the PHP page. They are starting from the index page of the inventory web application to the equipment borrowing log page. A normal user can only see the index page and equipment borrowing logs. The test results for the "home" page display are shown in Fig. 4. Meanwhile, the admin has access to registered user data so that they can add and delete registered user data when needed. Fig. 4 shows the initial page that opens after the authorized account, either the admin or user has successfully logged into the system. After successfully logging into the system, the user can directly open the tools.php page, which contains the equipment loan log. From this page, the user can track who borrowed and returned the equipment or who had not returned the equipment are shown in Fig. 5.
Based on Fig. 5, it can be explained that users could see the status of the availability of goods and anyone who borrows or returns equipment to the equipment cupboard accompanied by the time of borrowing and returning. The history of borrowing goods marked in red indicates that the goods have not been returned to the equipment cupboard.  Testing on the tool is also carried out to ensure the system built is functioning properly. Testing is divided into three parts, namely cupboard security testing, tag data scanning testing, and data transmission testing. Test results related to cupboard security involving RFID, relay, door lock solenoids, limit switches, and buzzers are shown in Table 1 In Table 1, it can be seen that the equipment cupboard access feature has been 100% successful. Testing is done by using 5 samples of RFID tags that have been registered. All of these cards can be recognized by the NodeMCU, and then the NodeMCU successfully activates the relay and solenoid related to opening the cupboard lock. Furthermore, NodeMCU managed to disable the function of the limit switch through the program, and of course, the buzzer would still not activate. The next two tests show an example of a test where no RFID tag is recognized, but the limit switch is HIGH, which indicates a safe state, and the system remains on standby. The next three tests, namely at points 8.9 and 10, are tests when the cupboard is forced to open so that the limit switch is LOW and automatically NodeMCU recognizes this as a violation of access rights, and then NodeMCU activates the buzzer. Testing of this feature can be concluded successfully with a percentage of 100%.
The next test is a test related to the scanning of each tag by NodeMCU. All tags have been assigned a special string to be recognized. The string will be sent and received by NodeMCU. The results of testing this feature are shown in Table 2.
In Table 2, it can be seen that NodeMCU has successfully received string data from each tag. This testing process is carried out 10 times simultaneously for all tags. Based on this, it can be concluded that the testing of this feature is 100% successful. The next testing process is the most crucial process of this system, namely the process of sending data from the NodeMCU to the server. The results of this test are shown in Table 3.
Based on the test results in Table 3, it can be said that NodeMCU succeeded in sending data to the server. The data sent contains the tag code and all scanned tag data. The data was successfully received on the destination page by using a POST request and successfully stored in the database. From 10 times of testing, all of these delivery processes were completely successful with a percentage of 100%. From all these tests, it can be concluded that the laboratory equipment inventory system using radio frequencies and the internet of things has been running well where this system already has an equipment cupboard security feature, has an automatic borrowing log, and allows users to take the equipment needed independently without requiring operators while in other studies the borrowing process is still manual with forms, there are no features related to cupboard security [1], [2] and in other studies only focus on detecting the presence of goods [3].

CONCLUSION
The laboratory equipment inventory system using radiofrequency and the internet of things have been running well according to the initial purpose where in this system users can take the equipment they need in the laboratory independently, and the system knows who opened the tool cupboard, who borrowed laboratory equipment, borrowing time, return time and can be seen if the tool is not in the cupboard with a 100% success percentage. For further development, email notifications and messages related to equipment borrowing deadlines can be added.