A Filament Supply System Capable of Remote Monitoring and Automatic Humidity Control for 3D Printer

In this paper, we suggest an edge computing system for 3D printers that can monitor and control the relative humidity inside the filament supply. To this end, we studied changes in the stress-strain curve from a 3D-printed object owing to the humidity-sensitive characteristics of the polylactic acid (PLA) filament. The filament supply system is equipped with a relative humidity and temperature sensor and a photo interrupter in order to obtain data; a server is implemented using a Raspberry Pi to remotely monitor the temperature and humidity inside the filament supply and to monitor its state. In addition, a humidity control system (manufactured using a Peltier module) allows users to remotely control the humidity level inside the supply system. In conclusion, an integrated monitoring system was constructed with a filament supply system and the abovementioned functions, and was then integrated into an existing 3D printer monitoring system. This monitoring system can be used to constitute a stable environment for research on 3D printers.


Introduction
Edge computing is a system technology built to perform computing on a platform near the user rather than on a server such as a data center. A contrasting concept is cloud computing. Edge computing solves network communication problems such as lack of bandwidth and long latency between devices and servers, a disadvantage of cloud computing. Edge computing can also be deployed in environments that are not connected to the Internet. This allows users to build more effective systems in specific situations [1].
Due to the inconvenience of 3D printers requiring a very long printing time, there is already a variety of edge computing systems for 3D printer monitoring on the market [2]. The functions of most systems focus on monitoring and controlling the inside of the 3D printer chamber, including heated bed temperature monitoring and control, nozzle control, real-time video image output of the inside of the chamber, and a G-code viewer.
Meanwhile, filaments are the main materials in 3D printing, and they have inherent properties. These properties of filaments allow users to produce 3D-printed objects with specific characteristics and to use the products for the intended purposes [3,4]. However, the material properties of filaments are influenced by various factors. One of the major factors affecting the characteristics of filaments is humidity. For example, if the polylactic acid (PLA) filament is exposed to high humidity for a long time, the filament has decreased tensile strength at the time of printing, and makes bubbles occur on the surface of the output [5]. In addition, PLA is sensitive to humidity, and exposure to high humidity causes changes in its properties. It has been reported that as humidity increases, average molecular weight, elongation percentage, and degradation rate decrease [6].
This research was conducted to support 3D printing projects used to manufacture rehabilitation equipment. Due to the characteristics of the rehabilitation equipment, it must withstand a large load. In addition, the stability and reliability of the 3D-printed object are very important factors and, if bad, can lead to serious accidents. Therefore, it is essential to keep the environmental humidity constant when storing and using PLA filaments.
On the other hand, a 3D printer monitoring system with functions for monitoring and managing the filament supply environment is difficult to find, and many users generally control humidity by using a dehumidifying agent such as silica gel [7]. However, this approach makes it difficult to obtain a uniform 3D-printed object, because not only is it necessary for users to periodically replace the moisture absorbing product, but it is also difficult to maintain a constant humidity level.
To develop an edge computing system for monitoring the 3D printer filament supply, in this paper, we first performed tensile testing [8] with PLA filaments exposed to various humidity conditions in order to investigate the effects of humidity on them. Then, based on the experimental data, a filament supply and remote monitoring system was constructed to maintain a stable filament supply environment by using a relative humidity and temperature sensor, a photo interrupter sensor, and a Peltier module.
2. Properties of 3D-Printed Objects from PLA Filaments Exposed to Various Humidity Environments 2.1. Tensile Testing of 3D-Printed Object. In this paper, a tensile test was performed to measure changes in the tensile strength of PLA 3D-printed objects according to the humidity level. Tensile testing determines how much a material is stretched when pulled and how long it remains unbroken. We compared the results of experiments using the stressstrain curves of 3D-printed objects obtained through tensile testing [9,10]. Stress-strain curves represent the relationship between stress and strain, and a material has a unique stress-strain curve regardless of volume or size. However, if a material such as PLA is exposed to humidity and the stress-strain curve changes, this means that the PLA properties have changed due to humidity. Several values are required to obtain the stress-strain curve and they are shown as follows: The gage length and nominal cross-section area are static values depending on the specimen type.
Nominal cross-section = width × thickness: The specimen used for tensile testing was the ASTM D638-03 Type IV [11]. The gage length (G) of the specimen was 25 mm, and its nominal cross-section was width ð6 mmÞ × thickness ð4 mmÞ = 24 mm.
The 700 g of white PLA filament at 1.75 mm that was used for tensile testing was obtained from Sindoh Co., Ltd. For the comparative experiment, the filament was exposed to relative humidity levels of 30%, 60%, and 90% at a fixed temperature of 40°C during an exposure time of four hours. Immediately after completing the exposure of the filament to humidity, 3D-printed objects were produced from the ASTM D638-03 Type IV specimen. Tensile testing was conducted using a tensile testing machine, as shown in Figure 1, and the test speed was set at 50 mm/min.  Figure 2 showing the results based on relative humidity did not show any significant differences in yield strength and ultimate strength. However, we can see that the strain value of the necking region, which refers to the section from the ultimate strength to the fracture point, varies depending on the relative humidity. This indicates how long each specimen withstood stress until a fracture occurred after reaching its ultimate strength. Figure 2(d) shows a comparison of the strain values of the necking region for each level of humidity. The test results were as follows.
First, the 3D-printed objects from filaments exposed to 30% humidity tended to show regular values. The values for 60% humidity and 90% humidity showed relatively irregular distributions, and the average strain values were also observed to have a shorter period. Compared to the 3D-printed objects from filaments exposed to 60% humidity and 90% humidity, in the 3D-printed objects from filaments exposed to 30% humidity, the average strain value of the necking region was relatively longer and strain values were relatively regular. On the other hand, for filaments exposed to 60% or 90% humidity, the lengths of the necking regions were uneven, with a mixture of very short or long necking regions, and the average strain value of the necking region was low.
As a result, 3D-printed objects from PLA filaments exposed to higher humidity are more easily broken, on average, and gets less uniform. On the other hand, it was found that if PLA is exposed to low humidity, the tensile strength of the 3D-printed object is increased, it is not easily broken, and it is more uniform.
In a variety of research using 3D-printed objects, the differences in tensile strength among them may create errors. In this study, a filament supply system with a humidity control function was developed to supplement the high sensitivity of PLA filaments to humidity, as described above, and a system for remote monitoring and control of the internal environment was implemented.

