This shows you the differences between two versions of the page.
iothings:proiecte:2023:solar_powered_weather_station_with_esp32 [2024/01/15 00:37] tudorel.tibrea [Hardware Description] |
iothings:proiecte:2023:solar_powered_weather_station_with_esp32 [2024/01/15 14:13] (current) tudorel.tibrea [Solar powered weather station with ESP32] |
||
---|---|---|---|
Line 4: | Line 4: | ||
* Master: ACES | * Master: ACES | ||
* Academic year: 2023-2024 | * Academic year: 2023-2024 | ||
- | * Source code: | + | * Source code:[[https://gitlab.cs.pub.ro/tudorel.tibrea/iot/-/tree/main]] |
+ | * Demo + presentation: [[https://drive.google.com/drive/folders/1EvvDwn7LklOQQSkhjKmbFAPYsgpyLujw]] | ||
===Project Description=== | ===Project Description=== | ||
This project aims to design and build a truly autonomous weather station by leveraging solar energy harvesting. The weather station will monitor the temperature, the humidity, the atmospheric pressure and the state of charge of the Li-Po battery. The project will use MQTT communication protocol with ESP32 to publish messages and subscripe to topics, making the data accessible for various applications. | This project aims to design and build a truly autonomous weather station by leveraging solar energy harvesting. The weather station will monitor the temperature, the humidity, the atmospheric pressure and the state of charge of the Li-Po battery. The project will use MQTT communication protocol with ESP32 to publish messages and subscripe to topics, making the data accessible for various applications. | ||
Line 19: | Line 20: | ||
- | **The following electric schematic represents the project’s hardware.** \\ | + | **//The following electric schematic represents the project’s hardware//**\\ |
{{:iothings:proiecte:2023:schematic.png?800|}} | {{:iothings:proiecte:2023:schematic.png?800|}} | ||
- | **The prototyping board can be seen bellow.** \\ | + | **//The prototyping board can be seen bellow//**\\ |
{{:iothings:proiecte:2023:breadboard.jpg?800|}} | {{:iothings:proiecte:2023:breadboard.jpg?800|}} | ||
======Software Description====== | ======Software Description====== | ||
- | The code flowchart can be seen bellow | + | //**The code flowchart can be seen bellow**// |
{{:iothings:proiecte:2023:solarweatherstationflowchart.jpg?200|}} | {{:iothings:proiecte:2023:solarweatherstationflowchart.jpg?200|}} | ||
Line 216: | Line 217: | ||
======Results====== | ======Results====== | ||
{{:iothings:proiecte:2023:results12345.png?800|}} | {{:iothings:proiecte:2023:results12345.png?800|}} | ||
+ | Above we can see a prolonged use time with a lot of data entry points.* | ||
+ | |||
+ | {{:iothings:proiecte:2023:exemplu2.png?800|}} | ||
+ | As you can see, the ADC reading for the battery are not that precise. We can think of at least 2 culprits in this case. First would be the ESP32 ADC's poor performance and the second one, the method chosen; because the ESP wakes from deep sleep, the energy draw increases very drastically and the battery voltage might vary.* | ||
+ | |||
+ | *For data visualization and plotting, **MQTT Explore** was used. | ||
======Conclusion====== | ======Conclusion====== | ||
- | In conclusion, the proposed solution demonstrates how an ESP32, combined with a BME280 sensor, can be used to create a power-efficient, wireless weather station capable of continuously monitoring environmental conditions and transmitting the data in real-time via Wi-Fi and MQTT, showcasing the potential of IoT in remote sensing and data communication. | + | In conclusion, the proposed solution demonstrates how an ESP32, combined with a BME280 sensor, can be used to create a power-efficient, wireless weather station capable of continuously monitoring environmental conditions and transmitting the data in real-time via Wi-Fi and MQTT, showcasing the potential of IoT in remote sensing and data communication. Further improvements will be to find a way to get precise and constant readings of the battery state of charge, although the literature says it isn't quite correct to calculate it based on voltage; the most correct way to solve this problem from an strictly engineering standpoint is to use an dedicated IC such as a fuel gauge or a coulomb counter. |
======Bibliography====== | ======Bibliography====== | ||
[[https://ocw.cs.pub.ro/courses/iothings]] | [[https://ocw.cs.pub.ro/courses/iothings]] |