Skip to content
Snippets Groups Projects
Name Last commit Last update
..
.gitkeep
README.md
Screenshot1.png

Pflanzenüberwachungssystem

Mit dieser Anleitung ist es Ihnen möglich, eine Grafische Übersicht über Ihr Pflanzen zu bekommen. Es werden swohl die Temperatur und Feuchtigkeitsdaten sowie die der Pflanze aktuell zur Verfügung stehende Lux Zahl angezeigt. Optional: Bei Pflanzen im Outdoor bereich, kann die aktuelle Regenwahrscheinlichkeit eingeblendet werden.

1. Hardware

rpi-5.10.y
SD-Karte

2. Installation des Pi

Damit der Rasberry Pi zum ersten mal starten kann, muss zunächst die Micro-SD Karte mit dem entsprechenden Betriebssysem installiert werden. Dazu wird die SD-Karte in einen PC eingesteckt und mit Hilfe der Software "Pi Installer" installiert.

  1. Download Pi Installer von der Website https://www.raspberrypi.com

  2. Pi Installer starten und unter "Betriebssystem" "Raspberry Pi OS Lite" auswählen.

  3. Unter "SD Karte" die gewünschte SD Karte auswählen.

  4. Mit Strg + Shit + X bzw. Control + Shift + X den Advance Mode öffnen.

    Einstelllungen nach eigenem Bedarf anpassen

    Hierbei gilt es folgendes zu beachten:

    • ssh muss aktiviert werden. PW selst wählen.

    • Wifi muss zumindest bei den Pi Zero Geärten eingerichtet werden. (Achtung beim Pi Zero hat nur Wifi 4)

  5. Durch Auswahl der Funkion "Schreiben" fortfahren. Meldung mit "Ja" bestätigen.

  6. Einleigen der SD Karte in den Raspberry Pi, einstecken der Stromversorgung und erster Hochfahren des Gerätes

  7. Verbidnung mit ssh aufbauen.
    Dazu Terminal öffnen und zum Verbidnungsaufbau folgenden fehl kopierne und anpassen.

    ssh pi@ip-adresse_des_Pi

    Bsp.: ssh pi@192.168.15.2

    Das benötigte Passwort, ist das Pw, welches unter Punkt 4 selbst gewählt wurde.

3. Installation von Docker inkl. Docker Compose

  1. Deinstallation aller ggf. Bereits vorhandenen Docker Daten.
    Wird auch bei Neuinstallation empfohlen.

    sudo apt-get remove docker docker-engine docker.io containerd runc
  2. Update der apt-get
    Dient dazu, die akutallität der auf dem Pi vorhanden Softwarepakete sicherzustellen.

    sudo apt-get update
  3. Installation von Docker
    Hier wird zunächst die im Schritt zuvor erkannten Updates Installiert, danach werden die Docker Files Heruntergeladen und installiert.

    sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io

    Hinweis: Während der Installation ist eine Bestätigung notwendig, diese mit “Y“ bestätigen

  4. Eirnichten des Docker Zugriffs ohne bei jedem Befehl sudo verwenden zu müssen

    sudo groupadd docker
    sudo usermod -aG docker $USER
    newgrp docker 
  5. Docker Funktionstest.
    Bei Erfolg sollte Docker Hello ausgeführt werden.

    docker run hello-world
  6. Installation von Docker compose

    sudo apt install docker-compose

    Hinweis: Während der Installation mit “Y“ bestätigen

  7. Test Docker Compose

    docker-compose --version

    Bsp. Für ein Ausgabe:
    docker-compose version 1.25.0, build unknown

4. Installation von Go

Go wird benötigt um mit dem flowercare-exporter verwenden zu können. Da dieser mit Hilfe der Programmiersprache Go Entwickelt wurde.

sudo apt-get install golang

Hinweis: Während der Installation ist eine Bestätigung notwendig, diese mit “Y“ bestätigen. Ein ggf. angezeigter Hinweis zum Kernel kann ignoriert werden.

5. Installation der Bluetooth Komponenten und des flowercare-exporter

  1. Installation der Bluetooth Komponenten Quelle: https://howchoo.com/pi/bluetooth-raspberry-pi

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install bluetooth bluez blueman

    Hinweis: Während der Installation ist eine Bestätigung notwendig, diese mit “Y“ bestätigen.

    Restart + erneut einloggen erforderlich (Der erneute login kann etwas dauern)

  2. Bluetooth Test Funktionstest: Die Ausgabe sollten diverse Bluetooth Adressen sein.

    sudo hcitool lescan

    Beenden durch strg + c bzw. ctrl + c.

  3. Installation von flowercare-exporter Quelle: https://github.com/xperimental/flowercare-exporter

    Download der benötigten Installationsdatein sowie die Installation in ein neues Verzeichniss "flower-exporter"

    git clone https://github.com/xperimental/flowercare-exporter.git
    cd flowercare-exporter
    go build .
    cd
    
    

6. Konfigurationsdateien für Docker, Prometheus, Grafana und flowercare-exporter anlegen

  1. Eigenen Ordner für die Docker Images und Dokumente anlegen

    Anlegen eines Ordners „sensor“ im Homeverzeichnis und wechsel in dieses Verzeichniss.

    sudo mkdir sensor
    cd sensor/
  2. Docker compose Dokument anlegen

    sudo nano docker-compose.yml

    In die Datei einfügen:

    version: "3.7"
    
    volumes:
      prometheus_data: {}
      grafana_data: {}
    
    services:
      prometheus:
        image: prom/prometheus
        volumes:
          - ./prometheus/:/etc/prometheus/
          - prometheus_data:/prometheus
        command:
          - '--config.file=/etc/prometheus/prometheus.yml'
          - '--storage.tsdb.path=/prometheus'
          - '--web.console.libraries=/usr/share/prometheus/console_libraries'
          - '--web.console.templates=/usr/share/prometheus/consoles'
        ports:
          - 9090:9090
        networks:
          - Sensor
        restart: always
    
      grafana:
        image: grafana/grafana
        depends_on:
          - prometheus
        ports:
          - 3000:3000
        volumes:
          - grafana_data:/var/lib/grafana
          - ./grafana/provisioning/:/etc/grafana/provisioning/
        networks:
          - Sensor
        restart: always
    
    networks:
      Sensor:
        driver: bridge

    Beenden mit strg + x bzw. ctrl + x, y, Enter

  3. Prometheus config Dokument anlegen

    sudo mkdir prometheus
    sudo nano prometheus/prometheus.yml

    In die Datei Einfügen und in letzter Zeile die IP Adress des Pi eintragen:

    # my global config
    global:
      scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
      evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
      external_labels:
        monitor: 'codelab-monitor'
    
    # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
    rule_files:
      # - "first.rules"
      # - "second.rules"
    
    # A scrape configuration containing exactly one endpoint to scrape:
    # Here it's Prometheus itself.
    scrape_configs:
      # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
      - job_name: 'prometheus'
          static_configs:
            - targets: ['localhost:9090']
    
      - job_name: 'flowercare'
        metrics_path: /metrics
        static_configs:
          - targets: ['192.168.15.2:9294']
  4. Bluetooth Geräte scannen

    sudo hcitool lescan

    Die Flowercare Geräte sind leicht herauszufiltern. Bsp.: C4:7C:8D:AA:BB:CC Flower care

    Die gefundenen Geräte notieren.

  5. Flowercare-exporter Einrichten

    Anlegen einer Service Datei

    sudo nano /etc/systemd/system/flowercare.service

    einfügen und unter Environment die Geräte gem. Beispiel anpassen:

    Description=FlowerCareService
    
    Wants=network.target
    After=syslog.target network-online.target
    
    [Service]
    Type=simple
    Environment="s01=-s Tomaten =c4:7c:8d:aa:bb:c0"
    #Environment="s02=-s Erdbeeren=c4:7c:8d:aa:bb:c1"
    #Environment="s03=-s Himbeeren=c4:7c:8d:aa:bb:c2"
    #Environment="s04=-s Paprika=c4:7c:8d:aa:bb:c3"
    #Environment="s05=-s Palme_Links=c4:7c:8d:aa:bb:c4"
    #Environment="s06=-s Palme_Rechts=c4:7c:8d:aa:bb:c5"
    
    #hier die Environments mit $... hinterienandern eintragen
    #ExecStart=sudo home/pi/flowercare-exporter/./flowercare-exporter $s01 $s02 $s03 $s04 $s05 $s06
    ExecStart=sudo home/pi/flowercare-exporter/./flowercare-exporter $s01
    #Restart=on-failure
    RestartSec=10
    KillMode=process
    
    [Install]
    WantedBy=multi-user.target

    Nach erstellen und nach jeder Anderung der zuvor erstellten Service-Datei:

    sudo systemctl daemon-reload
    sudo systemctl enable flowercare.service
    sudo systemctl restart flowercare
    systemctl status flowercare

    Der Service sollte nun Aktiv sein, ansonsten noch einmal die config prüfen und die Änderung wie beschrieben bestätigten.

    Status kann mit Strg + c bzw. Crtl + c beendet werden.

8. Prometheus und Grafana einrichten

  1. Prometheus starten

    Mit diesem Befehl wird Prometheus und Grafana das erste Mal heruntergeladen und anhand der zuvor angelegten Konfigurationsdateien voreingestellt.

    docker-compose up -d

    Im Browser folgendes Eingeben

    IP-Adresse_des_Pi:9090

    Bsp: 192.168.1.5:9090

    Unter Prometheus über Status/Targets prüfen ob beide Targets verfügbar sind.

    Die IP Adresse sollte die von Ihnen angegeben Adresse sein.

  2. Grafana starten

    Im Browser folgendes Eingeben

    IP-Adresse_des_Pi:3000

    Logindaten: Name: admin Passwort: admin

    Nach erstem einloggen wird man gebeten das Pssswort zu ändern.

    Nun befindet man sich in Grafana.