Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

38 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Toxic chemical level sensor

Problem

At the data center I work in, we use a highly concentrated form of chlorine called AWSB-7000 that is constantly pumped into the water system to treat bacteria growth. It needs to be refilled by a contracted chemical company prior to being fully depleted. A wooden stick with 1" markings was used to measure the height of the liquid in inches, then a multiplier was used to convert to gallons. This required an operator to open the tank lid, exposing their eyes and lungs to the highly concentrated chemical gas, then dipping the wooden stick into the tank, exposing their skin and clothing to the liquid form.

Solution

Using a JSN-SR04T ultrasonic sensor and an Arduino Nano, I came up with a solution to monitor the tank level remotely with a 20x4 LCD display utilizing the I2C communication protocol. The ultrasonic sensor is mounted inside of a fill cap using a self-designed 3d printed friction fit adapter, which allows the sensor to sit inside the tank. On the front of the controller below the display, there is an illuminated momentary push button that provides a visual indicator when the controller is in a low level state, a low level but acknowledged state, and a high level state. If the level is too low, the momentary button flashes until it is pressed, acknowledging the existance of an alarm condition. The push button is then a steady red light and the display indicates the alarm was acknowledged. Once the tank is refilled, the alarm condition is cleared. If the tank level is too high, the push button illuminates a steady red light and the display indicates that the sensor is out of range. The level is calculated by getting the sensor data from the ultrasonic sensor, which is used to find the distance from the sensor to the top of the liquid. A calculation is then made to get the remaining liquid level in inches, and then converted into gallons. After the calculation is made, it is stored into an array of size 9 and a function is used to find the running median. This is done because the distance of the sensor to the tank wall is so small that the signal waves reflect and produce irratic low/high values.

AWSB-7000 Tank Controller Display
LCD connection Arduino Nano + Ultrasonic board

Issues

  • As mentioned above, the placement of the ultrasonic sensor is not ideal, but it is placed in the only nondestructive location (3d printed adapter mounted inside extra cap). If possible, it should be placed in the center so that the ultrasonic waves are able to more accurately read the liquid level.
  • The ultrasonic sensor has a working range of 25cm-4M. If the tank is filled too high, the sensor is out of range and does not read properly. If this happens, a message is displayed stating the sensor is out of range. Once the level drops and the level is in range, the median filter calculations start and the display is updated.
  • If the tank level is too low, the ultrasonic sensor will give irratic results because of the short distance from the tank walls. Since the level is lower, the beam of the sensor is now wider causing it to reflect off of the tank. This could be fixed with the sensor being moved closer to the center.

Conclusion

This has been in use for the past two years without any issues, and has saved many man-hours by reducing how often the tank has to be opened up and manually checked, as well as reduced the potential harm to employees.

Skills used

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors