Skip to content

aaronjacobs-chelt/PiAquaPulse

Repository files navigation

🌊 PiAquaPulse 🌊

A Smart River Health Monitoring System

Version 1.0.1 License: MIT Raspberry Pi Zero Python 3.7+

Product Logo

πŸ“‹ Table of Contents

πŸ” Overview

PiAquaPulse is a compact, battery-powered water quality monitoring system designed specifically for kayaking and outdoor water exploration. This device provides real-time data on water quality parameters, helping environmentalists, outdoor enthusiasts, and researchers collect valuable data during their trips.

The system efficiently logs water temperature, pH, turbidity, and GPS location, storing data offline with the capability to transmit it via Bluetooth when in range of a paired device.

✨ Key Features

  • βœ… Comprehensive Monitoring: Logs water temperature, pH, turbidity, and GPS location
  • βœ… Energy Efficient: Manual button-activated logging for extended battery life
  • βœ… User Feedback: LED status indicator for operational feedback
  • βœ… Durable Design: Waterproof and floating construction for harsh environments
  • βœ… Reliable Storage: Offline data storage in CSV format for easy analysis
  • βœ… Compact Form Factor: Designed to attach to kayaks or be carried during water expeditions

πŸš£β€β™€οΈ Use Cases

  • Environmental Research: Monitor water quality in remote or hard-to-reach locations
  • Citizen Science: Enable kayakers and paddlers to contribute to water quality datasets
  • Educational Tool: Teach students about water quality parameters through hands-on data collection
  • Personal Recreation: Track water conditions during kayaking trips for personal records
  • Conservation Efforts: Support water conservation initiatives with reliable data collection

πŸ”§ Hardware Requirements

Component Description Purpose
Raspberry Pi Zero W/2W Small single-board computer Main processing unit
DS18B20 Waterproof temperature sensor Water temperature measurement
Gravity Analog pH Sensor pH measurement probe Measures water acidity/alkalinity
SEN0189 Turbidity sensor Measures water clarity
NEO-6M GPS module Location tracking
MCP3008 Analog-to-digital converter For analog sensors integration
Push Button Waterproof tactile button Manual logging activation
LED Status indicator light Visual feedback
Waterproof Case & Connectors Environmental protection Ensures system durability

For detailed setup instructions and parts list, see SETUP.md.

πŸ“Š Wiring Diagram

[Schematic/Wiring Diagram from CirKit Designer]

A comprehensive wiring diagram showing all connections between the Raspberry Pi and sensors will be available soon. For now, please refer to the pin configuration in the CONFIG section of PAPScript.py and the detailed instructions in SETUP.md.

