A program which displays the most important sensor data captured with OpenHardwareMonitor via an 0.96 inch OLED Display connected to a microcontroller.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
The application cycles between three windows indicating temperature and workload for CPU and GPU as well as workload and memory usage for the RAM.
- microcontroller like an arduino nano clone
- 0.91 inch OLED display
- usb-cable compatible with the microcontroller of your choice (For arduino nanos & clones)
- 3D-printed holder
Connect your microcontroller via usb to your pc. Use an usb-port which you don't use often, as you will need to maintain this connection, for the applications to work. Every time you switch to an different usb-port, you'll have to change the port-number accordingly in the python application.
For the connection between the microcontroller and oled display use the following wiring:
microcontroller | oled display |
---|---|
5V | VIN |
GND | GND |
A4(SDA) | SDA |
A5(SCL) | SCL |
For the application to work, you'll need to install Open Hardware Monitor. To install, just unpack the zip archive and run OpenHardwareMonitor.exe with Administrator rights. Otherwise, some hardware sensors are not accessible and could lead to errors.
The project contains two different python application versions. ehm_without_caps_detection.py is the basic version, which collects sensor data from OpenHardwareMonitor and sends this data to the microcontroller.
For your setup, you'll have to find out the usb-port your microcontroller is connected to, e.g. via the device-manager -> connections (COM & LPT).
Now in line 6 change the com-port to the port your mircocontroller is connected to:
arduino = serial.Serial(port='COM7', baudrate=115200, timeout=.1)
ehm_with_caps_detection.py contains a section which detects if caps is active and sets a led strip (WLED) into a different color-mode. For this feature, you will need a WLED-Strip and configure the following lines (39-46) with the according ip-address:
if GetKeyState(VK_CAPITAL) == 1:
caps = str(1)
current = requests.get('http://0.0.0.0/json/state')
backup = current.text
response = requests.post('http://0.0.0.0/json', "{'on': true, 'bri': 127, 'seg':[{'col':[[220,229,255],[0,0,0],[0,0,0]], 'fx':63,'sx':50}]}")
while GetKeyState(VK_CAPITAL) == 1:
time.sleep(1)
response = requests.post('http://0.0.0.0/json', backup)
ehm_microcontroller.ino don't need any configuration. Just upload the code via the arduino ide to your microcontroller.
Distributed under the MIT License. See LICENSE.txt
for more information.
Philipp Schulz - m0l0t0w@web.de
Project Link: https://github.com/keiningenieur/external-hardware-monitor