One of the downsides of using an Arduino board in projects is the fact that it comes with some other components which may not be needed after the code has been uploaded to the board. These peripherals consume a considerable amount of power which affects the overall power consumed by the project, thus increasing the rate at which the energy stored in batteries used for powering such project. This makes the Arduino boards not suitable for projects which are required to run on battery for long period of time like a weather monitoring station as there will be a need for constant battery change due to the high consumption rate of the device. One way to solve this problem while still retaining the “ease of use” that accompanies the Arduino platform is to use the ATMEGA328p microcontroller used on the Arduino Uno itself. By using this chip, we eliminate the power loss of other components that make up an Arduino board and thus the battery will last for longer time.
Low-Power Arduino Weather Monitoring Station – [Link]
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.
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:
deba168‘s new instructable is a weather widget: “an application that can be downloaded on your PC, laptop or a mobile device and perform the job of providing easy access to weather information”
It’s an ESP8266 based weather display unit which retrieves localized weather information from http://www.wunderground.com by WLAN and displays it on a 128×64 OLED display. It displays the current time with date, some weather information like temperature, pressure, humidity and rainfall, and finally the forecasting for the next 3 days.
Check this demo video:
In order to build this project you need the following parts:
The project’s maker advises you to follow his steps in the code inside this zip file to avoid any problems in compiling.
For obtaining data from the Weather Underground , you need to get an API key through signing up in the website and purchasing one. Once you clarify that you won’t use it for commercial use, you won’t be asked for any pay methods.
To make sure that the code will work correctly, you have to change the following things.
Enter the Wunderground API Key
Enter your Wifi credentials
Adjust the location according to Wunderground API
Adjust UTC offset
The final step will be programming the ESP8266 module using FTDI programmer.
Check this video for more information and to see the project in action:
Do you wonder how to build a personal weather station with data logging capability? Well, Jesus Echavarria, a electronic engineer and DIY hardware maker from Spain, has shared the details of his design of a very professional-looking, full-featured, and portable weather data recorder that is capable of recording ambient temperature, humidity, and light level into a SD card along with a time stamp. The datalogger is based on the PIC18F2620 microcontroller and has options to be powered with a rechargeable 3.7V lithium battery as well as from a USB port. It also features a Lithium battery charger circuit on board using Microchip’s fully-integrated MCP73832 Li-Ion charge management controller IC that is configured to provide a charging current of ~200mA. Two on-board LEDs provide visual indications about the battery condition, such as fully charged or under charging.
On the sensor part, the project uses HDC1050 for temperature and humidity measurements, and TEMT6000X01 for ambient light sensing. The time keeping is performed using M41T00SM6 RTC chip with a separate back-up power supplied from a coin-cell battery. Two push buttons and two extra leds used in his design to provide a minimal user interface, and most of the configuration part (like time and date settings) is done through a PC terminal program using a command-line interface. The MCP2221 based USB-UART bridge provides the communication interface between the PC terminal program and the PIC microcontroller. Jesus also shares the design files of the 3D printed case he made for his data logger to get a more professional look.
educ8s.tv published a new project, a ESP8266 Wifi weather display.
In this video we are going to build a WiFi Weather display with the impressive Wemos D1 board. The board uses the ESP8266 chip in order to connect to the internet and we are going to program it using the Arduino IDE. The project gets weather data from the openweathermap.org website and displays some of the data on the display. As you are going to find out, you can build this project in less then 10 minutes. Let’s start!
A few weeks ago I published a video about the impressive WeMOS D1 board which is an ESP8266 based board which resembles the Arduino Uno. Today we are going to build our first project with it. A weather display, using this old LCD display shield I was using with Arduino Uno a long time ago. As you can see, the display works fine with the WeMOS D1 board! The project, connects to my WiFi network, and then it downloads the weather data for my location from the openweathermap website, and prints some of data in the display! It downloads new data for my location every 10 minutes. It is nice project to start with the ESP8266 chip. Let’s see how to build it.
WiFi Weather display using a Wemos D1 board and operweathermap.org website – [Link]
AughtNaughtZero @ instructables.com posted his latest project, a LED matrix visualizing data from a weather website such as temperature, pressure, humidity, wind speed etc.
This project utilizes a 6 x 16 matrix of RGB LEDs to visualize a weather forecast pulled from the Weather Underground API. A Raspberry Pi runs a python program designed to fetch weather forecast data from the API at regular intervals, parse the data into temperature, pressure, humidity, wind speed, chance of precipitation, and weather condition arrays, and then colorize and display that data across the LED matrix.
Vlad @ denialmedia.ca has build a solar powered weather station based on ATMega328 microcontroller that is able to measure temperature, a humidity, and UV radiation and it uploads measurement on WeatherUnderground network. The data are send to the air using a 433MHz link. The sensors used are DHT22, ML8511, BMP180 and a TP4056 charger IC is used to charge the Li-Po battery from a solar cell.