Fork me on GitHub

Arduino WeatherShield

Submitted by Mauro Cicolella on 2012, January 24 - 17:24
Your rating: None Average: 5 (1 vote)
Arduino Weather Shield
Development Status: 
Stable Release
Mauro Cicolella
Tested on: 
Short Description: 

With this plugin Freedomotic can communicate with Arduino WeatherShield by

Supported Hardware: 
Arduino 2009
Supported Hardware: 
Arduino Uno
Supported Hardware: 


The WeatherShield, created by, is a unit that lets Arduino able to read Pressure, Temperature and Relative Humidity. The shield is equipped with three sensors and a PIC12F683 microcontroller programmed with a specific firmware that interfaces with Arduino through a two line bidirectional synchronous serial connection. The microcontroller is responsible for sampling and averaging the last 8 humidity, pressure and temperature values, providing it to the Arduino in an ASCII readable format expressed in Celsius, hPa and relative % units. More details can be found here.

Board protocol

The proposed solution uses an ethernet shield to connect Arduino board to your lan. On Arduino you must upload the included sketch to interact with the WeatherShield to retrieve sensors values and shows them as a string with ":" char as delimiter. Also you must add to your Arduino IDE the WeatherShield lib (included into PLUGIN_ROOT/resources/WeatherShield/WeatherShieldLibrary).

The default address is on port 80. If you desire to change it you must edit the sketch, recompile and upload to Arduino board. To verify if it works open your browser and digit the board address "". You would see a string reporting the sensors values.

How to read values from an object

With this board you can read the temperature behavior of any thermometer device in your environment.

For this example we use a thermometer object:

  1. Right click on the thermometer object in the environment to show its configuration panel
  2. Change the property "protocol" to "ArduinoWeatherShield"
  3. Change the property "address" to a string composed of HTTP_BOARD_ADDRESS:HTTP_PORT  where HTTP_ADDRESS is the http URL on which the Arduino board is listen to. An example address can be "" this identifies the board listening on port 80 of the http URL listening for temperature values (use "P" for pressure and "H" for humidity). 
  4. Under "temperature" (in Data Source Configuration) select the trigger called "Arduino WeatherShield reads temperature change"

 The plugin is also able to read any humidity and pressure change.

From 5.6 version it uses autodiscovering feature so 3 new things (thermometer, barometer and hygrometer) are added and configured automatically.


You can find some screenshots at this link

Source code

Hosted here

Open Source Internet of Things Framework Drupal theme by Kiwi Themes.