WERL Research Internship 🔬
Creating a Low-cost, Moisture-Resistant Sensor Device📱
During this research internship at the Water and Energy Research Lab (WERL), a lab within the Department of Mechanical and Industrial engineering at the University of Toronto, I collaborated with a PhD student in the lab and worked on the mechanical/electronic/software design, fabrication, testing, and validation of a sensor probe device aiming to measure dissolved solids levels in septic tank wastewater samples in rural communities.
The main considerations/factors and the ideal metrics that went into the design of the device are:
- Runtime (< 24 hours)
- Cost (< $170 USD)
- Accuracy (R2 > 0.8)
- Water Resistance (IPX7+)
Device CAD Design ⚙️
The CAD design of the system enclosure and mechanical parts, created using Fusion 360, is shown below. It is intended to be manufactured using liquid resin printing for maximal water resistance, and the STL files are also available for download as a ZIP folder using the button below!
Electrical and Software Components⚡️💻
The device utilizes a Feather M0 Datalogger to control and obtain analog data from the connected Rotary Encoder, Continuous Servo Motor, and Load Cell/Amplifier. Flashed onto this Feather is a script written in C++ that utilizes the servo and HX711 libraries to calibrate and obtain data from the load cell, control motor rotation, and obtain encoder pulse data. Once obtained, the load cell/encoder data is converted to real-world force measurements/distances in the script and is incrementally outputed to the serial monitor where the CoolTerm application stores/exports data in a .txt file for multimodal use (excel, parsing, etc.).
A research poster that I presented at the annual Undergraduate Engineering Research Day (UnERD) at UofT summarizing the project is shown below, as well as a GitHub link to the C++ script!
Cellular Sensor Data Transfer📡
In addition to the design of my own device, I was also involved in helping with a similiar device (pictured below) that utilizes many more sensors and sampling methods to further determine wastewater characteristics. One of my tasks involved writing a C++ script flashed onto an on-board feather MCU that utilizes the Blues API to send sensor data via i2c to a Blues Notecard/Notecarrier. The data is then processed through an AWS Lambda function that also uses HTTP Requests to gather device billing data, and the data is subsequently packaged and stored in JSON format in an AWS S3 bucket
I also developed a locally-run Python script to pull and plot the sensor data in both 2D and 3D using pandas/numpy and Plotly. The scripts are available for viewing/download via the Github link below!
Script on GitHub