Today I will introduce a interesting LED thermometer.

It can automatically Cycle through the list of cities and show the temperature on the OLED display and LED strip. You can also use the buttons on the side to manually select the cities to display. It will turn into inactive mode if there's no action in few minutes, and turn off all the LEDs and OLED screen. Any significant light change detected will turn it back on.

Bill of materials

Raspberry Pi Zero W × 1
SD card × 1
1.5-inch OLED module × 1
5V 2.4A power supply × 1
WS2812B LED light bar 5 m (30 pcs / m) × 1
Custom PCB × 1
4mm plywood × 1
6mm plywood × 1
3mm white acrylic sheet × 1
Screws × several
Bolts × several
Washers × several
Stand × several
Soldering iron × 1
Solder × 1
Hot melt adhesive × 1
Wood glue × 1

Weather data

Get free weather data from https://OpenWeatherMap.org, which provides weather data for big cities in many countries. Use as follows.

  1. Create a free account on OpenWeatherMap.org: https://openweathermap.org/
  2. Copy your apikey for later use.
  3. Download, unzip and open the city.list.json.gz file, search for the city you want to display, and then copy the city ID for later use.

Here's the city ID file. file

Setting Up Raspberry Pi and Coding

Connect the OLED display to the Raspberry Pi and install the library for the OLED display. Make sure the Raspberry Pi is connected to the Internet.

Install the libraries required, as described by the manufacturer, here.

You need to enable the I2C and SPI interfaces and then run update.

sudo apt-get update

Run the commands below to install the necessary libraries.

sudo apt-get install python-dev
sudo apt-get install python-smbus
sudo apt-get install python-serial
sudo apt-get install python-imaging

Run the command below to open the configuration file:

sudo nano /etc/modules

Make sure two lines listed below are included.

i2c-bcm2708
i2c-dev

Run the command below to get the repo:

git clone https:/ /github.com/Anders644PI/1.5inch-OLED-with-RPi.git

Go into the new folder, and unzip RPi_GPIO-0_6_5.zip:

cd 1.5inch-OLED-with-RPi
unzip RPi_GPIO-0_6_5.zip

Run the commands below to install the library:

cd RPi_GPIO-0_6_5
sudo python setup.py install

Go back to the main folder:

cd /home/pi/1.5inch-OLED-with-RPi

Or,

cd ..

Do the same for spidev-3_2.zip.

Unzip wiringPi.zip:

unzip wiringPi
cd wiringPi

Run the following command:

chmod 777 build
./build

Use the following command to check the installation:

gpio -v

Go back to the main folder, and unzip bcm2835-1_45.zip

unzip bcm2835-1_45.zip
cd bcm2835-1_45

Then run the following commands to install the library:

./configure
make
sudo make check
sudo make install

Return to /home/pi/1.5inch-OLED-with-RPi/ again and run the command to test the OLED:

cd /Demo_Code/Python/
sudo python main.py

Finally, just write the code, you can refer to my code, please get it on GitHub:

https://github.com/Anders644PI/1.5inch-OLED-with-RPi

Configuring the Weather API

Go to the folder LED_Thermometer_Code_and_OLED_driver:

cd LED_Thermometer_Code_and_OLED_driver

Open Official_Digital_LED_Thermometer_v1-0.py:

nano Official_Digital_LED_Thermometer_v1-0.py

Finally, as shown, scroll down and change api-key from openweathermap.org to your api key. Also, change the city ID and city name to the city you want.

Custom PCB

As shown in the figure, after I figured out the required electronic components, I started to customize the PCB on the Internet. All files are available on GitHub.

The Laser Cutted Enclosure

  1. Use 4mm plywood and 6mm plywood to laser cut the shell. A diffuser model of a 3mm white acrylic sheet for laser cutting LEDs.
  2. Connect electronic equipment and LED strips to laser-cut plywood. Then assemble the case.
  3. 3D printed buttons and switches for matching use.

Download all 3D printed files on GitHub. You may need to shrink the SVG file to 75%.

Results

So far, the entire project is completed.

Last modified: February 15, 2020

Author

Comments

Leave a Reply