# Wetterdaten mit dem Raspberry Pi messen

**Ziel:** Mit zwei Sensoren und einem Raspberry Pi soll die Temperatur,
    Luftdruck und Luftfeuchtigkeit an zwei Stellen (outdoor/indoor9 gemessen werden.  

## Hardware

- Raspberry Pi 3 (geht auch mit älteren Modellen + WLAN-Modul)
- BOSCH BME280   (Bezugsquelle: watterott.com)
- Adafruit BMP280 (Versuchsweise, ohne Luftfeuchtigkeit)

![Sensor BME280](../img/bme280.png)

## Anschluss der Sensoren

```
  Sensor          Raspberry Pi
      GND ------- GND 
       NC -------
      VCC ------- +3.3V
  SCL/SCK ------- SCL
  SDA/SDI ------- SDA
      SD0 ------- *      
       CS -------
```

Mit SD0 kann die I2C-Adresse geändert werden. Standardmäißg besitzt der Chip
die Adresse 0x77. Wird SD0 auf HIGH gelegt, so ändert sich die Adresse zu 0x76.

## Software

Über Adafruit kann eine Bibliothek zu diesem Chip installiert werden. Diese
Bibliothek setzt die Installation von Adafruit_GPIO voraus. Weitere
Informationen über https://github.com/adafruit.

Mit dieser Bibliothek können die Messdaten einfach eingelesen werden:

```
#!/usr/bin/python 
# -*- coding: utf-8 -*-

from Adafruit_BME280 import *
import time
import urllib

sensor = BME280(mode=BME280_OSAMPLE_8)

degrees = sensor.read_temperature()
pascals = sensor.read_pressure()
hectopascals = pascals / 100
humidity = sensor.read_humidity()

print ("Temperatur (in C)   = {0:0.3f} C".format(degrees))
print ("Luftdruck (in hPa)  = {0:0.2f} hPa".format(hectopascals))
print ("Luftfeuchtigkeit    = {0:0.2f} %".format(humidity))
```

## Speicherung der Messdaten auf (externer) Datenbank

Die gemessenen Werten sollen in einer Datenbank gespeichert werden, die sich
irgendwo auf einem Server befindet. Dazu wird auf diesem Server eine
upload-php-Seite angelegt, über die mit angehängten Parametern die Speicherung
erfolgt (näheres unter mysql).

Ergänzungen des Pythonprogramms:

```
import urllib

url = "http://<server>/upload.php?m=outdoor&t=" +str(round(degrees, 2)) + "&p=" +str(round(hectopascals, 2)) + "&f=" + str(round(humidity, 2))
urllib.urlopen(url)
```


