Upload files to ''

This commit is contained in:
Walter Gussmann 2018-06-30 10:56:36 +02:00
parent 89d4df5524
commit 3ab2ae2ddc

104
README.md
View File

@ -1,74 +1,30 @@
# Wetterdaten mit dem Raspberry Pi messen # Wetterstation
Aufbau einer Wetterstation mit Raspberry Pi und mehreren Sensoren - Programmiersprache: Python
**Ziel:** Mit zwei Sensoren und einem Raspberry Pi soll die Temperatur,
Luftdruck und Luftfeuchtigkeit an zwei Stellen (outdoor/indoor9 gemessen werden. ## Bauteile:
## Hardware Raspberry Pi 3 (funktioniert auch mit Version 2)
BME280 - Sensor zur Erfassung von Temperatur, Druck, Luftfeuchtigkeit (Bezug: Watterott.com)
- Raspberry Pi 3 (geht auch mit älteren Modellen + WLAN-Modul) BMP280 - Sensor zur Erfassung von Temperatur, Druck (Bezugs: Adafruit)
- BOSCH BME280 (Bezugsquelle: watterott.com)
- Adafruit BMP280 (Versuchsweise, ohne Luftfeuchtigkeit) Die Sensoren gibt es auch sehr preisgünstig über ebay aus China
![Sensor BME280](../img/bme280.png) ## Messung
## Anschluss der Sensoren Die Wetterdaten werden alle 15 Minuten gemessen und in einer externen MySQL-Datenbank gespeichert. Ein Webserver liest diese Daten aus und stellt die Daten grafisch dar.
``` Beispiel: https://gussmann-berlin.de/wetter/wetterhome.php
Sensor Raspberry Pi
GND ------- GND
NC ------- ![Example](img/wetter.png)
VCC ------- +3.3V
SCL/SCK ------- SCL ## Ergänzungen
SDA/SDI ------- SDA
SD0 ------- *
CS ------- 1. Über einen kleinen OLED-Screen sollen auf Tastendruck die aktuellen Werte
``` angezeigt werden.
Mit SD0 kann die I2C-Adresse geändert werden. Standardmäißg besitzt der Chip 2. Ergänzung um einen Feinstaubsensor
die Adresse 0x77. Wird SD0 auf HIGH gelegt, so ändert sich die Adresse zu 0x76.
3. Ergänzung um den günstigeren Chip BMP280 mit angepasster Bibliothek
## 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)
```