A Filament Supply Monitoring System Using a Photo Interrupter
It is essential to enable users to know the timing of filament replacement to constitute a stable 3D printer research environment. If you are not able to immediately recognize the exhaustion of the filament, and thus, leave it in that condition 2 Journal of Sensors for a long time, considerable temporal resources are wasted; and if the 3D printer stops in the middle of the printing process, the finished product will not have the quality desired by the user. Generally, in 3D printing, a spool is used to supply the filament smoothly. The spool is made in the shape of a cylinder with a central opening so the filament is supplied smoothly while the spool is rotating.
Some companies use smart chips to inform users when to replace filaments. In this case, a smart chip is attached to the filament spool to check how many times the spool has rotated, and to inform the user as to the amount of filament remaining and the replacement time, based on the data. However, since the used amount is estimated based on measurement of the number of rotations, it sometimes happens that although there is actually filament remaining, it is incorrectly judged to be exhausted. The smart chip is inconvenient in that it needs to be replaced with a new one each time the filament is replaced.
In order to solve these problems, we developed a monitoring system that enables the user to check the supply state of the filament and the stock exhaustion in real time through a photo interrupter.
The filament supply monitoring device was constructed using a photo interrupter and a perforated spool. The photo interrupter recognizes that the filament spool is rotating, the revolutions-per-minute (RPM) values of the spool are obtained in real time based on the data transmitted by the sensor, and the values are displayed in a GUI-based Web monitoring system. Therefore, if there is a problem with the filament supply in the 3D printer, the user can immediately recognize the problem via Web connection even from a remote place.
The specific implementation is as follows. The photo interrupter is composed of a light-emitting element for transmission and a light-receiving element, and the two parts are aligned facing each other, as shown in Figure 3. Transmit-ting light is done periodically, and when there is no object between the transmitter and receiver, the light reaches the phototransistor in the receiver. When there is an object between them, the light does not reach the receiver. At this time, the photo interrupter recognizes the presence of an object through the signal indicating the light has not arrived.
To supply the filament smoothly, as shown in Figure 4, the filament supply system includes two columns for mounting the filament in the center of the filament supply and a rotating shaft on the mounting column so the spool can rotate. Then, the photo interrupter is installed under the mounting column at a position where the filament spool passes.
The filament spool is perforated on the edges at regular intervals, as shown in Figure 5, and the holes are formed at intervals of five degrees based on a circle of 360 degrees. [12,13]. While the filament is supplied, the spool rotates. At this time, the photo interrupter recognizes the holes placed at regular intervals. RPM is calculated using a perforated spool and the photo interrupter, and the timing of filament replacement is monitored by this method.
The RPM value is determined as follows: 72 × millis 1000 1 round = 60 s : x round, ð5Þ The photo interrupter reads the values 0 or 1, and the millis function given as the Arduino reference is used to determine the time taken from one hole to the next [14]. Since the value of the millis function is given in milliseconds, the value is converted into units of seconds by dividing it by 1000. If you multiply that value by 72, which is the total number of holes, the time taken for one rotation is obtained. To obtain the current RPM value, multiply the value obtained above by 60. The value can be obtained through the proportional formula shown in (5), and if 833.3333…, it is divided by the millisecond value so the desired RPM value is obtained. If the RPM values obtained through the photo interrupter are constant values, it means that the spool is continuing to rotate. Based on this, it is judged that the filament is continuously supplied. An abnormal condition in the rotation (like stoppage) indicates that there is a problem.
The photo interrupter is controlled by Arduino UNO based on the ATmega328 microcontroller. Programming was conducted using the Arduino integrated development environment (IDE) [15,16]. The programming language was C/C++. The programs were compiled through the AVR-GCC compiler, and serial communications were executed with a Raspberry Pi 3 model B, which is used as a server, through a USB serial port. The filament supply monitoring system is implemented in a such way that the user can perform monitoring from the GUI-based Web platform so that the user can quickly recognize and fix problem situations.   We constructed a system that allows users to monitor the temperature and humidity level inside the filament supply using a DHT22 sensor and to control humidity inside the filament supply using a Peltier module. In addition, the system was implemented in such a way that the functions can be utilized in a GUI-based Web platform through the Raspberry Pi server.
First, the DHT22 sensor measures the temperature and relative humidity inside the filament supply. The humidity measurement range of the DHT22 sensor is 0-100% RH, and the temperature measurement range is -40 to 80°C. The humidity measurement error is ±2% RH, and the temperature measurement error is ±0.5°C.
The Arduino UNO is used to get the data from the DHT22 sensor. After the Arduino UNO connects with the DHT22 sensor, the DHT library (one of the Arduino libraries) is used to get the data from the DHT22 sensor. Depend-ing on the data in the datasheet, the values measured by the sensor are taken every six seconds to reduce errors.
In order to provide the monitoring function in a userfriendly way, the filament supply monitoring system is implemented using a GUI-based Web platform. The Raspberry Pi is used as a server, and it is connected with the Arduino UNO, which enables exchanging information by serial communications. The photo interrupter described earlier is also composed in the same way. As shown in Figure 6, the photo interrupter and the DHT22 sensor are both connected to the Arduino UNO, and each Arduino UNO performs serial communications with the Raspberry Pi. As shown in Figure 6, the filament supply monitoring system, which is implemented based on the data received from each sensor, is integrated along with the filament supply monitoring system into the GUI-based Web 3D printer monitoring system. This allows the user to simultaneously monitor the state inside the 3D printer chamber and the filament supply on a single screen.

Humidity Control inside the Filament Supply.
There are two ways to decrease the humidity level in an enclosed space. The first method is to install a moisture absorber, and the second is to cool the moisture in the air and discharge the cooled moisture outside the enclosed space. The first is an easy way, but it is impossible to maintain a constant humidity level, and it involves the inconvenience of the periodic replacement of the dehumidifying agent. If we use the second method, it is possible to maintain a specific humidity level and automate the humidity control. However, there can be some difficulties in implementing it.
In this paper, the humidity control system is implemented with the second method. As mentioned earlier, 3D printing takes a very long time, so it is inconvenient to replace a dehumidifying agent periodically during that long printing time. In addition, it is necessary to maintain a constant level of humidity in order to obtain uniform output. So, we use a Peltier module to implement humidity control.

Journal of Sensors
A Peltier module is an electronic module using the Peltier effect [17][18][19], which is a phenomenon where one side is heated and the other side is cooled when an electric current passes across a junction between two materials. Generally, it is used in household appliances, such as small refrigerators, and since there is no drive part, there is no noise except for the noise of the cooling fan.
The humidity control device is composed of a cooling module utilizing the Peltier module, an electrical power supply, a relay module to turn power on and off, and a DHT22 sensor (described previously) for maintaining a specific humidity level.
The cooling device is composed of the Peltier module, a heat sink, and a cooling fan. As shown in Figure 7, the heat sink and the cooling fan are placed on the heated side of the Peltier module so that heat can be effectively discharged. The size of the cooling fan is 60 mm × 40 mm and its electric power consumption is 70 W. For the power supply, a product with specifications of 12 V, 6 A, and 75 W is used, and for the relay module, a one-channel 5 V module is used.
The DHT22 sensor monitors the temperature and humidity inside the filament supply using the humidity data transmitted from the sensor, and at the same time, controls the on/off function of the relay module using the humidity data. As shown in Figure 8, if the current humidity level transmitted from the DHT22 sensor is 55% and the user's desired humidity level is 35%, the relay module will con-tinue to operate the cooling module until the humidity level measured by the DHT22 sensor reaches 35%. If dehumidification proceeds and the humidity level drops below 35%, the relay module turns the power off and the cooling module is turned off. The function to control humidity is included in the GUI-based Web 3D printer and filament monitoring system.

