
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
<title>Starter Kit: Weather Station – Tinkerforge</title>

<!--<link type="text/css" rel="stylesheet" href="http://www.tinkerforge.com/static/base_tf.css" />-->
<link type="text/css" rel="stylesheet" href="http://www.tinkerforge.com/static/jquery.lightbox-0.5.css" />
<meta name="keywords" content="Tinkerforge, Open Source Hardware, Bricks, Bricklets, USB Controllable, USB Sensing, USB Controlling" />
<meta name="description" content="Easy-to-use open source hardware. Control motors and sense the environment over USB, Ethernet or Wi-Fi/WLAN with C/C++, C#, Delphi/Lazarus, Java, JavaScript, LabVIEW, Mathematica, MATLAB/Octave, Perl, PHP, Python, Ruby, Shell, Visual Basic .NET or directly over TCP/IP." />
<meta name="copyright" content="Tinkerforge GmbH" />
<!--<script type="text/javascript">document.write('<style>.noscript { display: none; }</style>');</script>-->


    
    <link rel="stylesheet" href="../../_static/documentation_tf.css" type="text/css" />
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../../',
        VERSION:     '1.0',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="../../_static/jquery.js"></script>
    <script type="text/javascript" src="../../_static/underscore.js"></script>
    <script type="text/javascript" src="../../_static/doctools.js"></script>
    <link rel="top" title="Tinkerforge" href="../../index.html" />
    <link rel="up" title="Starter Kits" href="../Kits.html" />
    <link rel="next" title="Construction - Basic Weather Station" href="Construction_Basic.html" />
    <link rel="prev" title="Starter Kits" href="../Kits.html" />

<script type="text/javascript" src="http://www.tinkerforge.com/static/jquery.lightbox-0.5.js"></script>
<script type="text/javascript">$(function() { $('#gallery a').lightBox(); });</script>
<script type="text/javascript">$(function() { $(".sphinxsidebarwrapper").filter(function() { return $.trim($(this).text()).length == 0; }).parent().hide(); });</script>


  </head>
  <body>
<div id="wrapper">
	<div id="tfcontent">
		<div class="boxContent3">


