1. Hardware Construction
1.1 Arduino
The Arduino Mega 2560 is a microcontroller board based on the ATmega 2560. It has 54 digital input/output pins (of which 14 can be used as PWM outputs), 16 analog inputs, 4 UARTs (hardware serial ports), a 16 MHz crystal oscillator, a USB connection, a power jack, an ICSP header, and a reset button. It contains everything needed to support the microcontroller; User can simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started, the power source is selected automatically. Compared with Arduino UNO, which is the more prevalent option but has limited I/O options. Arduino Mega 2560, on the other hand, has 54 digital pins, each of which can be used as an input or output, this comes handy as multiple sensors and solenoid valves are involved in our project. Meanwhile, Arduino Mega 2560 is an open source model that's easy to obtain, it is also well documented and used by many similar projects around the world.
In this project, Arduino is used as a "request-respond" slave computer, responding to commands from the host python program running on the user's computer. All sensors and solenoid valves are controlled by Arduino. To perform a task, the python program simply triggers the concerned function through the serial bus, users can manually send commands to serial ports too. Details about the program and communication protocols will be elaborated in the software section. The relationship between each component in this documentation is as follows:
Figure.1.1.1System Schematic.
1.2 Driver Board
The solenoid valve and three gas sensors work on 12VDC while the maximum possible output of the Arduino Mega 2560 is 5VDC, hence we designed a printed circuit board(PCB) to drive these components. Moreover, as the limited number of power pin on Arduino might not be enough for future refinements, additional 5VDC input was added to the driver board, both power supply are connected with a barrel jack(5.5/2.1mm, IEC60130-10:1971 Type A).
Up to six solenoid valves can be controlled by this board, each has a digital input pin that is connected to Arduino and a green LED indicator. On Arduino, when the output pin connected with the driver board to control the solenoid valve is set to high(5V), the current passes through a Darlington transistor array(ULN2803) on the board and gets amplified, this current then closes the relay and turns the solenoid valve and LED on. Similarly, when the connected digital output pin on Arduino is set to low(~0V), the relay opens, the valve and turns off. With this design, two solenoid valves (here we used SMC SY114-6L) can be turned on at the same time.
Sensors and other apparatus can also be powered by the driver board. A 12VDC barrel output jack is provided(5.5/2.1mm, IEC60130-10:1971 Type A). There are three sets of 12VDC sockets available(P10, P8, and P4, 2.54mm header), each has three pins: 12V, signal, ground. Signal readings of the sensor are gathered to header P7, where it can be connected to respective pin on the Arduino. Note if you are using communication protocols that require more than one signal pin(e.g., UART/I2C), connect the other one directly to Arduino, or only use the driver board as power supply. The same can be applied to the six 5V sensor headers(P13-P18), which gathers their signal input to P9. One thing to mention here is that P13 connects the signal line and 5V line with a 4.7k resistor. This design specifically fits the temperature sensor that we used(DS18B20, Dallas Semiconductor) . It is a widely used temperature module, but if you are not using it, it is advised to remove the resistor, as on other sensors such design might lead to malfunction or even damage the device.
Figure.1.2.1Driver Board Schematic.
Figure.1.2.2Working on Driver Board PCB.
Figure.1.2.3Working on Driver Board PCB.
Figure.1.2.4Driver Board PCB Product.
1.3 Production Pathway
The assembly of the production pathway involves a fermentation bottle, a gas collection bottle, and a measuring cylinder to contain the overflowed water and keep track of the amount of gas produced. As per the need of each experiment, the volume of each bottle can be altered. For demonstration purposes, we used a 500mL fermentation bottle, a 500mL gas collection bottle and a 500mL glass measuring cylinder here. The fermentation bottle is enclosed by a three-channel liquid refilling cap(GL45 cap, channel interior diameter 6mm, exterior 8mm). The gas collection bottle is enclosed by a similar two-channel liquid refilling cap(GL45 cap, channel interior diameter 4mm, exterior 6mm), in which one channel connects to the fermentation bottle and the other to the measuring cylinder. Out of the three channels on the fermentation bottle, a silicone tube with a 6mm interior diameter connects the fermentation bottle with the gas collection bottle, another silicone tube with the same diameter connects the bottle with the analysis module, and a channel is used to pass through the temperature sensor.
The temperature and water level sensors in the production pathway aim to monitor the fermentation status throughout the gas production process. For temperature, we chose a water-proof temperature probe based on the DS18B20 sensor produced by Dallas Semiconductor. It is one of the most popular temperature modules for Arduino, with a logical compatible working voltage, a wide range of detection(-55 to 125°C) and a relatively accurate sensitivity(±0.5°C accuracy from -10°C to +85°C). Note that it is advised to use models that can endure high heat within a pressurized container, as the temperature probe will also be steam-sterilized. The continuous water level sensor we used(ZCT-YLOC1) for this project is rather complicated and delicate. It measures the capacitance change of the container to determine the current water level, which requires complex calibration and modelling process before use, and many critical parameters are prone to environmental conditions. We used two of these sensors to calibrate this sensor set; we've added up readings from both and fitted the sum against the readings from the measuring cylinder. This generates a polynomial function in converting raw sensor output to millilitres. If you do not need to precisely record the amount of produced gas, it is our kind advice to stay away from this component; simply replace it with a photoelectric water level switch that tells you if the liquid passed the set threshold or not.
1.4 Analysis Pathway
The analysis pathway consists of a syringe pump to transfer and dilute the produced gas, three solenoid valves to control the gas product/dilution air flow, and three gas concentration sensors to provide real-time percentage reading of carbon dioxide oxygen, and hydrogen within the gas sensor chamber. We chose SY114-6L from SMC; it is a three-port valve that offers advances in performance for cost-effective solutions; its design provides high reliability with relatively low power consumption in a compact design. We used the body-mounted model of the valve, and all three valves are fixed on a designated manifold base for the SY series. The manifold works similarly to an exchange area, with the syringe pump connected to the input end(or noted as one sometimes in pneumatic documents), and each of the solenoid valves to the output end(or noted as 3), the valves act somehow like a "door" in controlling which gas enters the syringe or sensor chamber. All valves are normally closed, meaning if no valve is turned on, no gas exchange will occur in this system. Therefore the syringe will not be able to perform any action.
Figure.1.4.1Airflow under different solenoid valve state.
Yuanhang Dynamic manufactures the syringe pump QHZS-001B, and we brought it as an integrated kit. The basis of the pump is a stepper motor and a set of rails to move the syringe plunger horizontally. It comes with a control interface that allows the user to manually or automatically control the stepper motor. In this project, the computer and the pump interface are communicated via the UART protocol. Yuanhang dynamic is a local bussiness in China; if you find it hard to obtain this component, most of the other syringe pumps should do the job. But please be advised that changing the syringe pump model means you also need to modify the code, as different syringe pumps vary in command for action.
All three gas sensors(CO2 Sensor: JX-CO2-103; O2 Sensor: JXM-O2; H2 Sensor: JXM-H2) involved in this project are manufactured by Weihai Jingxun Changtong Electronic Technology Co., Ltd. These modules have built-in high-precision sensors with circuits capable of performing output noise removal and ambient temperature compensation. Each sensor has been calibrated three times before leaving the factory. The carbon dioxide module runs on a nondispersive infrared sensor(NDIR); it can detect up to 50%vol (500000ppm) of CO2; the oxygen module runs on an electrochemical sensor with a range up to 30%vol (300000ppm); the hydrogen module is also based on electrochemical means and has an upper concentration boundary of 4%(40000ppm), as the lower explosive limit(LEL) of hydrogen begins from 40000ppm. The low detection range of the H2 sensor is why the fermentation product has to be diluted then analyzed, as previous studies suggest that the H2 concentration in the product far exceeds the LEL. For all three gas sensors, the data is reported to the Arduino through a 5V analog signal [(output voltage / 5.0) * upper detection limit].
1.5 Sterilization
Bottles and liquid refilling caps follow standard pressurized steam sterilization, the probe end of the DS18B20 temperature sensor can be place inside the bottle and sterilized with the rest. For electronic components unable to be placed inside an autoclave, it is suggested to use UV disinfection for an extended period of time, and to fully flush the internal cavity with sterile air.
2. Bill of Materials (BOM)
Figure.2.1BOM for a single construction.
Figure.2.2BOM for a single driver board.