Arduino Weather Station - Developed by Célio R. Q
Arduino Weather Station - Developed by Célio R. Q
Arduino Weather Station - Developed by Célio R. Q
Goetten
The Project
Publicado em 19 de novembro de 2011
OBJECTIVES
This project have the goal of create a home made Weather Station capable of record data on
the internet and share this recorded data with everybody. This kind of architecture where
diferent devices share information over the internet sometimes is called ” Internet of Things ” .
The hole project is based on open source hardware Arduino and Pachube software to store
data so anyone can use the information posted here do create our own Weather Station or
anything else.
MAIN FEATURES
– Collect local weather information: outdoor temperature, relative humidity and barometric
pressure;
– Send data over a wireless connection between the sensors and the masters station that send
data to the internet.
– Show data in a local LCD display;
– Record data remotely;
– Publish weather data over the internet in different formats (trend, tables and so on);
ARCHITECTURE
https://celioric.wordpress.com/ 1/6
1/10/2018 Arduino Weather Station | developed by Célio R. Q. Goetten
System Overview
HARDWARE LIST
1x Arduino Uno
1x Arduino Duemilanove. Can be 2 Arduino Uno.
1x BMP085 Pressure and Temperature Sensor
1x TMP036 Temperature Sensor
1x Ethernet Shield
1x 16×4 LCD Display
1x HIH4030 Humidity Sensor
2x XBEE Shield
2x XBEE Pro Series 1 Radios
https://celioric.wordpress.com/ 2/6
1/10/2018 Arduino Weather Station | developed by Célio R. Q. Goetten
HARDWARE CONFIGURATION
XBEE MODULES:
There are some hardware configuration that should be done to get all the devices ready
to communicate with each other. The first step is configure the Xbee modules, for this project
I just changed the destination address low DL = 0xFFFF. If DH is 0 and DL equals 0xFFFF, the
module’s transmissions will be received by all modules.
To change this parameter is necessary a serial connection with the XBEE module. There are
many ways to do it, in this case was used an Arduino Duemilanove (without the
microprocessor!) that acts like a FTDI interface. The arduino UNO doesn’t work for this
situation. The easiest way to modify the parameter is to use the software X-CTU supplied by
Digi. This software works just with Windows SO and before connect to the hardware is
necessary install the FTDI driver which emulate a USB serial port.
To test your configuration download the code below to one of the arduinos:
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.print('H delay(1000);
Serial.print('L delay(1000);
}
and to the other one download the software PhysicalPixel located in the arduino library. If
everything is OK then you will see the led 13 blinking.
NOTE: FOR THIS TEST JUST STACK THE XBEE SHIELD WITH THE ARDUINO BOARD.
DON’T STACK THE ETHERNET SHIELD YET.
STACKING SHIELDS:
https://celioric.wordpress.com/ 3/6
1/10/2018 Arduino Weather Station | developed by Célio R. Q. Goetten
Pressure and temperature sensors BMP085 needs a 3.3Vcc power supply but the Xbee Shield
don’t have this header. The solution was again get the supply directly from the board pins.
The same happens with the 5Vcc for the other sensors. The solution was assembly small
pins in the Ethernet Shield or Arduino right below the Xbee Shield.
Here is the complete stack with Arduino, Ethernet Shield and Xbee Shield. Note the power
connection below the Xbee Shield.
https://celioric.wordpress.com/ 4/6
1/10/2018 Arduino Weather Station | developed by Célio R. Q. Goetten
Humidity sensor and Temperature sensor (TMP036) use simple analog input pins be careful to
not use analog inputs that already been used by BMP085 and Ethernet Shield.
After finish with the hardware is time to start with the software.
SOFTWARE DEFINITIONS:
The project use many libraries to control peripherals that was developed by the suppliers
device or third person. The documentation about these libraries are easily found at the internet.
The goal here is explain more about the communication tasks between the two devices. The
two devices was named according their functions:
1 – MASTER Device (Data Client): The device that contains the Ethernet Shield and is called
Master because it always initiate the communication with the SLAVE asking for some
information. The Master have the function of send the collected data to the internet (Pachube).
2 – SLAVE Device (Data Server): The device that collect data from the weather sensors and
send to Master when requested. The slave never initiate the communication with the Master.
In a more complex scenario one Master could communicate with several slaves.
The master talk with the slave through a communication protocol. For this project was created
a small protocol where the Master send a byte to slave asking for information and the slave
returns a information packet containing the weather data.
The encoded packet sent by the slave have the following structure:
xxxxTyyyyPzzzzH where xxxx, yyyy and zzzz are the values and T, P and Z are the delimiters.
A normal frame could have the following format 2340T1023P81H , decoding it you will get
Temperature = 23.40 oC, Pressure = 1023 hPa and Humidity = 81%.
Here is the C code that encode the information:
Serial.print(temp_int, DEC);
Serial.print(‘T’);
Serial.print(press_int, DEC);
Serial.print(‘P’);
Serial.print(humidity, DEC);
Serial.print(‘H’);
pressure = atoi(chpt);
}
chpt = strtok(NULL, “H”);
if (chpt > 0){
humidity = atoi(chpt);
}
Anúncios
Report this ad
Report this ad
https://celioric.wordpress.com/ 6/6