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
Nächste Überarbeitung
Vorhergehende Überarbeitung
wetterstation:alle_sensoren [2020/12/03 14:26] benjaminwetterstation:alle_sensoren [2023/05/15 13:09] (aktuell) marlon
Zeile 1: Zeile 1:
-=====Komplete Kontroll===== +=====Raspberry Py - Server Abfragen===== 
-Hier befindet sich der Code, die alle Sensoren beinhaltet.\\ +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.\\ 
-Es beinhaltet:\\ + 
-===Temperatur=== \\ + 
-  * [[wetterstation:ds18b20|DS18B20] +Hier befindet sich der Code, für die einzelnen Sensoren:\\ 
-===Temperatur, Luftdruck, Luftfeuchtigkeit=== \\+ 
 +===Temperatur===  
 +  * [[wetterstation:ds18b20|DS18B20]]
   * [[wetterstation:bme280|BME280]]   * [[wetterstation:bme280|BME280]]
-===UV Sensor=== \\+===UV Sensor=== 
   * [[wetterstation:si1145|SI1145]]   * [[wetterstation:si1145|SI1145]]
-===Windgeschwindigkeit=== \\+===Windgeschwindigkeit=== 
   * [[wetterstation:windgeschwindigkeit|RJ11 BREAKOUT]]   * [[wetterstation:windgeschwindigkeit|RJ11 BREAKOUT]]
-===Windrichtung=== \\+===Windrichtung=== 
   * [[wetterstation:windrichtung|Windrichtung]]   * [[wetterstation:windrichtung|Windrichtung]]
-===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.1607005613.txt.gz · Zuletzt geändert: 2020/12/03 14:26 von benjamin