Windmesser Raspberry , Dornau Windaufzeichung

Windmesser Raspberry , Dornau Windaufzeichung

Beitragvon DL3NDD » Mo 1. Jan 2018, 20:02

Relevante Werte wie Solarstrom, Akkuspannung und Außentemperaturen an unserem Standort in Dornau
sind schon seit Jahren eingerichtet.
Das Wind auch eine Bedrohung sein kann, haben wir bitter erfahren müssen.

Die Einrichtung einer externen kompletten Wetterstation dort, habe ich aus Stromverbrauchsgründen verworfen.

Hier bietet sich der sowieso laufende Raspberrypi (seit 5Jahren störungsfrei in Betrieb) an.

Ein Windsensor (im weiteren WS genannt) bietet sich als kleine Zusatzkomponente an.
https://www.amazon.de/Eltako-Windsensor ... windsensor

Vorteil: er braucht keine eigenen Stromversorgung, und lässt sich relativ leicht in das vorhandene System einbinden.
Dieser WS hat eine magnetische Achse, die bei jeder Umdrehung einen Reedkontakt schaltet. (Fotos klick zum Vergrößern)
2018-01-01 17.02.18.jpg
Versuchsaufbau


Diese Impulse kann der PI zählen und in einem kleinen Skript auswerten.
Der WS hat 2 Anschlusskabel, es ist hier egal, welches wo angeschlossen wird.(keine Polung)
Ich habe mich für GPIO 5 entschieden (war noch frei) und das andere an Masse.

Anmerkung: Vorteilhaft ist es beim GPIO Port definierte Zustände herzustellen...also bei PullDown auf - Spannung, oder PullUp auf + Spannung mit z.B. einem 10k Widerstand.
Ich habe das mal hier im Versuchsaufbau mal weggelassen, (Beispiel auf der Skizze)
pi.jpg


Ich habe im Netz verschiede Skripte in Python gefunden, und habe mal eins mit div. Änderungen übernommen...und es geht auf Anhieb.
wind.jpg


Code: Alles auswählen
import RPi.GPIO as GPIO
import time, math

pin = 5
count = 0
r_cm = 5.2

def calculate_speed(r_cm, time_sec):
    global count
    circ_cm = (2 * math.pi) * r_cm
    rot = count / 2.0
    dist_km = (circ_cm * rot) / 100000.0 # umwandeln in km
    km_per_sec = dist_km / time_sec
    km_per_hour = km_per_sec * 3600 # umwandeln in Entfernung/Stunde
    return km_per_hour

def spin(channel):
    global count
    count += 1
    print (count)

GPIO.setmode(GPIO.BCM) # GPIO als Nummer
GPIO.setup(pin, GPIO.IN, GPIO.PUD_UP)
GPIO.add_event_detect(pin, GPIO.FALLING, callback=spin)

interval = 5 # Messintervall Sek.

while True:
    count = 0
    time.sleep(interval)
    print calculate_speed(r_cm,interval)

    f = open("wind.txt", "w"); # als txt file schreiben
    print f
    value = calculate_speed(r_cm,interval)
    myString = str(value)
    f.write(myString + "\n")


im unteren Teil schreibe ich den erhaltenen Wert in eine Textdatei, der dann vom PI mit FTP auf den Webserver
hochgeladen werden soll, und auf der Webseite angezeigt wird.

Über die Genauigkeit kann ich noch nichts sagen....ich puste auf das Windrad ;) , lässt sich aber innerhalb des Skriptes
anpassen.

Die nächste Aufgabe wird sein, das sowohl Hardwaremäßig in mein vorhandenes Projekt einzubauen,
und die Software zu integrieren.
big_32042171.jpg
Synology DS213+ als Web-FTP-und VPN Server, FT2000 SteppIr, homemade PA LDMOS
Benutzeravatar
DL3NDD
 
Beiträge: 900
Registriert: Sa 10. Nov 2012, 21:34

Re: Windmesser Raspberry , Dornau Windaufzeichung

Beitragvon dg3hda » Di 2. Jan 2018, 14:23

Hi,

zur Messung:
Auf meiner Arbeit gibt es ein kalibriertes Hitzdrahtanemometer, wenn Du den Windsensor mit einem Lüfter (Windkanal aus Karton drumherum?) gedreht kriegst könnten wir ihn dort damit vergleichen.

Zur GPIO:
1. Du findest für die Versuche einen internen Pullup im Pi an den Pins, den Du softwaremäßig aktivieren kannst. Da die Leitung im Einsatz länger werden dürfte schlag ich vor eine RCR-Kombination auf Pi-Seite in die Zuleitung einzuschleifen, damit die Leitung nicht als zu effektive Antenne dient. So bleiben die Taktsignale drin und Elektrostatik usw. draußen, bei niedriger Grenzfrequenz wird als Bonus sogar das geprelle unterdrückt.

Interessantes Vorhaben.

Vy 73,
Hendrik
Hendi*DG3HDA*der Entwicklungshelfer aus Q03
Benutzeravatar
dg3hda
 
Beiträge: 126
Registriert: Fr 8. Feb 2013, 20:46
Wohnort: Obernau

Re: Windmesser Raspberry , Dornau Windaufzeichung

Beitragvon DL3NDD » Di 2. Jan 2018, 23:04

schaumermal Hendrik...
mit der Eichung wäre das wohl Zuviel des Aufwandes, erstmal sehen, was
die theoretischen Werte für Ergebnisse bringen.

Ich habe heute Abend mal alles ins Equipment integriert, den WS draußen im Garten an
eine Bank (Kabelbinder) ;) befestigt, und schaue ob er Daten
auf die B04cam-Seite schickt.
Wenn alles geht, und wir bei beginnenden Frühling in Dornau weiterkommen,
wird es gleich dort installiert.

Zum Pullup-down, ich weiß auch nicht, warum ich immer extern beschalte...keine Ahnung.
für evtl. Interessierte, die muss Softwareseitig eingeschaltet werden.
Code: Alles auswählen
GPIO.setup(##, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)


entsprechen auch UP.

Der Hinweis mit dem RC-Glied ist gut, bes. weil ja am Standort auch mit HF zu rechnen ist.
Aber nicht mehr heute Abend...
Synology DS213+ als Web-FTP-und VPN Server, FT2000 SteppIr, homemade PA LDMOS
Benutzeravatar
DL3NDD
 
Beiträge: 900
Registriert: Sa 10. Nov 2012, 21:34


Zurück zu Dies und Das

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

cron