The RPi Internet Weather Station project displays the weather information such as temperature, humidity and successive weather forecast.
The 4DPi-35-II is a 3.5″ 480×320 Primary Display for the Raspberry Pi, which plugs directly on top of a Raspberry Pi and displays the primary output which is normally sent to the HDMI or Composite output. It features an integrated Resistive Touch panel, enabling the 4DPi-35-II to function with the Raspberry Pi without the need for a mouse.
David Johnson-Davies @ technoblogy.com build a four-channel thermometer that monitors the temperature at four temperature sensors, and gives a continuous readout on a small 128×32 OLED display. It’s a useful project for various applications like PSU or PC monitoring. The article describes 1-wire and code in details.
It could be used in any application where you want to monitor multiple temperatures, such as in controlling a greenhouse, checking the output transistors in a power amplifier, monitoring key points in an overclocked gaming PC, monitoring the chips on a Raspberry Pi, or checking the temperature in different rooms in a home.
Bosch Sensortec announces a world first in sensor technology: the BME280 Integrated Environmental Unit combines sensors for pressure, humidity and temperature in a single package. This unique sensor has been developed to support a broad range of emerging high performance applications such as indoor navigation, home automation control, personalized weather stations and innovative sport and fitness applications. The precise altitude measurement function of the BME280 is a key requirement in applications such as indoor navigation with floor tracking where exceptional accuracy, low temperature drift and high resolution are needed. Additionally, the BME280 has a best-in-class response time of just one second for humidity determination, excellent ambient temperature measurement and low energy consumption.
More precise measurement at lowest power consumption
With a small footprint of just 2.5 x 2.5 mm2and a height of 0.93 mm in a space-saving 8-pin LGA package, the sensor offers high design flexibility and is ideally suited for mobile devices with limited space such as smartphones, tablets, smart watches and electronic wristbands. Very low current consumption of only 3.6 µA (at 1 Hz) makes the BME280 Integrated Environmental Unit particularly suitable for battery-driven applications. Three power modes and separately configurable oversampling rates for pressure and temperature measurements allow designers to adapt the BME280 to a wide range of use cases.
The humidity sensor within the Integrated Environmental Unit measures relative humidity (0% to 100%) across a wide temperature range from -40°C to +85°C with a fast response time of less than 1 second. The humidity measurement accuracy is ±3% with a hysteresis of 2% or better, and the temperature reading accuracy is within 0.5°C.
Using a display to view the temperature and humidity of your environment can be possible using the DHT11 or DHT22 sensor with the easy to use Arduino microcontroller platform and that’s the goal of this project. For this project, we will be using the 16×2 LCD display module to display the temperature and humidity readings gathered from the environment using the DHT11 temperature and humidity sensor.
The DS3231 is a very low power RTC chip, it has the ability to keep time with incredible accuracy such that even after power has been disconnected from your product, it can run for years on a connected coin cell battery. This module has the ability to communicate via I2C or SPI but for this tutorial we will be using the I2C mode for communications between our arduino and the DS3231. The module also comes with a quite accurate temperature sensor which we will be using to get temperature readings. The collected temperature and clock data is then displayed on the 16×2 LCD via the Arduino.
Real Time Clock and Temperature Monitor using DS3231 Module – [Link]
The BME680 measures pressure, humidity, temperature and indoor air quality. by Bosch Sensortec:
BME680 is an integrated environmental sensor developed specifically for mobile applications and wearables where size and low power consumption are key requirements. Expanding Bosch Sensortec’s existing family of environmental sensors, the BME680 integrates for the first time individual high linearity and high accuracy sensors for gas, pressure, humidity and temperature. It consists of an 8-pin metal-lid 3.0 x 3.0 x 0.95 mm³ LGA package which is designed for optimized consumption depending on the specific operating mode, long term stability and high EMC robustness.
BME680 measures pressure, humidity, temperature and indoor air quality – [Link]
Ever wished to know the temperature on your way to breakfast after waking up in the morning? Now you can find it out in a fascinating way as Lorraine Underwood at The MagPi magazine designed a temperature controlled colorful stair lights system with raspberry pi. In this tutorial, we’re going to discuss that project.
Strip of 50 neopixels
A 5V power source for the lights
2 x terminal blocks
2 x male to female jumper cables
A raspberry pi zero with SD card with Raspian installed
Power supply for the Pi zero (temporary)
Make sure that the raspberry pi power supply gives exactly 5 volts and is capable of outputting 2.5A current.
Make The Circuit
At first, examine your LED strip and find out which pin is what. Connect two wires to GND, one wire to Din, and one wire to +5V pin. Now, connect the 5V pin to the “+” terminal of the female jack and GND pin to the “-” terminal. Tighten the screws of the terminal block to ensure that the wires are connected properly.
Connect the Din and GND pin of the LEDstrip to the GPIO 18 and GND of the Raspberry Pi respectively, using the male-to-female jumper wires. Please note that Broadcom numbering (BCM) is used in this tutorial, not the physical numbering. It will look like below after making the connections:
Set Up The Weather API
You need to set up a weather API in order to get the outside temperature in your area. In this tutorial, forecast.io is used as they allow you to make 1000 queries per day free of cost. Go to forecast.io and select Developer option. Then, click sign up to create a developer account and provide your email address. A secret key will be sent to that address. Store it securely as you’ll need in the next step.
Prepare The Raspberry Pi
At first, you need to install the Adafruit NeoPixel library rpi_ws281x. Go here and follow the instructions to install the required files on your raspberry pi. Once installed, navigate to the examples folder, run any script you wish, and check if the LED strip is functioning properly.
Now, save the below script as stair_lights.py in the Raspberry Pi:
from urllib.request import urlopen
from neopixel import *
apikey="get_your_own_key" # get a key from https://developer.forecast.io/register
# Latitude & longitude - current values are Lancaster University
LED_COUNT = 50 # Number of LED pixels.
LED_PIN = 18 # GPIO pin connected to the pixels (must support PWM!).
LED_FREQ_HZ = 800000 # LED signal frequency in hertz (usually 800khz)
LED_DMA = 5 # DMA channel to use for generating signal (try 5)
LED_BRIGHTNESS = 8 # Set to 0 for darkest and 255 for brightest
LED_INVERT = False # True to invert the signal (when using NPN transistor level shift)
def color(strip, color, start, end):
for i in range(start, end+1):
strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS)
count = 0
#get the data from the api website
meteo = meteo.decode('utf-8')
weather = json.loads(meteo)
currentTemp = weather['currently']['temperature']
#negative number will always be on
color(strip, Color(0, 0, 255), 0,7) # Blue
#what's the temp?
if currentTemp > 0:
color(strip, Color(75, 75, 255), 8, 15) # light Blue
if currentTemp > 5:
color(strip, Color(0, 255, 0), 16, 23) # dark Green
if currentTemp > 10:
color(strip, Color(75, 255, 75), 24, 31) # light Green
if currentTemp > 15:
color(strip, Color(255, 100, 0), 32, 39) # yellow
elif currentTemp > 20:
color(strip, Color(255, 50, 0), 40, 47) #orange
elif currentTemp > 25:
color(strip, Color(255, 0, 0), 48, 50) # Red
#check every 5 minutes (change to crontab)
color(strip, Color(0,0,0), 0, 49)
Enter your own secret key in the apikey field on the 7th line. Also, replace the longitude and latitude values on line 9 and 10 with the coordinates of your area. Now save the file and you are almost done.
To start the script automatically after each reboot and check the outside temperature every five minutes, set up a cron task by entering the following command:
A file will be opened and add the following lines at the end of the file:
This is a small (17.9 mm x 10.3 mm) breakout board with Bosch’s BME280 pressure, temperature, and humidity sensor as well as AMS’ CCS811 digital gas sensor. The sensors work in concert to provide a complete measurement via I2C register reads of indoor air quality including temperature- and humidity-compensated estimates of equivalent CO2 concentration in parts per million (400 – 8192 ppm) and volatile organic chemical concentration in parts per billion (0 – 1187 ppb).
This is a simple fan controller with single LED temperature status light using an ATtiny85 microcontroller and DS18B20 temperature sensor. The fan is turned on/off based on temperature sensed and the controller goes in sleep mode when the temperature drop below a predefined threshold.
Simple ATtiny85 fan controller to turn a fan on/off based on temperature. Includes an LED as a temperature indicator. LED is dim at start of fan on temperature and blinks when above a max temperature. Fan is not PWM controlled since I am using a small 5V fan which is quiet running at 100%. The controller is in sleep state while the temperature is below the minimum threshold and wakes up every ~8 seconds to recheck the temperature. When temperature is above minimum threshold, the controller will stay awake checking every second till the temperature falls below the minimum threshold. The code uses ds18b20 library by Davide Gironi.
Temperature Controlled Fan With LED Status – [Link]
androkavo @ instructables.com build a nice looking wooden clock that is able to show time, temperature, humidity and also it has alarm. The clock is controlled through your web browser using wifi connectivity and it also has a vibration sensor to stop the alarm.
Wooden Digital Clock is controlled over WiFi – [Link]