AutomationAuthor:

Arduino Media and Environment Control Panel

A desktop control panel combining physical controls, an LDR, and temperature data with a Python interface for Windows.

PythonPyQt5PySerialArduinoPycawPynputWMI
Arduino Media and Environment Control Panel

About the Project

This desktop system turns an Arduino potentiometer, buttons, LDR, and PTC thermistor into a physical Windows control panel. It manages volume and media commands, maps ambient light to screen brightness, and visualizes sensor readings in a PyQt5 interface.

How It Works

Arduino reads the analog sensors and buttons, then sends dot-separated values in an x...c frame at 9600 baud. A Python QThread listens without blocking the interface. The potentiometer value controls an audio session through Pycaw, the LDR value becomes a WMI brightness setting, and button codes trigger previous, play/pause, and next media keys through Pynput.

Technologies

  • PyQt5 / QThread: interface and non-blocking serial reads.
  • PySerial: Arduino data channel.
  • Pycaw: Windows audio-session control.
  • Pynput: software media-key events.
  • WMI: display brightness adjustment.
  • Arduino: sensor sampling and message framing.

Project Structure

  • python_codes.py: UI, serial parser, and Windows controls.
  • arduino_codes/arduino_codes.ino: sensor acquisition and transport format.

Hardware

Arduino, potentiometer, LDR, PTC thermistor, three buttons, breadboard, and wiring.

Technical Notes

The desktop side depends on Windows-specific Pycaw and WMI interfaces, and the serial port is configured directly in code.

Source Code

View the project on GitHub.