Following my internship at Digital Control Systems in the summer of 2015, I was inspired to work towards working with more low-level devices. My primary project that summer had been developing a web application using Web2Py that would read and graph embedded systems’ sensor data, namely humidity, temperature, and CO2 levels.
Since this was my first project using any sort of microcontroller, I decided to start simple with an Arduino. Using a small wooden base included with an Arduino starter kit, I mounted a small 2.2” x 3.4” breadboard along with the Arduino to the base. There’s a spot next to the Arduino itself that I used to mount a 9 volt battery as a power source using double-sided sticky tape, for use on the move, which can be done thanks to the extra power circuitry on the Arduino board.
Using KiCad, I made a simple schematic for the devices here (replacing the Arduino board with a simple Atmega328)
I used the LiquidCrystal library included with the Arduino IDE to control the LCD screen. As far as I know, any 16x2 LCD should work for this application. I also included an RGB LED that shifts color/intensity (using PWM) from blue to red as the temperature ranges from 6℃ to 26℃C (can be changed in the code). The temperature sensor used is an Analog Devices TMP36. Here is a simple BoM for the project:
- (1) Arduino Uno R3, MCU1
- (1) JHD659 M10 Revision 1.1 16x2 B/W LCD Screen, LCD1
- (1) YJ503RBG-30B RGB LED, D1
- (3) 220 Ohm resistors, R1 R2 R3
- (1) TMP36 TO-92 Temperature Sensor, TMP1
The specific model of LCD and RGB LED are difficult to find for purchase. Any generic equivalent should work (16x2 LCD, RGB LED with similar voltage requirements).
If you are interested, the Arduino sketch/code is here.