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.
- 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.
- 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.
- 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.
- PCB Design: In order to optimize the hardware design of EnviroSense, developing a custom printed circuit board (PCB) can be explored. A PCB would allow for a more compact and integrated solution, reducing the overall size and improving the layout of components. To overall have a defined, concrete design of the embedded system.
- ML Algorithm Integration: To unlock more advanced insights and trends from the collected environmental data, integrating machine learning (ML) algorithms can be considered. ML models can be trained to detect patterns, correlations, and anomalies in the data, enabling predictive analytics and proactive decision-making....