A Filament Supply Monitoring and Humidity
Control System Figure 9 shows the overall appearance of the filament supply system. Figure 9(e) is a representation of the whole composition of the filament supply. Figure 9(a) is the DHT22 sensor installed inside the filament supply. Figure 9(b) shows the mounting column for the filament spool inside the filament supply, and the Peltier module is installed with its cold side positioned toward the inside of the supply device. Figure 9(c) is the power supply installed outside the filament supply, the heat discharge part of the cooling module with the Peltier module, the relay module for controlling the power supply according to the internal relative humidity data delivered from the DHT22 sensor, and the Arduino UNO. Figure 9(d) is the photo interrupter installed inside, based on the positions of the holes of the spool, and the data detected by the sensor is transmitted to the Raspberry Pi through the Arduino UNO connected to the sensor. Figure 9(f) is a cooling device which is composed of the Peltier module where the hot side is combined with a heat sink for efficient heat discharge, and with a cooling fan for cooling the heated half. When the relay module is on, power is supplied to the cooling device and the Peltier module. Figure 9(e) is the overview of the filament supply system developed in this paper, and it shows components such as the Raspberry Pi acting as a server, an Arduino UNO connected to the photo interrupter, a DHT22 sensor, and a relay module connected to the Arduino UNO. Figure 10 is a screen to enable users to monitor the inside of the 3D printer chamber and the filament supply, and to control humidity with the GUI-based Web-integrated monitoring system for usability [12]. The server framework used was Python Flask [20]. The data obtained through the sensor is shown in the upper center of the screen in real time so the user can perform monitoring. If you enter the desired humidity value in the input space of humidity control and click the setting button, humidity is automatically controlled to reach the set level. Because this system was built in addition to an existing system developed based on the Web environment, it can be used from anywhere it is possible to access the Internet.

