Upload files to ''
This commit is contained in:
parent
89d4df5524
commit
3ab2ae2ddc
88
README.md
88
README.md
@ -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)
|
||||
BMP280 - Sensor zur Erfassung von Temperatur, Druck (Bezugs: Adafruit)
|
||||
|
||||
- Raspberry Pi 3 (geht auch mit älteren Modellen + WLAN-Modul)
|
||||
- BOSCH BME280 (Bezugsquelle: watterott.com)
|
||||
- Adafruit BMP280 (Versuchsweise, ohne Luftfeuchtigkeit)
|
||||
Die Sensoren gibt es auch sehr preisgünstig über ebay aus China
|
||||
|
||||

|
||||
## 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.
|
||||
|
||||
```
|
||||
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)
|
||||
```
|
||||
Beispiel: https://gussmann-berlin.de/wetter/wetterhome.php
|
||||
|
||||
|
||||

|
||||
|
||||
## Ergänzungen
|
||||
|
||||
|
||||
1. Über einen kleinen OLED-Screen sollen auf Tastendruck die aktuellen Werte
|
||||
angezeigt werden.
|
||||
|
||||
2. Ergänzung um einen Feinstaubsensor
|
||||
|
||||
3. Ergänzung um den günstigeren Chip BMP280 mit angepasster Bibliothek
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user