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:


Future Work: