This shows you the differences between two versions of the page.
iothings:proiecte:2023sric:hardwaremonitor [2024/05/29 16:58] ionel.patrascu3101 [ESP8266] |
iothings:proiecte:2023sric:hardwaremonitor [2024/05/29 18:47] (current) ionel.patrascu3101 [Smart Hardware Monitor] |
||
---|---|---|---|
Line 4: | Line 4: | ||
* Email: ionel.patrascu3101@stud.acs.pub.ro | * Email: ionel.patrascu3101@stud.acs.pub.ro | ||
* Master: SRIC | * Master: SRIC | ||
+ | * [[https://youtu.be/zqtbRrcpSKQ|Demo]] | ||
====== Introduction ====== | ====== Introduction ====== | ||
Line 304: | Line 305: | ||
Similar functions, ''displayCPU()'', ''displayGPU()'', and ''displayRAM()'', are implemented to provide more detailed information about each hardware component, respectively. These functions follow a similar structure, retrieving relevant data from the JSON document and displaying it on the LCD in a user-friendly format. | Similar functions, ''displayCPU()'', ''displayGPU()'', and ''displayRAM()'', are implemented to provide more detailed information about each hardware component, respectively. These functions follow a similar structure, retrieving relevant data from the JSON document and displaying it on the LCD in a user-friendly format. | ||
+ | |||
+ | ====== Results ====== | ||
+ | |||
+ | {{:iothings:proiecte:2023sric:hardwaremonitor:connect.png |}} This section presents the visual results of the implemented system, showcasing the information displayed on the LCD screen for each of the four display states. | ||
+ | |||
+ | ===== Overall Page ===== | ||
+ | {{:iothings:proiecte:2023sric:hardwaremonitor:overall.png |}} | ||
+ | |||
+ | The "Overall" page provides a concise overview of the system's performance, displaying the CPU load and temperature alongside the GPU load and temperature. This page offers a quick glance at the system's general health and resource utilization. | ||
+ | |||
+ | ===== CPU Page ===== | ||
+ | {{:iothings:proiecte:2023sric:hardwaremonitor:cpu.png |}} | ||
+ | |||
+ | The "CPU" page provides more detailed information about the CPU, displaying the CPU load, temperature, frequency, and power consumption. This page allows for a more in-depth analysis of the CPU's performance and resource usage. | ||
+ | |||
+ | ===== GPU Page ===== | ||
+ | {{:iothings:proiecte:2023sric:hardwaremonitor:gpu.png |}} | ||
+ | |||
+ | The "GPU" page focuses on the GPU's performance, displaying the GPU load, temperature, memory usage, and power consumption. This page provides insights into the GPU's workload and resource utilization. | ||
+ | |||
+ | ===== RAM Page ===== | ||
+ | |||
+ | {{:iothings:proiecte:2023sric:hardwaremonitor:ram.png |}} | ||
+ | The "RAM" page displays the RAM usage, showing the amount of RAM currently used and available. This page helps monitor the system's memory utilization and identify potential memory constraints. | ||
+ | |||
+ | ===== Real-World Setup ===== | ||
+ | |||
+ | {{ :iothings:proiecte:2023sric:hardwaremonitor:project.jpg?600 |}} | ||
+ | This image showcases the actual physical setup of the project. The ESP8266 microcontroller is connected to the LCD display and the joystick, allowing for user interaction and real-time display updates. The ESP8266 communicates with the server to retrieve system hardware data, providing a seamless and informative experience for the user. This image highlights the practical implementation of the project, demonstrating its functionality and user-friendliness. | ||
+ | |||
+ | |||
+ | ====== Conclusion and Future Work ====== | ||
+ | The project successfully demonstrates the implementation of a real-time system hardware monitoring solution using an ESP8266 microcontroller, an LCD display, and a joystick for user interaction. The system effectively retrieves system hardware data from a server via a Flask API and displays it on the LCD in a user-friendly format. The user can navigate between different display states showcasing various system metrics using the joystick and its button. The system provides a valuable tool for monitoring system performance without interrupting the user's primary activity. | ||
+ | |||
+ | Future work could focus on enhancing the user experience and functionality of the system. One potential improvement would be to replace the current LCD display with a larger, more visually appealing display. A graphical user interface (GUI) could be developed to present the information in a more intuitive and engaging way. Additionally, exploring the integration of additional sensors, such as temperature sensors or fan speed sensors, could provide a more comprehensive view of the system's health and performance. | ||
+ | |||
+ | |||
+ | ====== References ====== | ||
+ | * OpenHardwareMonitor Library: https://github.com/OpenHardwareMonitor/OpenHardwareMonitor | ||
+ | * Flask Web Framework: https://flask.palletsprojects.com/ | ||
+ | * ESP8266 WiFi Library: https://github.com/esp8266/Arduino | ||
+ | * ESP8266 HTTPClient Library: https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266HTTPClient | ||
+ | * ArduinoJson Library: https://arduinojson.org/ | ||
+ | * LiquidCrystal_I2C Library: https://github.com/johnrickman/LiquidCrystal_I2C | ||
+ | * How to Use I2C LCD with ESP32 on Arduino IDE (ESP8266 compatible): https://randomnerdtutorials.com/esp32-esp8266-i2c-lcd-arduino-ide/ | ||
+ | * ESP8266 Pinout Reference: https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/ |