Author Topic: Wetterstation: Python reinitialisiert sich alle paar Sekunden neu  (Read 791 times)

topi

  • Newbie
  • *
  • Posts: 13
    • View Profile
Hallo,
zuerst  das Problem, dann das Setup und zum Schluss meine Frage.
Wenn ich die Ausgabe des Python-Programm (weather_station.py) zu meiner Wetterstation im Terminal verfolge sehe ich im Wesentlichen dieses Bild:
Code: [Select]
Press key to exit
INFO:root:Weather Station: Start
Press key to exit
INFO:root:Barometer initialized
INFO:root:LCD 20x4 initialized
INFO:root:Humidity initialized
INFO:root:Temperature initialized
INFO:root:Write to line 2: Air Press  961.09 mb
INFO:root:Write to line 3: Temperature 24.81 ßC
INFO:root:Write to line 1: Humidity    58.00 %
INFO:root:Write to line 2: Air Press  961.06 mb
INFO:root:Write to line 1: Humidity    58.10 %
INFO:root:Write to line 3: Temperature 24.87 ßC
INFO:root:Write to line 2: Air Press  961.08 mb
INFO:root:Write to line 1: Humidity    57.90 %
INFO:root:Write to line 3: Temperature 24.81 ßC
INFO:root:Write to line 2: Air Press  961.08 mb
INFO:root:Write to line 3: Temperature 24.87 ßC
INFO:root:Write to line 1: Humidity    58.00 %
INFO:root:Write to line 2: Air Press  961.04 mb
INFO:root:Write to line 1: Humidity    58.10 %
INFO:root:Write to line 2: Air Press  961.08 mb
INFO:root:Write to line 1: Humidity    58.20 %
INFO:root:Write to line 2: Air Press  961.08 mb
INFO:root:Write to line 3: Temperature 24.81 ßC
INFO:root:Write to line 1: Humidity    58.00 %
INFO:root:Write to line 2: Air Press  961.05 mb
INFO:root:Write to line 3: Temperature 24.87 ßC
INFO:root:Write to line 1: Humidity    58.10 %
INFO:root:Write to line 2: Air Press  961.07 mb
INFO:root:Write to line 3: Temperature 24.81 ßC
INFO:root:Write to line 1: Humidity    58.30 %
INFO:root:Write to line 2: Air Press  961.07 mb
INFO:root:Write to line 3: Temperature 24.87 ßC
INFO:root:Write to line 2: Air Press  961.04 mb
INFO:root:Write to line 1: Humidity    58.20 %
INFO:root:Write to line 3: Temperature 24.81 ßC
INFO:root:Barometer initialized
INFO:root:LCD 20x4 initialized
INFO:root:Humidity initialized
INFO:root:Temperature initialized
INFO:root:Write to line 2: Air Press  961.06 mb
INFO:root:Write to line 1: Humidity    58.30 %
INFO:root:Write to line 3: Temperature 24.87 ßC
INFO:root:Write to line 2: Air Press  961.08 mb
……….

Mein Setup:
USB-Netzteil mit 2000 mA -->Raspberry Pi 1B <–-> Master Brick (Temperature-, Humidity-, Barometer- und LCD24-Bricklet).
Das bedeutet, dass der RasPi den MasterBrick mit Strom versorgt. Der Raspi wird so gebootet, dass an dessen zwei USB-Anschlüssen bis zu 1200 mA zur Verfügung stehen (in der config.txt die Zeil „max_usb_current=1“ ergänzen).

Meine Frage:
Die Bricklets werden alle paar Sekunden neu initialisiert. Ich frage mich, woran dies liegen kann bzw. ob dies so sein muss im gewählten Setup?
Schliesse ich den Master Brick direkt an einen USB-Ausgang meines PCs an und sehe mir dann die Anzeige auf dem Terminal an, so wird genau zum Startup der Wetterstation einmal initialisiert und dann sehe ich nur noch die Messwerte der Sensoren.

Vielen Dank für einen Tipp  im Voraus,
topi

photron

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 2.467
    • View Profile
Re: Wetterstation: Python reinitialisiert sich alle paar Sekunden neu
« Reply #1 on: October 24, 2017, 18:12:13 »
Diese "initialized" Meldungen zeigen, dass eine Enumerate der Bricks und Bricklets ausgelöst wurde. Das kann zwei Gründe haben:

a) Das Enumerate wurde angefragt über IPConnection.enumerate(). Brick Viewer macht z.B. genau das einmal, wenn du den "Connect" Knopf klickst. Alternative hast du auf dem Raspberry Pi noch ein anderes Programm laufen, dass immer wieder ein Enumerate anfragt.

b) Die Bricks und Bricklets senden auch von sich aus ein Enumerate beim Start. Es kann also sein, das die Wetterstation alle paar Sekunden neustartet.

Du kannst die beiden Fälle an zwei Dingen unterscheiden:

1) Am enumeration_type. Du kannst weather_station.py ab ändern und z.B. in der "log.info('LCD 20x4 initialized')" den enumeration_type mit ausgeben:

Code: [Select]
log.info('LCD 20x4 initialized: ' + str(enumeration_type))
0 bedeutet, dass das Enumerate angefragt wurde, 1 bedeutet, dass die Wetterstation neugestartet ist.

2) An den 4 blauen LEDs an der rechten Seite des Master Bricks. Beim Neustart zeigen diese kurz ein Lauflicht an.