Filament Supply Monitoring and Humidity Control
System Performance Measurement. In order to measure the performance of the humidity control system developed in this paper, we conducted an experiment to compare its performance with that of a general installation-type dehumidifying agent. For this purpose, a general dehumidifying   Journal of Sensors agent using calcium chloride was used, and its specification for moisture absorption was 570 ml. The experiment started at an indoor environment humidity level of about 55%, and the time required to reach the target humidity level of 35% set by the user was compared. The humidity level was measured once every six seconds using the DHT22 sensor installed inside the filament supply system, and the results shown in Figure 11 were derived based on the measurement data. First, comparative experimental results show that the time taken to reach the target humidity level set by the user is shorter when the humidity control system using the Peltier module is used, compared to when a conventional dehumidifying agent is used. The time taken to reach relative humidity of 35% was about 27 minutes when the Peltier module was used and about 91 minutes when a dehumidifying agent was used.
In addition, when the humidity control system is used, the operation of the system is temporarily suspended after the humidity level set by the user (35%) is reached, in order to maintain the target humidity. On the other hand, if an installed dehumidifying agent is used, humidity cannot be kept at the desired level, so it continuously decreases the humidity level. Moreover, as shown in Figure 12, in the case of an installed dehumidifying agent, if the moisture amount exceeds the maximum dehumidification capacity of the product after a certain period of time, the dehumidification performance of the dehumidifying agent is lowered, and thus, it fails to perform humidity control. For this reason, periodic replacement of dehumidifying agents is essential when humidity control is performed using a dehumidifying agent.
Using the humidity control system utilizing the Peltier module, users can remotely set a desired humidity level and maintain it at any high relative humidity, so a more reliable and stable environment can be constructed in constituting an experimental environment. In addition, humidity control    7 Journal of Sensors can be performed remotely by utilizing the abovementioned integrated GUI-based Web platform monitoring system, since humidity control is automatically performed by an electrical power system without requiring manual replacement of dehumidifying agents.

Conclusions
In this paper, we conducted research on an edge computing system for filament supply monitoring and humidity control that enables users to monitor the supply state of the filament material as well as the 3D printer, keeping the humidity level of the filament-supplying environment constant in environments for 3D printing research.
First, we analysed the effects of humidity on PLA, which is one of the most commonly used materials for 3D printing, based on the stress-strain curve obtained by tensile testing. As a result of the tensile test, we found that when exposed to high humidity, the average strain value of a PLA 3Dprinted object in the necking region decreased, and the strain values became less uniform. In order to solve this problem, we developed a filament supply system that can maintain a constant humidity level inside the filament supply using a Peltier module.

Journal of Sensors
In addition, the 3D printing process takes a long time, which necessitates remote monitoring. Therefore, we implemented a GUI-based Web monitoring system for the filament supply. This system monitors the temperature, relative humidity, and supply of filament of the filament supply system and provides automatic humidity control according to the user's setting.
In order to measure the performance of the filament humidity control device, a comparative experiment was conducted with a calcium chloride-based dehumidifying agent generally used for moisture removal. As a result, we found that a filament humidity control system using a Peltier module reduces the relative humidity inside the filament supply at about 3.37 times faster, compared to a general dehumidifying agent. Furthermore, in terms of usability, since periodical replacement is not required and it is possible to maintain a constant humidity level, the developed humidity control system is more useful. This edge computing system will help researchers and users obtain a more uniform and accurate 3D-printed object from a 3D printer using PLA filament, thereby contributing to the implementation of a reliable environment for research and product manufacturing using 3D printers.

Data Availability
The data used to support the findings of this study have not been approved because of fund agency policy.   Journal of Sensors