Archiv der Kategorie: Monitoring

HiGrow-Sensor: Daten erfassen und versenden

Im Post HiGrow-Sensor sorgt für das Wohl der Pflanzen hatte ich auf den HiGrow-Sensor hingewiesen, der zur Überwachung der Umweltbedingungen in Pflanzennähe eingesetzt werden kann.

Im Programm HiGrowESP32MQTT.ino werden die Sensordaten des dort eingesetzten DHT11-Sensors zur Messung von Lufttemperatur und Luftfeuchte, sowie die kapazitiv gemessene Bodenfeuchte und die Helligkeit erfasst und entsprechenden Topics von MQTT-Messages zugeordnet. Zu Kontrollzwecken werden diese Daten auch seriell ausgegeben und können durch den internen Monitor der Arduino IDE verfolgt werden. Das Programm  HiGrowESP32MQTT.ino steht auf Github zum Download zur Verfügung.

HiGrow Data

Mit einem MQTT Client können die abonnierten Mitteilungen visualisiert werden.

Screenshot_20180319-140609.png

Bei meinen Test ist mir aufgefallen, dass recht häufig nach dem Programmstart der Brownout Detector getriggert wurde und einen entsprechenden Reset ausgelöst hat.

HiGrow Brounout

Verfolgt man die Diskussion (z.B. hier https://github.com/nkolban/esp32-snippets/issues/168) dann scheint ein hoher Strombedarf während der Initialisierungsphase ein (der?) Grund für das Verhalten zu sein.

Der HiGrow-Sensor weist einen Batteriehalter für eine 18650-LiPo-Batterie auf. Bei meinen Tests war die Batterie nicht bestückt. Möglicherweise puffert eine bestückte Batterie dann diesen kurzzeitigen Strombedarf hinreichend.

 

Advertisements

C.H.I.P. als Sensor-Knoten

Wegen seiner Kompaktheit kann C.H.I.P.  dann sehr gut als Sensor-Knoten eingesetzt werden, wenn es nicht auf minimalen Stromverbrauch ankommt.

Für erste Tests habe ich mit dem Program chiplog.py  die CPU-Last, den verfügbaren Speicher und die Boardtemperatur abgefragt und über Thingspeak visualisiert. Ausserdem wird beim Überschreiten der Temperatur eine Push-Message versendet. Mit dem Programm stress habe ich die CPU-Last erhöht, um die Auswirkungen auf die Boardtemperatur zur verdeutlichen.

CPU_Load

Mem_avail

PMU_Temp

Um einen externen Sensor abfragen zu können, bedarf es nur noch weniger zusätzlicher Zeile Code, die für einen Temperatur- und Feuchtigkeitssensor SHT31 noch folgen.

Das Programm BatStatus.py zeigt den Status der Batterie in den ersten Minuten nach dem Anschliessen an den C.H.I.P.  Controller.

BatStatus

Die Programme chiplog.py und BatStatus.py sind auf Github abgelegt. Im Wiki sind Installationshinweise nach einem Flashen des Betriebssystems und dem erforderlichen Python-Setup aufgeführt.

 

Raspberry Pi 2 und Real-Time Linux

Das Echtzeitverhalten des Single-Core Raspberry Pi wurde im Beitrag Echtzeitfähiger Raspberry Pi untersucht. Der RT Patch des Kernel wurde beschrieben.

Mittlerweile sind auch Ergebnisse für den Quad-Core Raspberry Pi 2 verfügbar. In der QA-Farm von OSADL wird das Real-Time Verhalten einem ständigen Monitoring unterzogen. Bei Interesse sollte unbedingt der betreffende Beitrag in den OSADL News gelesen werden.

Mit dem RT Patch des Kernels werden nunmehr die folgenden Latenzzeiten erreicht.

rbs3s

 

Enviro pHAT am Raspberry Pi (Zero)

Die englische Firma Pimoroni bietet sogenannte pHATs (HAT = Hardware at Top) für den Raspberry Pi an. Von den Abmessungen her orientieren sich diese am Raspberry Pi Zero. Das Interface ist aber durch den 40-poligen GPIO-Stecker definiert, so dass ein solches pHAT auf jeden, diesen Stecker aufweisenden Raspberry Pi installiert werden kann.

Enviro pHAT umfasst vier unterschiedliche Sensoren, die die Messung von Temperatur und Druck, Licht und Farben (RGB), Bewegung in drei Achsen, Ausrichtung des Magnetfelds (Compass) und Gleichspannung über vier Analog-Eingänge ermöglichen. Ausserdem befinden sich zu Beleuchtungszwecken zwei weisse LEDs auf diesem pHAT.

Enviro pHAT Features:

  • LSM303D accelerometer/magnetometer sensor (I2C Slave Addr 0x1d)
  • TCS3472 light and RGB colour sensor (I2C Slave Addr 0x29)
  • ADS1015 4-channel 3.3v, analog to digital sensor (ADC) (I2C Slave Addr 0x48)
  • BMP280 temperature/pressure sensor (I2C Slave Addr 0x77)
  • Two LEDs for illumination (GPIO4)

i2c map

Eine Python Library unterstützt eine komfortable Programmierung in Python. Installation und Inbetriebnahme sind im Dokument „Getting started with Enviro pHAT“ beschrieben.

Bei der Inbetriebnahme blieben die LEDs dunkel. Es muss sicher gestellt sein, dass GPIO4 frei zur Verfügung steht und das Script setup.py gestartet wurde. Danach sollte alles problemlos laufen.

Mit dem Script test_all.py kann nun jede Funktion des Enviro pHAT getestet werden. Der Screenshot zeigt die Ausgabe über die Console.

Unbenannt

#!/usr/bin/env python

import sys
import time
import datetime

from envirophat import light, weather, motion, analog, leds


def write(line):
 sys.stdout.write(line)
 sys.stdout.flush()

write("--- Enviro pHAT Monitoring ---")

try:
 while True:
 leds.on()
 time.sleep(0.02)
 leds.off()
 rgb = light.rgb()
 analog_values = analog.read_all()

output = """
Date : {n}
Temperature: {t} grd C
Pressure : {p} hPa
Light : {c}
RGB : {r}, {g}, {b} 
Heading : {h}
Analog : 0: {a0}, 1: {a1}, 2: {a2}, 3: {a3}
""".format(
 n = datetime.datetime.now(),
 t = round(weather.temperature(),2),
 p = round(weather.pressure(),2),
 c = light.light(),
 r = rgb[0],
 g = rgb[1],
 b = rgb[2],
 h = motion.heading(),
 a0 = analog_values[0],
 a1 = analog_values[1],
 a2 = analog_values[2],
 a3 = analog_values[3]
 )
 output = output.replace("\n","\n\033[K")
 write(output)
 lines = len(output.split("\n"))
 write("\033[{}A".format(lines - 1))

time.sleep(10)
 
except KeyboardInterrupt:
 pass

 

 

Orange Pi Monitoring

Monitoring #Orange #Pi #One mit dem #RPi-Monitor, installiertes OS ist #ARMbian (Link)

Installation: sudo armbianmonitor -r

Aufruf: <IP-Adresse>:8888

Anzeige SoC-Temperatur und CPU-Last (während der Lastphase läuft der UNIXBench)

OPi Monitoring - 2

Anzeige CPU-Last (während der Lastphase läuft der UNIXBench)

OPi Monitoring - 1.jpg