Getting accurate weather data is crucial for many people but most of such data available on the internet are may not be accurate especially when it comes to rain. It is therefore necessary for them to have a local source of accurate weather data. Storing and analyzing of this data over some period will be very helpful for them. Raspberry Pi weather station then becomes a very useful and interesting project.
Raspberry Pi is known to many as a credit card sized computer initially built to teach computing in schools. It is though not just another computer. It can interact with the external physical environment with the help of sensors. This feature of the Pi is what we will exploit in building our own weather station.
In this weather station project we will deal with two key parameters in weather data – humidity and temperature.
Requirements of Raspberry-pi Weather Station.
- Raspberry Pi model B
- Adafruit Pi Cobbler breakout kit
- Connecting wires
- Half sized breadboard
- 4.7 k Ohm resistor
The DHT22 Sensor
Fig: - Pin diagram of DHT22 Sensor
The DHT22 sensor measures temperature and humidity, the two parameters we use in this weather station project. It uses polymer humidity capacitor for measuring humidity and the DS18B20 temperature sensor for measuring temperature. It has four pins numbered 1,2,3,4 in the pin diagram which are VDD (power supply), DATA (Sensor values), NULL (No connection) and GND (Ground). The data comprises of integral and decimal parts of both humidity and temperature values. The power supply must provide a voltage between 3.6 and 6 Volts. It can measure humidity in the full range of 0-100%RH and temperature between -40 and 125 degrees Celsius.
Steps for building your own Raspberry Pi Weather Station
Step 1:- Setting up the Pi
To set up the Pi you need to install an operating system, update the packages, and upgrade the operating system. Then, you may enable Wi-Fi and SSH and access Raspberry Pi from your PC. All the information you need can be found in the link below. Keep note of your Raspberry Pi IP address that you can get using the ‘ifconfig’ command.
Step 2:- Making your own Wordpress site
We can create a wordpress site to which we will upload our weather data so that it can be accessed on other devices like a smartphone. You will need to configure your Pi as a web server first. The above tutorial explains how to set up your own web server using Raspberry Pi. It mentions that the content of your website is displayed on /var/www. Change directory to enter the folder.
Download wordpress into the folder and unzip the downloaded file.
Move the contents inside the wordpress directory now created out of it using mv and remove the empty folder using rm command.
Change the permissions for wordpress
sudo chown -R www-data:www-data /var/www
Edit the default settings for wordpress using the GNU nano text editor.
Set the first two instances of AllowOverride to All. Restart apache using the command below.
From now on you will need to make changes to your mysql database. A free software tool that will help you in doing so is phpMyAdmin. Install phpMyAdmin and run it by entering the following on the address bar of your web browser.
Using phpMyAdmin create a SQL database named WordPressDB.
CREATE DATABASE WordPressDB
Enter the IP address of your Raspberry Pi on the address bar to get into the wordpress installation wizard.
Step 3:- Obtaining code for getting data from the sensor
The code is written in Python. You need to install certain packages to make it work. Install them using the commands given below.
apt-get install python python-dev libmysqlclient-dev
sudo apt-get install python-setuptools
The second command installs a tool called easy_install to install python modules without any trouble. Upgrade easy_install using the command below.
easy_install -U distribute
Install the python module MySQL-python that will help you save the weather data in your database of the weather station project.
Now you can download the python script for interfacing the sensor using git. If you don't have git installed, use apt install to install it.
git clone https://github.com/peterkodermac/Raspberry-Weather.git
This creates a folder Raspberry-pi Weather. Make it executable using chmod and modify getinfo.py by adding the fields like username and password of your wordpress database.
chmod +x /root/Raspberry-Weather/
Enter the bcm2835-1.8 directory and build the C-library.
sudo make install
gcc Adafruit_DHT.c -l bcm2835 -std=gnu99 -o Adafruit_DHT
Step 4:- Setting up crontab
The script for obtaining weather data is to be run frequently after a time period, say half an hour. This can be done with the help of crontab. To set up crontab you need to set your timezone using tzselect. Once you have selected your timezone open crontab using crontab -e and enter your timezone and add the line given below.
0,30 * * * * /usr/bin/python /root/Raspberry-Weather/getInfo.py
Step 5:- The weather graph
Install Raspberry Weather plugin from your Wordpress dashboard and activate it. A new icon appears on the Tiny MCE editor pressing on which adds a new line of code which is for the graph. Adjust the parameters to meet your requirements of the weather station.
Step 6:- Hardware connections
Fig: - Circuit diagram
After setting the hardware properly do the connections for interfacing the sensor with Raspberry Pi as given in the circuit diagram.
Step 7:- Testing
Enter the folder of the python script and run python getinfo.py. Check your database using phpMyAdmin.