This shows you the differences between two versions of the page.
iothings:proiecte:2023sric:esp32-iaq [2024/05/30 01:26] bogdan_ionut.spinu |
iothings:proiecte:2023sric:esp32-iaq [2024/05/30 10:12] (current) bogdan_ionut.spinu |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== ESP32 Indoor Air Quality Monitoring ====== | ====== ESP32 Indoor Air Quality Monitoring ====== | ||
- | * Author: Bogdan-Ionut Spinu | + | * Author: Bogdan-Ionuț Spînu |
* Email: bogdan_ionut.spinu@stud.acs.pub.ro | * Email: bogdan_ionut.spinu@stud.acs.pub.ro | ||
* Master: MPI | * Master: MPI | ||
Line 15: | Line 15: | ||
* ESP32-C3-DevKitM-1 | * ESP32-C3-DevKitM-1 | ||
* Sensirion SEN55 | * Sensirion SEN55 | ||
- | The Sensirion Sen55 sensor is an advanced air quality monitoring module designed for high-precision indoor air assessments. It combines the ability to measure particulate matter (PM1.0, PM2.5, PM4.0, and PM10) using laser-based light scattering technology, and volatile organic compounds (VOCs) through metal oxide semiconductor (MOS) technology. Additionally, it provides accurate readings of relative humidity and temperature. This sensor is known for its high accuracy and sensitivity, ensuring reliable detection of pollutants and environmental conditions. Its compact design facilitates easy integration into various devices and systems, maintaining robust performance in a small form factor. The Sen55 communicates via an I²C interface, simplifying its connection with microcontrollers like the ESP32. | + | {{ :iothings:proiecte:2023sric:sen55.png |}} |
+ | The Sensirion Sen55 sensor is an advanced air quality monitoring module designed for high-precision indoor air assessments. It combines the ability to measure particulate matter (PM1.0, PM2.5, PM4.0, and PM10) using laser-based light scattering technology, and volatile organic compounds (VOCs) through metal oxide semiconductor (MOS) technology. Additionally, it provides accurate readings of relative humidity and temperature. Its compact design facilitates easy integration into various devices and systems, maintaining robust performance in a small form factor. The Sen55 communicates via an I²C interface, simplifying its connection with microcontrollers like the ESP32. | ||
* JST GHR-06-S connector with 6 jumper wires | * JST GHR-06-S connector with 6 jumper wires | ||
* USB-A to USB-C cable and an old Samsung charger | * USB-A to USB-C cable and an old Samsung charger | ||
{{ :iothings:proiecte:2023sric:esp32-iaq_schema.png |}} | {{ :iothings:proiecte:2023sric:esp32-iaq_schema.png |}} | ||
+ | {{ :iothings:proiecte:2023sric:esp32-iaq.jpg?700 |}} | ||
====== Software ====== | ====== Software ====== | ||
Line 235: | Line 237: | ||
I have used the open-source ThingsBoard platform customized by UPB with my university account for telemetry storage and visualization: http://digitaltwin.upb.ro:8080/home. | I have used the open-source ThingsBoard platform customized by UPB with my university account for telemetry storage and visualization: http://digitaltwin.upb.ro:8080/home. | ||
- | On this platform, I have configured my device to receive and process JSON data received via MQTT from the ESP32 board and created a dashboard to display the evolution of IAQ parameters over time: | + | I have configured my device inside ThingsBoard to receive and process JSON data received via MQTT from the ESP32 board, store the timeseries measurements inside a PostgreSQL database and created a dashboard to display the evolution of IAQ parameters over time: |
+ | {{ :iothings:proiecte:2023sric:esp32-iaq_tb4.png?700 |}} | ||
+ | {{ :iothings:proiecte:2023sric:esp32-iaq_tb1.png?700 |}} | ||
+ | {{ :iothings:proiecte:2023sric:esp32-iaq_tb2.png?700 |}} | ||
+ | {{ :iothings:proiecte:2023sric:esp32-iaq_tb3.png?700 |}} | ||
- | {{ :iothings:proiecte:2023sric:esp32-iaq_tb4.png?700}} | + | ====== Challenges ====== |
- | {{ :iothings:proiecte:2023sric:esp32-iaq_tb1.png?700}} | + | Light sleep mode - optimize power consumption by shutting down wireless peripherals and reducing most voltage supply to RAM and CPUs, and use the RTC controller's internal timer to wake up the ESP32 board every 30 seconds to read and send data from sensor (esp_sleep_enable_timer_wakeup()). Due to the WiFi module being powered down and reconnecting every session, which leads to countless reconnections to the MQTT broker that take up more CPU resources and bandwidth than just sending the message itself, I have decided to not use sleep mode anymore. |
- | {{ :iothings:proiecte:2023sric:esp32-iaq_tb2.png?700}} | + | |
- | {{ :iothings:proiecte:2023sric:esp32-iaq_tb3.png?700}} | + | |
- | + | ====== References ====== | |
- | + | - https://sensirion.com/products/catalog/SEN55/ | |
- | ====== Bibliography ====== | + | |
- https://sensirion.com/media/documents/6791EFA0/62A1F68F/Sensirion_Datasheet_Environmental_Node_SEN5x.pdf | - https://sensirion.com/media/documents/6791EFA0/62A1F68F/Sensirion_Datasheet_Environmental_Node_SEN5x.pdf | ||
- https://github.com/espressif/esp-idf | - https://github.com/espressif/esp-idf |