GatorByte - Microcontroller Firmware
Title: GatorByte – An Internet of Things-based Low-Cost, Compact, And Real-time Water Resource Monitoring Buoy Abstract: Water-quality monitoring systems available today are usually expensive and have low-temporal resolution and lack spatial dimension entirely. These systems are typically available as stations or handheld devices. Pinpointing sources of pollution using these systems is difficult. This project involves developing a high-resolution free-flowing monitoring buoy that records spatiotemporal water-quality data. The system is highly customizable, and even users with limited experience in programming or electronics can tailor GatorByte for their needs. The platform includes a datalogger, cloud-based server, and visualization tools. The datalogger uses low-cost sensors, electronic peripherals, a 3D-printed enclosure, and Printed Circuit Boards, bringing the cost per unit under $1000. The datalogger uses an NB-IoT-capable Arduino for real-time reporting and visualizing sensor data. The GatorByte records physiochemical water metrics – pH, temperature, dissolved oxygen, electroconductivity, and the current location of the buoy using a GPS module. The datalogger also includes micro-SD storage, and Bluetooth module for on-field diagnostics. Using GatorByte buoy, collection of variations in water quality data in temporal as well as spatial dimension can be achieved in a cost-effective and reliable manner, enabling quick detection and resolution of pollution events. Description: This repository contains the embedded software for the microcontroller on the GatorByte buoy. The GatorByte library containing sub-libraries for supported peripherals and sensors is also included.
Steps to reproduce
The provided files are part of a PlatformIO project. Install Microsoft VS Code and install PlatformIO extension. In the extension's configuration screen, ensure the toolchain for Arduino SAMD boards is installed and the board is set to NB1500. PlatformIO allows flashing the firmware and debugging the code.