<div class="toctree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../Getting_Started.html">Getting Started</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../Primer.html">Primer</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../Tutorials/Tutorials.html">Tutorials</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../FAQ.html">FAQ</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../Hardware/Hardware.html">Hardware</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../Hardware/Bricks/Bricks.html">Bricks</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../Hardware/Bricklets/Bricklets.html">Bricklets</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../Hardware/Master_Extensions/Master_Extensions.html">Master Extensions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../Hardware/Power_Supplies/Power_Supplies.html">Power Supplies</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../Hardware/Accessories/Accessories.html">Accessories</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../Timeline.html">Timeline</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../Software/Software.html">Software</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../Software/Brickd.html">Brick Daemon (brickd)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../Software/Brickv.html">Brick Viewer (brickv)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../Software/API_Bindings.html">API Bindings</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../Software/Firmwares_And_Plugins.html">Firmwares and Plugins</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../Software/Device_Identifier.html">Device Identifier</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../Source_Code.html">Source Code and Bug Tracking</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../Programming_Interface.html">Programming Interface</a></li>
</ul>
</li>
<li class="toctree-l1 current"><a class="reference internal" href="../Kits.html">Starter Kits</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="">Weather Station</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#features">Features</a></li>
<li class="toctree-l3"><a class="reference internal" href="#description">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#technical-specifications">Technical Specifications</a></li>
<li class="toctree-l3"><a class="reference internal" href="#resources">Resources</a></li>
<li class="toctree-l3"><a class="reference internal" href="#firmware-updating-and-first-tests">Firmware updating and first tests</a></li>
<li class="toctree-l3"><a class="reference internal" href="#demo-application">Demo Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="#construction">Construction</a><ul>
<li class="toctree-l4"><a class="reference internal" href="Construction_Basic.html">Basic</a></li>
<li class="toctree-l4"><a class="reference internal" href="Construction_Wifi.html">With Wi-Fi</a></li>
<li class="toctree-l4"><a class="reference internal" href="Construction_REDBrick.html">With RED Brick</a></li>
<li class="toctree-l4"><a class="reference internal" href="Construction_RaspberryPi.html">With Raspberry Pi</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#projects">Projects</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#display-environment-measurements-on-lcd">Display Environment Measurements on LCD</a><ul>
<li class="toctree-l5"><a class="reference internal" href="CToLCD.html">Using C/C++</a></li>
<li class="toctree-l5"><a class="reference internal" href="CSharpToLCD.html">Using C#</a></li>
<li class="toctree-l5"><a class="reference internal" href="DelphiToLCD.html">Using Delphi/Lazarus</a></li>
<li class="toctree-l5"><a class="reference internal" href="JavaToLCD.html">Using Java</a></li>
<li class="toctree-l5"><a class="reference internal" href="PHPToLCD.html">Using PHP</a></li>
<li class="toctree-l5"><a class="reference internal" href="PythonToLCD.html">Using Python</a></li>
<li class="toctree-l5"><a class="reference internal" href="RubyToLCD.html">Using Ruby</a></li>
<li class="toctree-l5"><a class="reference internal" href="VBNETToLCD.html">Using Visual Basic .NET</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#internet-of-things-connect-to-xively">Internet of Things / Connect to Xively</a><ul>
<li class="toctree-l5"><a class="reference internal" href="PythonToXively.html">Using Python to upload weather data to Xively</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#embed-live-measurements-on-website">Embed Live Measurements on Website</a><ul>
<li class="toctree-l5"><a class="reference internal" href="PHPToWebsite.html">Using PHP to Embed Live Measurements on Website</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#show-statistics-with-button-control">Show Statistics with Button Control</a><ul>
<li class="toctree-l5"><a class="reference internal" href="CSharpToButtonControl.html">Using C# to show different Weather Statistics</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#smart-home-integration-using-openhab">Smart Home Integration using openHAB</a><ul>
<li class="toctree-l5"><a class="reference internal" href="OpenHABOnREDBrick.html">Smart Home Integration using openHAB and RED Brick</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#further-enhancements">Further Enhancements</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#bigger-push-buttons">Bigger Push Buttons</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../HardwareHacking/HardwareHacking.html">Hardware Hacking</a></li>
<li class="toctree-l2"><a class="reference internal" href="../ServerRoomMonitoring/ServerRoomMonitoring.html">Server Room Monitoring</a></li>
<li class="toctree-l2"><a class="reference internal" href="../Blinkenlights/Blinkenlights.html">Blinkenlights</a></li>
<li class="toctree-l2"><a class="reference internal" href="../InternetOfThings/InternetOfThings.html">Internet of Things</a></li>
<li class="toctree-l2"><a class="reference internal" href="../CameraSlider/CameraSlider.html">Camera Slider</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../Embedded/Boards.html">Embedded Boards</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../Embedded/Raspberry_Pi.html">Raspberry Pi</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../Specifications.html">Specifications</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../Technical_Data.html">Technical Data</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../Low_Level_Protocols/TCPIP.html">TCP/IP Protocol</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../Low_Level_Protocols/Modbus.html">Modbus Protocol</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../Low_Level_Protocols/Wireshark_Dissector.html">Wireshark Dissector</a></li>
</ul>
</li>
</ul>

</div>



<div id="shoplink_img">
	<a href="../../../shop/kits/starter-kit-weather-station.html"><img alt="Shop" width="32" height="40" src="../../_images/Misc/cart-icon.png" /></a>
</div>
<div id="shoplink_a">
	<a href="../../../shop/kits/starter-kit-weather-station.html">In Shop</a>
</div>



    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="starter-kit-weather-station">
<span id="id1"></span><h1>Starter Kit: Weather Station<a class="headerlink" href="#starter-kit-weather-station" title="Permalink to this headline">¶</a></h1>
{% from "macros.html" import tfdocstart, tfdocimg, tfdocend %}
{{
    tfdocstart("Kits/weather_station_table_350.jpg",
               "Kits/weather_station_table_800.jpg",
               "Weather Station: Basic Kit on table")
}}
{{
    tfdocimg("Kits/weather_station_black_table_100.jpg",
             "Kits/weather_station_black_table_800.jpg",
             "Weather Station (black): Basic Kit on table")
}}
{{
    tfdocimg("Kits/weather_station_wall_far_100.jpg",
             "Kits/weather_station_wall_far_800.jpg",
             "Weather Station: With Wi-Fi on wall")
}}
{{
    tfdocimg("Kits/weather_station_wall_near_100.jpg",
             "Kits/weather_station_wall_near_800.jpg",
             "Weather Station: With Wi-Fi on wall")
}}
{{
    tfdocimg("Kits/weather_station_construction_rpi_front_100.jpg",
             "Kits/weather_station_construction_rpi_front_800.jpg",
             "Weather Station: With Raspberry Pi")
}}
{{
    tfdocimg("Kits/weather_station_demo_100.jpg",
             "Kits/weather_station_demo.jpg",
             "Weather Station: Demo Application")
}}
{{
    tfdocimg("Kits/weather_station_xively_graphs_100.jpg",
             "Kits/weather_station_xively_graphs_800.jpg",
             "Weather Station: Xively graphs")
}}
{{
    tfdocimg("Kits/weather_station_lcd_all_100.jpg",
             "Kits/weather_station_lcd_all_orig.jpg",
             "Weather Station: Different Modes")
}}
{{
    tfdocimg("Kits/weather_station_website_100.jpg",
             "Kits/weather_station_website_orig.jpg",
             "Weather Station: Embedded in website")
}}
{{
    tfdocimg("Kits/weather_station_buttons_assembled_100.jpg",
             "Kits/weather_station_buttons_assembled_800.jpg",
             "Weather Station: With big buttons on the left side")
}}
{{ tfdocend() }}<div class="section" id="features">
<h2>Features<a class="headerlink" href="#features" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li>Fully-fledged open source weather station</li>
<li>Measures Temperature, Humidity, Air Pressure and Illuminance</li>
<li>High Precision and Resolution<ul>
<li>e.g. Air Pressure 0.012mbar and Temperature 0.01°C</li>
</ul>
</li>
<li>Control over USB, Wi-Fi and Ethernet or with RED Brick and Raspberry Pi</li>
<li>Modifiable: more buttons, more sensors and customized software</li>
<li>Demo Application available</li>
<li>Internet of Things (IoT) capable</li>
</ul>
</div>
<div class="section" id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
<p>The <em>Starter Kit: Weather Station</em> is a fully-fledged open source weather
station. It measures temperature, humidity, air pressure and illuminance
with high precision.</p>
<p>It can be controlled by an (Embedded-) PC.
Control via Wi-Fi is possible if a <a class="reference internal" href="../../Hardware/Master_Extensions/WIFI_Extension.html#wifi-extension"><em>WIFI Extension</em></a> is
added. As alternative the weather station can be controlled over your local
network when adding an <a class="reference internal" href="../../Hardware/Master_Extensions/Ethernet_Extension.html#ethernet-extension"><em>Ethernet Extension</em></a>.
To use it standalone you can add a <a class="reference internal" href="../../Hardware/Bricks/RED_Brick.html#red-brick"><em>RED Brick</em></a> or another
embedded board such as a
<a class="reference internal" href="../../Embedded/Raspberry_Pi.html#embedded-raspberry-pi"><em>Raspberry Pi</em></a> which can be mounted in the case.
Thus Internet of Things applications are a possible with this kit (e.g. see
<a class="reference internal" href="#starter-kit-weather-station-xively"><em>Xively Example</em></a>).</p>
<p>There are several example projects available, e.g. the measurements can be
displayed on the 20x4 character LCD, they can be shown on a
website or uploaded to <a class="reference external" href="https://xively.com/">Xively (Cosm)</a>.
With the four buttons of the <a class="reference internal" href="../../Hardware/Bricklets/LCD_20x4.html#lcd-20x4-bricklet"><em>LCD 20x4 Bricklet</em></a>
it is possible to control different modes.</p>
<p>A demo application, available for Windows, Linux and Mac OS X, implements
some of these example projects and can be used to test the station.</p>
<p>The kit allows to modify soft- and hardware. The casing consists of
tinker-friendly PMMA which can be easily modified (e.g. drill new holes with
simple wood drill). Additionally mounting holes for
<a class="reference internal" href="../../Hardware/Bricklets/Analog_In.html#analog-in-bricklet"><em>Analog In</em></a> and <a class="reference internal" href="../../Hardware/Bricklets/IO4.html#io4-bricklet"><em>IO-4</em></a> Bricklets
are provided, this gives the possibility to add more sensors
(<a class="reference external" href="https://en.wikipedia.org/wiki/Anemometer">anemometer</a>,
<a class="reference external" href="https://en.wikipedia.org/wiki/Rain_gauge">pluviometer</a> etc).</p>
<p>Programming of the weather station can be done with all of the available
bindings (<a class="reference internal" href="../../Software/API_Bindings_C.html#api-bindings-c"><em>C/C++</em></a>, <a class="reference internal" href="../../Software/API_Bindings_CSharp.html#api-bindings-csharp"><em>C#</em></a>, <a class="reference internal" href="../../Software/API_Bindings_Delphi.html#api-bindings-delphi"><em>Delphi/Lazarus</em></a>, <a class="reference internal" href="../../Software/API_Bindings_Java.html#api-bindings-java"><em>Java</em></a>, <a class="reference internal" href="../../Software/API_Bindings_JavaScript.html#api-bindings-javascript"><em>JavaScript</em></a>, <a class="reference internal" href="../../Software/API_Bindings_LabVIEW.html#api-bindings-labview"><em>LabVIEW</em></a>, <a class="reference internal" href="../../Software/API_Bindings_Mathematica.html#api-bindings-mathematica"><em>Mathematica</em></a>, <a class="reference internal" href="../../Software/API_Bindings_MATLAB.html#api-bindings-matlab"><em>MATLAB/Octave</em></a>, <a class="reference internal" href="../../Software/API_Bindings_Perl.html#api-bindings-perl"><em>Perl</em></a>, <a class="reference internal" href="../../Software/API_Bindings_PHP.html#api-bindings-php"><em>PHP</em></a>, <a class="reference internal" href="../../Software/API_Bindings_Python.html#api-bindings-python"><em>Python</em></a>, <a class="reference internal" href="../../Software/API_Bindings_Ruby.html#api-bindings-ruby"><em>Ruby</em></a>, <a class="reference internal" href="../../Software/API_Bindings_Shell.html#api-bindings-shell"><em>Shell</em></a>, <a class="reference internal" href="../../Software/API_Bindings_VBNET.html#api-bindings-vbnet"><em>Visual Basic .NET</em></a>). Example implementations for many supported programming languages
and a demo application are available. This will give you a starting point into the
programming with Tinkerforge.</p>
<p>A small video that shows the construction and some applications
is available on Youtube:</p>
<center><iframe width="640" height="360" src="http://www.youtube-nocookie.com/embed/uwsseiiu_4A" frameborder="0" allowfullscreen></iframe></center></div>
<div class="section" id="technical-specifications">
<h2>Technical Specifications<a class="headerlink" href="#technical-specifications" title="Permalink to this headline">¶</a></h2>
<table border="1" class="docutils">
<colgroup>
<col width="35%" />
<col width="65%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Property</th>
<th class="head">Value</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>Air Pressure</td>
<td>10mbar - 1200mbar in 0.012mbar steps</td>
</tr>
<tr class="row-odd"><td>Illumination</td>
<td>0lux - 900lux in 0.1lux steps</td>
</tr>
<tr class="row-even"><td>Relative Humidity</td>
<td>0% RH - 100% RH in 0.1% RH steps</td>
</tr>
<tr class="row-odd"><td>Temperature</td>
<td>-40°C - 85°C in 0.01°C steps</td>
</tr>
<tr class="row-even"><td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr class="row-odd"><td>Dimensions (W x D x H)</td>
<td>240 x 46 x 100mm (9.45 x 1.81 x 3.94&quot;)</td>
</tr>
<tr class="row-even"><td>Weight</td>
<td>376g</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="resources">
<span id="starter-kit-weather-station-resources"></span><h2>Resources<a class="headerlink" href="#resources" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li>Weather Station Case as FreeCAD CAD files (<a class="reference external" href="https://github.com/Tinkerforge/weather-station/tree/master/case">Download</a>)</li>
<li>Example Source Code for <a class="reference internal" href="#starter-kit-weather-station-write-to-lcd"><em>Display Environment Measurements on LCD</em></a> (Download: <a class="reference external" href="https://github.com/Tinkerforge/weather-station/tree/master/write_to_lcd/c">C</a>, <a class="reference external" href="https://github.com/Tinkerforge/weather-station/tree/master/write_to_lcd/csharp">C#</a>, <a class="reference external" href="https://github.com/Tinkerforge/weather-station/tree/master/write_to_lcd/delphi">Delphi</a>, <a class="reference external" href="https://github.com/Tinkerforge/weather-station/tree/master/write_to_lcd/java">Java</a>, <a class="reference external" href="https://github.com/Tinkerforge/weather-station/tree/master/write_to_lcd/php">PHP</a>, <a class="reference external" href="https://github.com/Tinkerforge/weather-station/tree/master/write_to_lcd/python">Python</a>, <a class="reference external" href="https://github.com/Tinkerforge/weather-station/tree/master/write_to_lcd/ruby">Ruby</a>, <a class="reference external" href="https://github.com/Tinkerforge/weather-station/tree/master/write_to_lcd/vbnet">Visual Basic .NET</a>)</li>
<li>Example Source Code for <a class="reference internal" href="#starter-kit-weather-station-xively"><em>Internet of Things / Connect to Xively</em></a> (Download: <a class="reference external" href="https://github.com/Tinkerforge/weather-station/tree/master/xively/python">Python</a>)</li>
<li>Example Source Code for <a class="reference internal" href="#starter-kit-weather-station-website"><em>Embed Live Measurements on Website</em></a> (Download: <a class="reference external" href="https://github.com/Tinkerforge/weather-station/tree/master/website/php">PHP</a>)</li>
<li>Example Source Code for <a class="reference internal" href="#starter-kit-weather-station-button-control"><em>Show Statistics with Button Control</em></a> (Download: <a class="reference external" href="https://github.com/Tinkerforge/weather-station/tree/master/button_control/csharp">C#</a>)</li>
<li>Example Configuration for <a class="reference internal" href="#starter-kit-weather-station-openhab"><em>Smart Home Integration using openHAB</em></a> (<a class="reference external" href="https://github.com/Tinkerforge/weather-station/tree/master/openhab">Download</a>)</li>
<li><a class="reference internal" href="#starter-kit-weather-station-demo"><em>Demo Application</em></a> (Download: <a class="reference external" href="http://download.tinkerforge.com/kits/weather_station/windows/starter_kit_weather_station_demo_windows_latest.exe">Windows</a>, <a class="reference external" href="http://download.tinkerforge.com/kits/weather_station/linux/starter-kit-weather-station-demo_linux_latest.deb">Linux</a>, <a class="reference external" href="http://download.tinkerforge.com/kits/weather_station/macos/starter_kit_weather_station_demo_macos_latest.dmg">Mac OS X</a>, <a class="reference external" href="https://github.com/Tinkerforge/weather-station/tree/master/demo">Source Code</a>)</li>
</ul>
</div>
<div class="section" id="firmware-updating-and-first-tests">
<h2>Firmware updating and first tests<a class="headerlink" href="#firmware-updating-and-first-tests" title="Permalink to this headline">¶</a></h2>
<p>As a very first step you should try out and update your Bricks and Bricklets.</p>
<p>For that you need to install the <a class="reference internal" href="../../Software/Brickd.html#brickd-installation"><em>Brick Daemon</em></a> and
the <a class="reference internal" href="../../Software/Brickv.html#brickv-installation"><em>Brick Viewer</em></a>. Connect all Bricklets to the Master
Brick and connect it via USB to your PC. Afterwards use Brick Viewer to check
if all of the firmwares up to date (Updates / Flashing button). If not, you can
<a class="reference internal" href="../../Software/Brickv.html#brickv-flash-firmware"><em>update the Bricks</em></a> and
<a class="reference internal" href="../../Software/Brickv.html#brickv-flash-plugin"><em>update the Bricklets</em></a> with the Brick
Viewer, too:</p>
<a class="reference external image-reference" href="../../_images/Kits/weather_station_update_orig.jpg"><img alt="Weather Station update in Brick Viewer" class="align-center" src="../../_images/weather_station_update_350.jpg" style="width: 350.0px; height: 193.0px;" /></a>
<p>As next step click through the tabs of the Brick Viewer
to see if all of the sensors are working correctly. Now you can be sure that
the Bricks and Bricklets have versions that work together and that
everything will work if it is screwed together in the weather station
enclosure.</p>
</div>
<div class="section" id="demo-application">
<span id="starter-kit-weather-station-demo"></span><h2>Demo Application<a class="headerlink" href="#demo-application" title="Permalink to this headline">¶</a></h2>
<p>If the hardware is running correctly you can also try the demo application for
this Starter Kit: Weather Station. It implements three of the presented
<a class="reference internal" href="#starter-kit-weather-station-projects"><em>projects</em></a> for demonstration
purposes:</p>
<ol class="arabic simple">
<li><a class="reference internal" href="#starter-kit-weather-station-write-to-lcd"><em>Display Environment Measurements on LCD</em></a></li>
<li><a class="reference internal" href="#starter-kit-weather-station-button-control"><em>Show Statistics with Button Control</em></a></li>
<li><a class="reference internal" href="#starter-kit-weather-station-xively"><em>Internet of Things / Connect to Xively</em></a></li>
</ol>
<p>Each project can be selected with its own tab. The first project only displays
the measured values. The second project is more complex and displays
min, max and average values as well as graphs for these measurements.
The display mode can be changed by pressing the buttons at the LCD 20x4
Bricklet or in the application. In some modes the buttons can be pressed
multiple times, such that other measurements will be shows.</p>
<p>Finally the Xively projects lets you upload your measurements.
At first you have to register on <a class="reference external" href="https://xively.com">xively.com</a>.
Next you have to create a Feed ID, API key and four
channels to Upload the values (AirPressure, AmbientLight, Humidity and
Temperature). Feed ID, API Key and the upload interval have to be configured in
the demo application. Please take a look at the project description for further
information</p>
<p>The download link is in the <a class="reference internal" href="#starter-kit-weather-station-resources"><em>resources</em></a>.</p>
<a class="reference external image-reference" href="../../_images/Kits/weather_station_demo.jpg"><img alt="Weather Station Demo Application Screenshot" class="align-center" src="../../_images/weather_station_demo_350.jpg" style="width: 350.0px; height: 220.0px;" /></a>
</div>
<div class="section" id="construction">
<h2>Construction<a class="headerlink" href="#construction" title="Permalink to this headline">¶</a></h2>
<p>There is no singular way to build the Weather Station. In the
following we will show one way to build different variants.
The idea of the Weather Station Starter Kit is, that
it is easily extensible and modifiable.</p>
<p>For example: You can put the Bricks and Bricklets on spacers
(as is mostly shown below), but you can also screw them directly
to the case to save space. There are several holes that allow
to mount addition Analog In, Temperature or IO-4 Bricklets to
read out more sensors.</p>
<p>The utilized PMMA plastic is easy to work with, so you will be able
to add new holes or slots or similar if needed.</p>
<p>Here are four different construction variants:</p>
<ul class="simple">
<li><a class="reference internal" href="Construction_Basic.html#starter-kit-weather-station-construction-basic"><em>Basic Weather Station</em></a></li>
<li><a class="reference internal" href="Construction_Wifi.html#starter-kit-weather-station-construction-wifi"><em>Wi-Fi Weather Station</em></a></li>
<li><a class="reference internal" href="Construction_REDBrick.html#starter-kit-weather-station-construction-red-brick"><em>RED Brick Weather Station</em></a></li>
<li><a class="reference internal" href="Construction_RaspberryPi.html#starter-kit-weather-station-construction-raspberry-pi"><em>Raspberry Pi Weather Station</em></a></li>
</ul>
<div class="toctree-wrapper compound">
</div>
<p>We could also control the Weather Station with the RS485 or
Ethernet Extension. The setup in this case is the same as with the &quot;Wi-Fi
Weather Station&quot; described above, we just have to exchange the WIFI Extension
with the RS485 or Ethernet Extension.</p>
<p>If the Ethernet Extension with PoE is used, the stack can also be powered by
PoE. in this case the Step-Down Power Supply and the DC Jack Adapter are not
needed.</p>
</div>
<div class="section" id="projects">
<span id="starter-kit-weather-station-projects"></span><h2>Projects<a class="headerlink" href="#projects" title="Permalink to this headline">¶</a></h2>
<p>There are several applications for the Weather Station:</p>
<div class="section" id="display-environment-measurements-on-lcd">
<span id="starter-kit-weather-station-write-to-lcd"></span><h3>Display Environment Measurements on LCD<a class="headerlink" href="#display-environment-measurements-on-lcd" title="Permalink to this headline">¶</a></h3>
<p>The most obvious application for the Weather Station Starter Kit is to display
the measurements of the environment on the LCD 20x4 Bricklet. This can be
done through four different paths:</p>
<ul class="simple">
<li>USB connection to PC: Install Brick Daemon and application on PC, connect
Master Brick of Weather Station to PC via USB.</li>
<li>Wi-Fi connection to PC: Install application on PC, connect to
Weather Station directly over Wi-Fi or through an access point.</li>
<li>RED Brick: Use Brick Viewer to upload the application. How this works
in detail is described in the <a class="reference internal" href="../../Hardware/Bricks/RED_Brick_Program_Tab.html#red-brick-program-tab"><em>RED Brick documenation</em></a>.</li>
<li>Raspberry Pi or other embedded board integrated in Weather Station:
Install Brick Daemon and application on embedded board, connect
Master Brick of Weather Station to embedded board via USB.</li>
</ul>
<p>All four possible solutions can use the same source code.</p>
<p>Example implementations with step-by-step instructions are available for: <a class="reference internal" href="CToLCD.html#starter-kit-weather-station-c-to-lcd"><em>C</em></a>, <a class="reference internal" href="CSharpToLCD.html#starter-kit-weather-station-csharp-to-lcd"><em>C#</em></a>, <a class="reference internal" href="DelphiToLCD.html#starter-kit-weather-station-delphi-to-lcd"><em>Delphi</em></a>, <a class="reference internal" href="JavaToLCD.html#starter-kit-weather-station-java-to-lcd"><em>Java</em></a>, <a class="reference internal" href="PHPToLCD.html#starter-kit-weather-station-php-to-lcd"><em>PHP</em></a>, <a class="reference internal" href="PythonToLCD.html#starter-kit-weather-station-python-to-lcd"><em>Python</em></a>, <a class="reference internal" href="RubyToLCD.html#starter-kit-weather-station-ruby-to-lcd"><em>Ruby</em></a>, <a class="reference internal" href="VBNETToLCD.html#starter-kit-weather-station-vbnet-to-lcd"><em>Visual Basic .NET</em></a>.</p>
<div class="toctree-wrapper compound">
</div>
</div>
<div class="section" id="internet-of-things-connect-to-xively">
<span id="starter-kit-weather-station-xively"></span><h3>Internet of Things / Connect to Xively<a class="headerlink" href="#internet-of-things-connect-to-xively" title="Permalink to this headline">¶</a></h3>
<p><a class="reference external" href="https://xively.com/">Xively</a> is a service that provides the possibility to
analyze and visualize the &quot;Internet of Things&quot;. They can store a history of our
Weather Station data and we get pretty graphs:</p>
<a class="reference external image-reference" href="../../_images/Kits/weather_station_xively_graphs_orig.jpg"><img alt="Xively datastreams shown as graph" class="align-center" src="../../_images/weather_station_xively_graphs_600.jpg" style="width: 600.0px; height: 698.0px;" /></a>
<p>An example implementation with step-by-step instructions that shares the
weather data with Xively is available
in <a class="reference internal" href="PythonToXively.html#starter-kit-weather-station-python-to-xively"><em>Python</em></a>.</p>
<div class="toctree-wrapper compound">
</div>
<p>The Weather Station in our laboratory has the Xively feed
<a class="reference external" href="https://xively.com/feeds/125881">125881</a>.</p>
</div>
<div class="section" id="embed-live-measurements-on-website">
<span id="starter-kit-weather-station-website"></span><h3>Embed Live Measurements on Website<a class="headerlink" href="#embed-live-measurements-on-website" title="Permalink to this headline">¶</a></h3>
<p>Another application for the Weather Station, is to embed the weather data
on a website:</p>
<a class="reference external image-reference" href="../../_images/Kits/weather_station_website_orig.jpg"><img alt="Live Measurements on Website" class="align-center" src="../../_images/weather_station_website_orig.jpg" style="width: 464.0px; height: 231.0px;" /></a>
<p>In this project we will use JavaScript/AJAX to update the measurements
every 5 seconds, without the need to reload the website.</p>
<p>An example implementation is available
in <a class="reference internal" href="PHPToWebsite.html#starter-kit-weather-station-website-php"><em>PHP</em></a>.</p>
<div class="toctree-wrapper compound">
</div>
</div>
<div class="section" id="show-statistics-with-button-control">
<span id="starter-kit-weather-station-button-control"></span><h3>Show Statistics with Button Control<a class="headerlink" href="#show-statistics-with-button-control" title="Permalink to this headline">¶</a></h3>
<p>Since the <a class="reference internal" href="../../Hardware/Bricklets/LCD_20x4.html#lcd-20x4-bricklet"><em>LCD 20x4 Bricklet</em></a> features four buttons,
we can enhance the first application by more data that can be switched with
the buttons.</p>
<a class="reference external image-reference" href="../../_images/Kits/weather_station_lcd_all_orig.jpg"><img alt="Different modes of button control project" class="align-center" src="../../_images/weather_station_lcd_all_orig.jpg" style="width: 700.0px; height: 242.0px;" /></a>
<p>The four buttons in this project will be used to switch through</p>
<ul class="simple">
<li>standard weather measurement,</li>
<li>24h min/max/average,</li>
<li>24h graph and</li>
<li>time and date.</li>
</ul>
<p>An example implementation is available
in <a class="reference internal" href="CSharpToButtonControl.html#starter-kit-weather-station-button-control-csharp"><em>C#</em></a>.</p>
<div class="toctree-wrapper compound">
</div>
</div>
<div class="section" id="smart-home-integration-using-openhab">
<span id="starter-kit-weather-station-openhab"></span><h3>Smart Home Integration using openHAB<a class="headerlink" href="#smart-home-integration-using-openhab" title="Permalink to this headline">¶</a></h3>
<p>The Weather Station can be integrated into an <a class="reference external" href="http://www.openhab.org/">openHAB</a>
managed smart home using the <a class="reference external" href="https://github.com/openhab/openhab/wiki/Tinkerforge-Binding/">openHAB Tinkerforge bindings</a>.</p>
<a class="reference external image-reference" href="../../_images/Kits/weather_station_openhab_orig.jpg"><img alt="openHAB example sitemap" class="align-center" src="../../_images/weather_station_openhab_orig.jpg" style="width: 614.0px; height: 425.0px;" /></a>
<p>As an example the required <a class="reference internal" href="OpenHABOnREDBrick.html#starter-kit-weather-station-openhab-red-brick"><em>openHAB configuration steps</em></a> for the integration are
demonstrated using a RED Brick.</p>
<div class="toctree-wrapper compound">
</div>
</div>
</div>
<div class="section" id="further-enhancements">
<h2>Further Enhancements<a class="headerlink" href="#further-enhancements" title="Permalink to this headline">¶</a></h2>
<p>If you modded, extended or improved your Weather Station in any way and you
have published your results on our <a class="reference external" href="http://www.tinkerunity.org/wiki/">Wiki</a>,
on your blog or similar: Please give us a notice. We would love to add a link
to your project here!</p>
<div class="section" id="bigger-push-buttons">
<h3>Bigger Push Buttons<a class="headerlink" href="#bigger-push-buttons" title="Permalink to this headline">¶</a></h3>
<p>The push buttons on the LCD 20x4 Bricklet are a bit fiddly. To extend
the Weather Station with bigger buttons we provide the
<a class="reference external" href="https://www.tinkerforge.com/en/shop/kits/weather-station-push-button-add-on.html">Weather Station Push Button Extension</a>.</p>
<a class="reference external image-reference" href="../../_images/Kits/weather_station_buttons_assembled_1200.jpg"><img alt="Weather Station with big push buttons" class="align-center" src="../../_images/weather_station_buttons_assembled_600.jpg" style="width: 600.0px; height: 565.0px;" /></a>
<p>The extension consists of four big push buttons, a replacement wall for the left
side of the Weather station case and a right angle 2x3 pin header.</p>
<p>We can connect the push buttons to the LCD 20x4 Bricklet with a little bit
of soldering and some wires.</p>
<a class="reference external image-reference" href="../../_images/Kits/weather_station_buttons_soldered_1200.jpg"><img alt="Push buttons wired up" class="align-center" src="../../_images/weather_station_buttons_soldered_350.jpg" style="width: 350.0px; height: 311.0px;" /></a>
<a class="reference external image-reference" href="../../_images/Kits/weather_station_buttons_and_lcd_1200.jpg"><img alt="Push buttons connected to LCD 20x4" class="align-center" src="../../_images/weather_station_buttons_and_lcd_350.jpg" style="width: 350.0px; height: 166.0px;" /></a>
<p>Changes in software are not needed.</p>
<p>To connect a button to the LCD 20x4 Bricklet you have to connect one pin of the button with
GND and the other with one input of the LCD 20x4 Bricklet (BTN0-BTN3). In the pictures
above we have used a black wire to connect GND through and red wires to connect each button
with one input.</p>
<a class="reference external image-reference" href="../../_images/Kits/weather_station_button_wiring.jpg"><img alt="Button Connect How-To" class="align-center" src="../../_images/weather_station_button_wiring_350.jpg" style="width: 350.0px; height: 322.0px;" /></a>
<p>As a fun example we have implemented a demonstrator for a game like Guitar Hero.
It does not have much functions. The application basically shows bars which will
be randomly rendered and moved to one side of the LCD.
With the four big push buttons you can make different sounds and you can choose
the used instrument from the
<a class="reference external" href="http://en.wikipedia.org/wiki/General_MIDI">General MIDI</a> definition,
but the game logic is completely missing.</p>
<p>This demonstrator should show that it is possible to implement not only
weather station applications.</p>
<a class="reference external image-reference" href="../../_images/Kits/weather_station_guitar_1200.jpg"><img alt="Game Application on Weather Station" class="align-center" src="../../_images/weather_station_guitar_350.jpg" style="width: 350.0px; height: 233.0px;" /></a>
<p>The source code can be downloaded here: <a class="reference external" href="https://raw.githubusercontent.com/Tinkerforge/weather-station/master/examples/GuitarStation.java">Download</a></p>
</div>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
		<div id="tf_license">
			<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">
				<img alt="Creative Commons Licence" width="88" height="31" style="border-width:0" src="/static/images/cc_license_logo.png" />
			</a>
			The content of this page is licensed under
			<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution 3.0 Unported License</a>.
		</div>
		</div>
	</div>
</div>

    <div class="footer">
        &copy; Copyright 2011-2015, Olaf Lüke (olaf@tinkerforge.com).
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
    </div>
  </body>
</html>