Raspberry Pi Zero W
 β”œβ”€β”€ DS18B20 Temperature Sensor
 β”‚   β”œβ”€β”€ Data β†’ GPIO4
 β”‚   β”œβ”€β”€ Power β†’ 3.3V
 β”‚   └── GND β†’ GND
 β”‚
 β”œβ”€β”€ Gravity Analog pH Sensor (via MCP3008 ADC)
 β”‚   β”œβ”€β”€ Signal β†’ MCP3008 CH0
 β”‚   β”œβ”€β”€ VCC β†’ 3.3V
 β”‚   β”œβ”€β”€ GND β†’ GND
 β”‚
 β”œβ”€β”€ SEN0189 Turbidity Sensor (via MCP3008 ADC)
 β”‚   β”œβ”€β”€ Signal β†’ MCP3008 CH1
 β”‚   β”œβ”€β”€ VCC β†’ 5V
 β”‚   β”œβ”€β”€ GND β†’ GND
 β”‚
 β”œβ”€β”€ NEO-6M GPS Module (UART)
 β”‚   β”œβ”€β”€ TX β†’ GPIO15 (RX)
 β”‚   β”œβ”€β”€ RX β†’ GPIO14 (TX)
 β”‚   β”œβ”€β”€ VCC β†’ 3.3V
 β”‚   β”œβ”€β”€ GND β†’ GND
 β”‚
 β”œβ”€β”€ Push Button (Manual Logging)
 β”‚   β”œβ”€β”€ One Leg β†’ GPIO17
 β”‚   └── Other Leg β†’ GND (Pull-up resistor used)
 β”‚
 β”œβ”€β”€ LED Indicator (Status Feedback)
 β”‚   β”œβ”€β”€ Anode (+) β†’ GPIO27
 β”‚   └── Cathode (-) β†’ GND
 β”‚
 β”œβ”€β”€ MCP3008 (SPI Analog-to-Digital Converter)
 β”‚   β”œβ”€β”€ CH0 β†’ pH Sensor Signal
 β”‚   β”œβ”€β”€ CH1 β†’ Turbidity Sensor Signal
 β”‚   β”œβ”€β”€ VDD β†’ 3.3V
 β”‚   β”œβ”€β”€ VREF β†’ 3.3V
 β”‚   β”œβ”€β”€ AGND β†’ GND
 β”‚   β”œβ”€β”€ CLK β†’ GPIO11 (SPI SCLK)
 β”‚   β”œβ”€β”€ DOUT β†’ GPIO9 (SPI MISO)
 β”‚   β”œβ”€β”€ DIN β†’ GPIO10 (SPI MOSI)
 β”‚   └── CS β†’ GPIO8 (SPI CE0)
 β”‚
 └── Power Supply
     β”œβ”€β”€ USB Power Bank β†’ Raspberry Pi Zero (Micro-USB Power Port)
     └── Optional: Voltage Step-down if using external battery pack

πŸ’» Software Setup

1. Install Required Packages

On your Raspberry Pi, install dependencies:

sudo apt update && sudo apt install -y python3 python3-pip git
pip3 install RPi.GPIO serial

2. Clone the Repository

git clone https://github.com/aaronjacobs-chelt/PiAquaPulse.git
cd PiAquaPulse

3. Install Python Requirements

pip3 install -r requirements.txt

4. Run the Script

python3 PAPScript.py

For more detailed setup instructions, including hardware connections and configurations, please refer to the SETUP.md file.

πŸš€ Usage Instructions

  1. Start Logging: Press the button to initiate a data logging session. The LED will light up to confirm activation.
  2. Data Collection: Once activated, the system will take readings from all sensors (temperature, pH, turbidity) and record the GPS location.
  3. Data Storage: All collected data is automatically saved to river_data.csv on the Pi in an easy-to-analyze format.
  4. Continuous Monitoring: The system can be configured for continuous monitoring or manual activation based on your needs.

🚧 Future Improvements

  • Wireless Connectivity: Implement Bluetooth data transmission to companion mobile app
  • Power Efficiency: Further battery optimization for extended field operations
  • Enhanced Analytics: Add more advanced water quality metrics and analysis
  • Web Dashboard: Develop a web interface for data visualization
  • Alert System: Implement threshold-based alerts for critical water quality changes

πŸ‘₯ Contributing

Contributions to the PiAquaPulse project are welcome! Here's how you can contribute:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please make sure to update tests and documentation as appropriate. See CONTRIBUTING.md for detailed guidelines.

πŸ“ž Support & Contact

Getting Help

Contact Information

Commercial Support

For commercial applications, custom development, or priority support:

Security Issues

For security vulnerabilities, please see our Security Policy and email [email protected] directly.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Copyright (c) 2025 Aaron Jacobs

πŸ™ Acknowledgments

  • Thanks to the open-source community for the excellent libraries and tools
  • Circuit design created with CirKit Designer
  • Inspired by the need for accessible environmental monitoring tools
  • Special thanks to field researchers and citizen scientists who test and improve this system

Made with πŸ’™ for environmental researchers and water quality enthusiasts

Report Bug β€’ Request Feature β€’ Get Support

About

Citizen science platform for collecting and visualising water quality data from Rivers and Lakes.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors