wetterstation:alle_sensoren
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
wetterstation:alle_sensoren [2021/02/01 09:03] – benjamin | wetterstation:alle_sensoren [2023/05/15 13:09] (aktuell) – marlon | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | =====Komplete Kontroll===== | + | =====Raspberry Py - Server Abfragen===== |
+ | Bei Anfragen vom Server führt dieses Programm den Code für die einzelnen Sensoren aus und übermittelt deren Inhalt in Form einer Json Datei an den Server. Zusätzlich gibt es die aktuellen Werte über die Konsole aus.\\ | ||
- | Diese Seite ist in Entwicklungsphase.\\ | ||
+ | Hier befindet sich der Code, für die einzelnen Sensoren:\\ | ||
- | Hier befindet sich der Code, der alle Sensoren beinhaltet.\\ | ||
- | Es beinhaltet: | ||
===Temperatur=== | ===Temperatur=== | ||
* [[wetterstation: | * [[wetterstation: | ||
Zeile 17: | Zeile 16: | ||
===Regensensor=== | ===Regensensor=== | ||
* [[wetterstation: | * [[wetterstation: | ||
+ | |||
+ | === Der Code, der auf dem Raspberry Pi ausgeführt wird: === | ||
+ | |||
+ | https:// | ||
<code python> | <code python> | ||
- | import time | + | from flask import |
- | import RPi.GPIO as GPIO | + | from flask import |
- | import math | + | import camera |
- | from gpiozero | + | |
- | from gpiozero | + | |
- | GPIO.setmode(GPIO.BOARD) | + | |
- | Niederschlag = 0 | + | |
- | N = 2 | + | |
- | adc = MCP3008(channel=0) | + | |
- | windrichtung = {0.4: " | + | |
- | y = " | + | |
- | j = " | + | |
- | f = 0 | + | |
- | k = 0 | + | |
- | radius_cm = 9.0 | + | |
- | zeit = time.time() | + | |
- | km_per_hour = 0 | + | |
- | sensor_path = "/ | + | |
- | wind_speed_sensor = Button(5) | + | |
- | Regensensor = Button(N) | + | |
- | old = 5 | + | |
- | def halfturn(): | + | app = Flask(__name__) |
- | global zeit | + | |
- | global km_per_hour | + | |
- | zeit2 = time.time() | + | |
- | diff = zeit2 - zeit | + | |
- | zeit = zeit2 | + | |
- | circumference_cm = math.pi * radius_cm | + | |
- | speed_cm_per_sec = circumference_cm / diff | + | |
- | km_per_sec = speed_cm_per_sec / 100000.0 | + | |
- | km_per_hour = km_per_sec * 3600 | + | |
- | wind_speed_sensor.when_pressed = halfturn | ||
- | def get_temp(): | ||
- | f = open(sensor_path, | ||
- | content = f.readlines() | ||
- | f.close() | ||
- | temp = " | ||
- | if (content[0].strip())[-3: | ||
- | index = content[-1].find(' | ||
- | if index != -1: | ||
- | temp = float(content[-1][index+2: | ||
- | temp = temp/1000.0 | ||
- | return temp | ||
- | def Temperatur(): | + | @app.route('/' |
- | | + | def index(): |
- | | + | |
- | | + | |
+ | import rain | ||
+ | import winddirection | ||
+ | import uv | ||
+ | import BME280 | ||
- | def Windrichtung(): | + | rain = rain.rainfall() |
- | | + | speed = speed.speed() |
- | | + | direction = winddirection.Windrichtung() |
- | | + | |
+ | UV = uv.out() | ||
+ | bme280 = BME280.getPressure() | ||
+ | |||
+ | all_sensores = speed + " | ||
+ | print(all_sensores + 10*' ', end=" | ||
+ | |||
+ | sensor_data = { | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | | ||
+ | ' | ||
+ | } | ||
- | def Niederschlagssensor(): | + | print(sensor_data) |
- | | + | |
- | Niederschlag = Niederschlag + 0.1397 | + | |
- | Regensensor.when_pressed = Niederschlagssensor | ||
- | while True: | + | @app.route('/ |
- | b = Windrichtung() | + | def picture(): |
- | a = Temperatur() | + | # import camera.py |
- | Zeit3 = time.time() | + | camera.take_picture() |
- | if Zeit3 - zeit > 3: | + | |
- | km_per_hour = 0 | + | |
- | # time.sleep(0.5) | + | app.run(debug=False, host=' |
- | c = km_per_hour = round(km_per_hour, 1) | + | |
- | if b != y: | + | |
- | print(" | + | |
- | y = b | + | |
- | elif j != a: | + | |
- | print(" | + | |
- | j = a | + | |
- | elif k != c: | + | |
- | print(" | + | |
- | k = c | + | |
- | elif f != Niederschlag: | + | |
- | print(" | + | |
- | f = Niederschlag | + | |
</ | </ | ||
{{: | {{: |
wetterstation/alle_sensoren.txt · Zuletzt geändert: 2023/05/15 13:09 von marlon