Arduino Temperature Montior
This is an older entry for my first hardware project
So I recently got into basic circuitry as a hobby. The Arduino is a really cool development platform. It is an open source hardware project that basically runs off C++ code. I wasn’t sure what to create for my first project, but I bought a lcd screen with the Arduino nano. After getting a basic hello world demo working, I decided that the best thing to create with it was a temperature monitor for my desktop. Here is an image of the final product:
There are two parts of software making this project work; a daemon that polls CPU & GPU sensor data, and the code on the Arduino itself. The daemon itself is built using c++ and works with libsensors to get the required data from your computer’s hardware. The Arduino itself recieves serial data over usb from the daemon. It then must send data to the LCD screen using a serial connection. That means that information is sent one byte (character) at a time. Since I only needed to send a few characters, I ended up using other characters as commands:
switch(Letter)
{
case '$':
mySerial.print("Stable");
break;
case 'C':
mySerial.write(12); //Clear the Screen
delay(10);
break;
case 'N':
mySerial.write(148); //New line
break;
case 'P':
break; //do nothing. Kind of a "heartbeat to the host" signal
case 'F':
isFraked=true; //Sound audible alarm
break;
default:
mySerial.print(Letter);
}
The LCD also has a back light. It turns on by one of two methods. There is a switch on the side of the device, or the on board light sensor will automatically turn on the backlight when it gets dark. The Code for both the daemon (linux only at the moment) and the Arduino can be found on my Github page. There is also a version that will poll Nvida GPU temperatures found here.