wetterstation:alle_sensoren
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
wetterstation:alle_sensoren [2020/11/26 13:18] – marlon | wetterstation:alle_sensoren [2023/05/15 13:09] (aktuell) – marlon | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | =====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.\\ | ||
+ | |||
+ | |||
+ | Hier befindet sich der Code, für die einzelnen Sensoren:\\ | ||
+ | |||
+ | ===Temperatur=== | ||
+ | * [[wetterstation: | ||
+ | * [[wetterstation: | ||
+ | ===UV Sensor=== | ||
+ | * [[wetterstation: | ||
+ | ===Windgeschwindigkeit=== | ||
+ | * [[wetterstation: | ||
+ | ===Windrichtung=== | ||
+ | * [[wetterstation: | ||
+ | ===Regensensor=== | ||
+ | * [[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.1606396722.txt.gz · Zuletzt geändert: 2020/11/26 13:18 von marlon