Simple Water Sensor Platform
The simple water sensor platform is a simple, accessible tool for using a variety of water quality parameter sensors to collect and log data about water samples.
Design
It is designed around the DF Robot series of open-hardware liquid sensors and is built on top of the Arduino Micro.
The sensor collects data and sends it to an attached computer or smartphone by acting like a USB-keyboard -- this means that you plug it in, turn it on, and it just starts typing out your data readings on your screen one at a time. This means that the sensor doesn't require any particular hardware or software and can be used by anyone with any kind of computer.
For more information on design consideration see Designing a Simple Water Sensor Kit
Building the Platform
Instructions for building and using the simple water sensor are broken into two parts: a set of general build instructions for assembling the platform, and specific build+usage instructions for connecting different kinds of sensors.
- Building the Simple Water Sensor Platform
- pH
- ORP (Oxygen Reduction Potential
- Turbidity
- Conductivity
- Dissolved Oxygen
- TDS (Total Dissolved Solids)
Using the Sensors
The sensors provide data feedback in two different ways: - a blinking LED that blinks faster for higher readings - USB-keyboard emulation that sends the data readings to a computer by "typing" them out
The blinking LED is in place primarily as a troubleshooting tool and way for users to get immediate feedback without having to be connected to a computer. This can streamline troubleshooting and is also helpful in a workshop setting where you might have more workshop participants then you have computers.
Outside of troubleshooting and introductory workshops, the main way you get data from your sensor is by plugging it into a computer or smartphone and opening up a spreadsheet.
The software is designed to be used with spreadsheet software and uses a keyboard shortcuts for getting the current date and time. These keyboard shortcuts are the same in Libre Office, Google Sheets, and Microsoft Excel.
Calibrating the Sensors
At the moment we have no straightforward procedure for calibrating the sensors. Each individual sensor has software and calibration steps described on the DF Robot Wiki but performing these steps involves modifying Arduino code and uploading these changes to the board.
This process is not beginner-friendly. A better approach would be to move all of the math out of the Arduino software and into spreadsheet formulas and develop a calibration procedure from there.
This could allow people to calibrate the sensor by modifying data in cells on a spreadsheet rather than changing variables in Arduino code.
Source Code
You can look at the source code for the platform using the Arduino Web Editor or on our github repository.
The current version of the source code just consists of all of the code for the various sensors taking from the DF Robot Wiki and messily-concatenated together. It currently works to get data for all of the different sensor-types but is kind of a disaster for trying to calibrate them.
This /could/ be improved to allow easier modification of the code for calibration purposes but the approach of pulling all of the math out into a spreadsheet seems like a much better path forward.
Questions + Next Steps
Because the goal of this project is to make a tool that is usable and useful for people unfamiliar with sensors, data collection, electronics, etc, there is a lot to do to improve the documentation and usability of the platform.
These break down roughly into: - Hardware Usability - Software Usability - Sensor Calibration - Sensor Deployment
Hardware Usability
The actual sensor-platform build is relatively straightforward as far as Arduino breadboarding projects go, but we want to make sure that it is be easily buildable by people without any electronics/hardware experience.
Testing
The whole project is very under-tested at the moment, so it would be really valuable for interested people to just try to build the platform with as many people and under as many conditions as possible. This will help us get a sense for what the common pitfalls and difficulties are.
Creating a Troubleshooting Guide
At the moment the build instructions have very little information for what to do in the event that something goes wrong or isn't working. User testing will help us identify common difficulties but we also need to document them in a way that walks new users through a testing, diagnosis and troubleshooting process. This is probably the most important part of project documentation for new users, and is basically completely absent from this project.