this is EnviroSense.

Embedded Systems | C | Python | Energy-Harvesting

An energy-harvesting, environmental tracker that provides a long-term, sustainable solution for collecting, interpreting, and analyzing data.


Overview

At the core of our project is an energy-harvesting embedded system that serves as an environmental tracker, capable of measuring a variety of parameters including light intensity (luminosity), temperature, humidity, pressure, soil moisture, soil acidity, air quality, and UV radiation. The system is designed to be an advocate for environmental awareness within the local environment where it will be deployed, as well as a long-term implementation research tool for collecting data on the environment over the course of several years to illuminate any changes within the local environment and provide current environmental characteristics and analysis.

Media



Description

EnviroSense is an energy-harvesting, environmental monitoring system designed to gather and analyze data from various sensors in real-time. It consists of three key layers: the Embedded Layer, the Gateway Layer, and the Cloud Layer.

  1. Embedded Layer

    • The Embedded Layer forms the foundation of the EnviroSense system and includes the hardware and firmware components for the functionality of environmental data collection.
    • Hardware Design: The hardware incorporates a range of sensors to measure environmental parameters such as light intensity, UV index, water level, temperature, humidity, air quality, pressure, and pH. These sensors may use different communication protocols like I2C, SPI, analog or digital inputs to read the data. Energy-harvesting mechanisms, such as photovoltaic (PV) panels, are utilized to power the embedded system.
    • Energy Management: An MPPT (Maximum Power Point Tracking) controller and a DC/DC converter are employed to efficiently harvest and regulate power from the PV panels. This ensures optimal utilization of the available solar energy.
    • Firmware: The firmware for the Embedded layer handles sensor data collection, calibration, and conversion into meaningful units. It utilizes specific algorithms and formulas to process the raw sensor readings. Additionally, it implements low power operation techniques as well as LoRa wireless communication for data packaging.
    • Wireless Communication: LoRa (Long-Range) wireless communication technology is employed to transmit sensor data from the embedded system to the gateway. LoRa enables long-range and low-power communication, making it ideal for IoT applications.
    • Low-Power Operation: The embedded system incorporates low-power intermittent operations, where it periodically enters a power-down mode to conserve energy. It utilizes hardware interrupts to awaken the system when necessary.
  2. Gateway Layer

    • The Gateway Layer acts as a bridge between the embedded devices and the cloud server, facilitating data transmission and processing.
    • LoRa to UART Communication: The receiving LoRa module in the gateway receives the sensor data transmitted by the embedded devices via LoRa. It uses UART (Universal Asynchronous Receiver-Transmitter) communication to transfer the received data to the gateway's microcontroller the ESP32.
    • WebSockets Connection: The gateway establishes a WebSockets connection with the cloud server. WebSockets enable real-time bidirectional communication between the gateway and the server, allowing seamless data transmission.
  3. Cloud Layer

    • The Cloud Layer is responsible for processing, storing, and presenting the received sensor data in a user-friendly manner.
    • Tornado-Based Python Server: The cloud server hosting the EnviroSense application is implemented using Tornado, a Python web framework. The Tornado-based server handles incoming WebSocket connections, receives data from the gateway, and serves as the communication hub between the gateway and the cloud.
    • Data Processing: The server code implemented in Python processes the incoming sensor data, extracting relevant information and performing necessary computations or analysis.
    • Website Hosting: The Python server hosts a website where users can access and visualize the environmental data. The website provides a user-friendly interface to monitor and analyze the collected sensor data.