Benutzer-Werkzeuge

Webseiten-Werkzeuge


wetterstation:alle_sensoren

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
wetterstation:alle_sensoren [2021/02/01 09:03] benjaminwetterstation: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:ds18b20|DS18B20]]   * [[wetterstation:ds18b20|DS18B20]]
Zeile 17: Zeile 16:
 ===Regensensor===  ===Regensensor=== 
   * [[wetterstation:regensensor|Regensensor]]   * [[wetterstation:regensensor|Regensensor]]
 +
 +=== Der Code, der auf dem Raspberry Pi ausgeführt wird: ===
 +
 +https://informatik.leibnizschule-hannover.eu/git/Informatik-AG/weatherstation/src/commit/9fcd9b7ccfb2ee2a51a90d92d877712de7c4db6b/server.py
  
 <code python> <code python>
  
-import time +from flask import Flask 
-import RPi.GPIO as GPIO +from flask import requestjsonifysend_file 
-import math +import camera
-from gpiozero import Button +
-from gpiozero import MCP3008 +
-GPIO.setmode(GPIO.BOARD) +
-Niederschlag = 0 +
-N = 2 +
-adc = MCP3008(channel=0) +
-windrichtung = {0.4: "Norden"1.4: "Nordnordosten"1.2: "Nordosten", 2.8: "Ostostnorden", 2.7: "Osten", 2.9:"Ostostsüden", 2.2:"Südosten", 2.5:"Südsüdosten", 1.8:"Süden", 2.0:"Südsüdwesten", 0.7:"Südwesten", 0.8:"Westwestsüden", 0.1:"Westen", 0.3:"Westwestnorden", 0.2:"Nordwesten", 0.6:"Nordnordwesten" +
-y = "Norden" +
-j = "100" +
-f = 0 +
-k = 0 +
-radius_cm = 9.0 +
-zeit = time.time() +
-km_per_hour = 0 +
-sensor_path = "/sys/bus/w1/devices/28-00000ade081f/w1_slave" +
-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, 'r') 
-        content = f.readlines() 
-        f.close() 
-        temp = "error" 
-        if (content[0].strip())[-3:] == "YES": 
-                index = content[-1].find('t=') 
-                if index != -1: 
-                        temp = float(content[-1][index+2:-1].strip()) 
-                        temp = temp/1000.0 
-        return temp 
  
-def Temperatur(): +@app.route('/'
-        temperatur = get_temp() +def index() 
-        temperatur = round(temperatur, 1) +    import speed 
-        return str(temperatur) + "°C"+    import temp 
 +    import rain 
 +    import winddirection 
 +    import uv 
 +    import BME280
  
-def Windrichtung(): +    rain = rain.rainfall() 
-        x  =round(adc.value*3.3,1) +    speed = speed.speed() 
-        if x in windrichtung+    direction = winddirection.Windrichtung() 
-                return windrichtung[x]+    temperatur temp.Temperatur(
 +    UV = uv.out() 
 +    bme280 = BME280.getPressure() 
 +     
 +    all_sensores = speed + "   " + direction + "   " + rain + "   " + temperatur + "   " + str(UV) 
 +    print(all_sensores + 10*' ', end="\r"
 +     
 +    sensor_data = { 
 +        'temperature_1':str(temperatur), 
 +        'temperature_2':str(bme280[0]), 
 +        'speed':str(speed), 
 +        'direction':str(direction), 
 +        'rain':str(rain), 
 +        'rain_average':'N/A', 
 +        'pressure':str(bme280[1]), 
 +        'luftfeuchtigkeit':str(bme280[2]), 
 +        'height':str(bme280[3]), 
 +        'sichtbares_licht':str(UV[0]), 
 +        'infrarot':str(UV[1]), 
 +        'ultraviolett':str(UV[2]), 
 +        'uv_index':str(UV[3]
 +        }
  
-def Niederschlagssensor(): +    print(sensor_data
-        global Niederschlag +    return(jsonify(sensor_data))
-        Niederschlag = Niederschlag + 0.1397+
  
-Regensensor.when_pressed = Niederschlagssensor 
  
-while True: +@app.route('/picture'
-        b = Windrichtung() +def picture(): 
-        a = Temperatur() +   # import camera.py 
-        Zeit3 = time.time() +    camera.take_picture() 
-        if Zeit3 - zeit > 3: +    return(send_file("picture/photo.png"))
-                km_per_hour = 0+
  
-#       time.sleep(0.5) +app.run(debug=Falsehost='0.0.0.0')
-        c km_per_hour = round(km_per_hour1) +
-        if b !y: +
-                print("Temperatur: " + a + "    " +  "Windrichtung: " + b + "    " + "Windgeschwindigkeit: " + str(km_per_hour+ "km/h"  + "    " +  "Niederschlag: " +  str(round(Niederschlag, 1)) + "mm"+
-                y = b +
-        elif j != a: +
-                print("Temperatur: " + a + "    " +  "Windrichtung: " + b + "    " + "Windgeschwindigkeit: " + str(km_per_hour) + "km/h" + "    " + str(round(Niederschlag, 1)) + "mm"+
-                j = a +
-        elif k != c: +
-                print("Temperatur: " + a + "    " +  "Windrichtung: " + b + "    " + "Windgeschwindigkeit: " + str(km_per_hour) + "km/h" + "    " + str(round(Niederschlag, 1)) + "mm"+
-                k = c +
-        elif f != Niederschlag: +
-                print("Temperatur: " + a + "    " +  "Windrichtung: " + b + "    " + "Windgeschwindigkeit: " + str(km_per_hour) + "km/h" + "    " + str(round(Niederschlag, 1)) + "mm"+
-                f = Niederschlag+
  
 </code> </code>
  
 {{:wetterstation:alle_sensoren_steckplatine.jpg?|}} {{:wetterstation:alle_sensoren_steckplatine.jpg?|}}
wetterstation/alle_sensoren.txt · Zuletzt geändert: 2023/05/15 13:09 von marlon