Eigene Raspberry Pi Gartenbewässerung mit Webseite bauen

Der Raspberry Pi ist großartig, um im Bereich der Hausautomatisierung eingesetzt zu werden. Dazu gehört auch das Bewässern des eigenen (Gemüse-)Gartens. Mittels verschiedener Sensoren und Pumpen kann die Bewässerung gesteuert werden. Mit Hilfe eines kleinen Skripts können wir außerdem viele Anpassungen vornehmen.

In diesem Tutorial geht es um die Erstellung einer Raspberry Pi Gartenbewässerung inkl. eigener Website, auf der die Daten angezeigt werden. Der Aufbau des Tutorials ist Schritt für Schritt erklärt.

Inhaltsverzeichnis

  1. Zubehör für die Raspberry Pi Gartenbewässerung
  2. Allgemeine Software
  3. Vorbereitung Funksteckdose
    1. Aufbau Funksteckdose
    2. Funksteckdosenfernbedienung auslesen
  4. Vorbereitung Webseite
  5. Vorbereitung Xiaomi Pflanzensensoren
  6. Bewässerungsskript
    1. Ausführen des Scripts
    2. Zusätzliche Funktionen
  7. Raspberry Pi App

 

Zubehör für die Raspberry Pi Gartenbewässerung

Nutze folgendes Zubehör, um dem Tutorial folgen zu können:

 

Allgemeine Software

Zunächst einmal aktualisieren wir den Raspi und installieren benötigte Tools:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git python3

Für alle Pythonskripts verwenden wir Python 3.

Klone das folgende Repository auf dem Raspberry Pi:

cd ~/Desktop
git clone https://github.com/tutRPi/Raspberry-Pi-Gartenbewaesserung Bewaesserung

Alle hier beschrieben Vorgänge sind darauf ausgelegt, dass das Skript auf dem Desktop vom Raspi liegt.

Falls du das Skript an einem anderen Ort haben möchtest, musst du die jeweiligen Pfade dementsprechend anpassen.

Des weitern wird im Beispiel eine Funksteckdose verwendet. Das Beispiel ist aber mit der Option von einem oder mehrerer Sensoren aufgebaut.

Vorbereitung Funksteckdose – Software

Bevor wir anfangen, benötigen wir zwei Pakete, die wir uns folgendermaßen besorgen:

Pip3 installieren:

sudo apt-get install python3-pip

RPI-RF installieren:

sudo pip3 install rpi-rf

Aufbau Funksteckdose

Um die Codes der Funksteckdosen richtig zu setzen, müssen wir diese zunächst einmal auslesen. Hierzu solltest du diesem Tutorial folgen:

Raspberry Pi Funksteckdosen (433MHz) steuern – Tutorial

Der Aufbau am Raspberry Pi ist dabei wie folgt:

Raspberry Pi Funksteckdosen Steckplatine

Raspberry Pi 433Mhz Sender/Empfänger Aufbau

 

RaspberryPi Sender Empfänger
 Pin 2 (5V)  VCC  VCC
 Pin 6 (GND)  GND  GND
 Pin 11 (GPIO17) – RPi Nr.1  ATAD  —-
 Pin 13 (GPIO27) – RPi Nr.2  —-  DATA (links neben GND)

Funksteckdosenfernbedienung auslesen

Sobald all das gemacht wurde, kann mit dem Skript „Funksteckdosen-Fernbedienung-auslesen.py“ das Auslesen der 433mHz Fernbedienung begonnen werden.

Führe dazu folgenden Befehl in der Konsole aus:

python3 /home/pi/Desktop/Bewaesserung/Funksteckdose/Funksteckdosen-Fernbedienung-auslesen.py

Jetzt muss man auf der vorhin programmierten Taste einschalten drücken.

Wichtig dabei ist, dass die Fernbedienung sehr nahe am Empfänger sein muss.

Nach einigem Drücken wird das etwa so aussehen.

Mit „Strg + C“ kann das Skript abgebrochen werden.

Auf den ersten Blick sieht man sofort, dass das Signal nicht immer dasselbe ist.

In meinem Beispiel habe ich folgende Signale herausgeschrieben:

Gartenbewässerung funksteckdose code - an

Das heißt: Signal „an“ = 5510417 mit einer Pulslänge von 302 oder 303

Jetzt wiederholen wir das gleiche mit ausschalten:

Gartenbewässerung funksteckdose code - aus

Hier sind die Signale mehrheitlich gleich.

In meinem Beispiel habe ich folgende Signale herausgeschrieben:

Gartenbewässerung funksteckdose code - markiert

Das heißt: Signal „aus“ = 5510420 mit einer Pulslänge von 302 oder 303

Diese zwei Signale muss man sich nun aufschrieben:

  • Steckdose an: 5510417, Pulslänge: 302 – 303
  • Steckdose aus: 5510420, Pulslänge: 302 – 303

Somit kann der Empfänger eigentlich wieder vom Raspi abgebaut werden.

 

Vorbereitung Webseite – Software

Hier gibt es zwei Optionen:

  1. Einen eigenen Webserver auf dem Raspi installieren
  2. Auf einen bestehenden Webserver zurück greifen

Bei der ersten Variante müssen folgende Schritte durchgeführt werden:

Bei der zweiten Variante muss der Hostname, Benutzername, Benutzerpasswort und der Datenbankname von der gewünschten Webseite bekannt sein.

Falls man all das hat und sich auf phpMyAdmin einloggen kann, muss zuerst die neue Tabelle erstellt werden.

Dafür muss in phpMyAdmin die Tabelle importiert werden:

Gartenbewässerung Datenbankname

Bei „Datei auswählen“ muss die Datei „bewaesserung.sql“ aus dem Ordner „MySQL“ ausgewählt werden.

Am Ende in der Import Seite mit „OK“ bestätigen. Die leere Tabelle wurde nun erfolgreich angelegt.

Nun müssen wir ein Paket installieren, welches Python 3 eine Verbindung zu einer MySQL-Datenbank ermöglicht herzustellen. Dafür geben wir in der Konsole folgenden Befehl ein:

pip3 install pymysql

Jetzt müssen wir noch die Website Daten anpassen und auf dem Server oder ins richtige Verzeichnis auf dem Pi legen.

Im Ordner „Webseite“ müssen zwei Dateien angepasst werden:

  • funktionen.inc.php
  • funktionen-pdo-Sensoren.inc.php

Diese können wir mit einem beliebigen Editor öffnen und bearbeiten. Ich verwende dazu Notepad++. Die Dateien können aber auch mit dem normalen „Text Editor“ (bspw gedit) auf dem Raspi bearbeitet werden.

funktionen.inc.php:

Hier muss der ‘localhost‘, ‘Benutzername‘, ‘Passwort‘ und der ‘DB-Name‘ anhand deinen Daten angepasst werden.

funktionen-pdo-Sensoren.inc.php:

Auch hier muss der ‘host‘, ‘dbname‘, ‘Benutzername‘ und das ‘Passwort‘ angepasst werden.

Jetzt muss man alle Dateien vom Ordner „Webseite“ ins Webseitenverzeichnis legen.

Beim Raspi befindet sich das hier:

  • /var/www

Bei einer anderen Website müssen die Daten in das gewünschte Verzeichnis abgelegt werden.

Öffnen der Raspberry Pi Gartenbewässerung-Website

Sobald die PHP Skripte angepasst sind, kann man die Website prinzipiell schon im Browser öffnen. Rufe auf einem Computer oder Smartphone im gleichen Netzwerk folgende URL auf: http://raspberrypi/ (Alternativ nimmst du die lokale IP Adresse 192.168.x.x, wie am Ende des Tutorials beschrieben)

Hier gibt es verschiedene Ansichten:

Übersicht der am Raspberry Pi angeschlossenen Sensoren zur Gartenbewässerung

Ein Klick auf die einzelnen Sensoren, verrät die gemessen Details der letzen zwei Wochen mit grafischer Darstellung als Diagramme:

Viele Details, wie die gemessene Temperatur, Feuchtigkeit, Helligkeit, Leitfähigkeit sowie den Batteriestand erfahren wir in der Detail-Ansicht.

 

Vorbereitung der Xiaomi Pflanzensensoren

Damit der Sensor läuft muss die Rückseite, wie in der Bedienungsanleitung des Sensors beschreiben, entfernt werden und die Schutzfolie der Batterie entfernt werden. Danach die Rückseite wieder aufsetzten.

Wenn die Xiaomi Sensor oder Sensoren nun laufen müssen bei diesen die MAC-Adresse ausgelesen werden. Dafür rufen wir die Konsole auf und geben folgendes ein:

sudo hcitool lescan

Nun solltet ihr den „Flower care“ Sensor sehen.

Bei mehreren Sensoren erscheinen mehrere Einträge mit unterschiedlichen MAC-Adressen.

Diese MAC-Adresse müssen wir uns nun merken in diesem Beispiel wäre das:

  • 80:EA:CA:89:20:6A

Somit sind wir nun am Ende der Vorbereitung für den Xiaomi Pflanzensensor.

 

Bewässerungsskript

Nun haben wir alle benötigen Installationen und sonstige Vorbereitungen durchgeführt und können an das eigentliche Bewässerungsskript gehen.

Dieses Skript findest du im Hauptordner „Bewaesserung“:

Nun öffnen wir das Skript „bewaesserung.py“ mit einem beliebigen Editor.

Als erstes geben wir die Steckdosenparameter an die wir vorhin ausgelesen haben.

  • gp steht für den GPIO Pin. Hier nehmen wir den 17 Pin wie schon im oberen Bild gezeigt.

  • an: hier setzen wir den Wert ein den wir beim Anschalten aufgezeichnet haben.
  • aus: hier setzen wir den Wert ein den wir bei Ausschalten aufgezeichnet haben.
  • proto: das steht für Protokoll hier setzten wir „1“ ein.
  • puls1: hier schreiben wir die erste Pulslänge rein
  • puls2: hier schreiben wir die zweite Pulslänge rein

Beim Testen des Skripts ist mir aufgefallen, dass eine Pulslänge nicht ausreichend ist, deswegen nutzen wir zwei Stück und geben den Befehl als Wiederholung beim An- und bei Ausschalten 2-3 Mal aus. Aber dazu später mehr.

 

Nun kommen wir zu den Zeiten: Hier wird zunächst angegeben an welcher Tageszeit das Skript laufen soll. Wie im Bild beschrieben:

Jetzt müssen wir die Steuer/Warte Zeiten definieren, siehe Bild:

Jetzt ist es genug mit Definieren; nun geht’s zur eigentlichen Aktion.

Bei Sensor1 müssen wir die vorher ermittelte MAC-Adresse des erstens Sensors eingeben.

In diesem Beispiel wäre das „80:EA:CA:89:20:6A“.

Wichtig ist die time.sleep(2) Funktion; damit geben wir dem Skript zwei Sekunden Zeit um den Sensor auszulesen. Diese zwei Sekunden sollten eigentlich immer genügen.

 

Falls man mehr als einen Sensor verwenden will, muss man folgenden Bereich aktiv setzen und wiederholen, wie im Bild beschrieben: (aktiv setzen bedeutet „#“ vor der Zeile entfernen)

Zum Testen des Skripts hilft meistens „print()“. Dies benötigt aber das fertige Skript nicht mehr, deswegen ist die nächste Zeile als Kommentar geschrieben:

Kommen wir zur Datenbankverbindung, hier musst du deine Daten eintragen:

Nun werden die gesammelten Daten von Sensor1 mithilfe dieser Zeilen in der Datenbank gespeichert:

Falls mehrere Sensoren eingesetzt werden sollen, kann folgender Bereich wiederholt, aktiv gesetzt und angepasst werden.

Wenn du nur einen Sensor verwenden möchtest, musst du nun an dieser Stelle nichts ändern. Falls mehrere Sensoren und eben nur eine Pumpe (Funksteckdose) im Einsatz ist können wir die verschiedenen Feuchtigkeitswerte addieren und dann durch die Summe aller Sensoren teilen.
Im Bild sind zwei Beispiele:

Nun fragen wir die oben ermittelte Feuchtigkeit ab:

Wie vorhin schon beschrieben senden wir das Anschaltsignal mehrmals in verschiedenen Pulslängen.

Danach wird die Zeit bis zum Ausschalten gewartet. Diese Zeit wurde zuoberst im Skript definiert:

  • pumpendauer

Danach schalten wir die Steckdose wieder aus. Auch hier senden wir mehrmals das Ausschaltsignal in den verschiedenen Pulslängen.

Falls die Bodenfeuchtigkeit nicht zu trocken ist, folgen diese Zeilen:

Hier schalten wir zusätzlich zum „warten“ die Pumpe als Sicherheit nochmals aus.

Die Wartezeit ist ebenfalls zuoberst im Skript definiert.

Wenn bei der ersten Abfrage, ob es Tag oder Nacht ist, das Resultat Nacht ist, kommen die letzten Zeilen des Skripts zum Einsatz:

An dieser Stelle sind wir nun fertig mit dem Anpassen.

 

Ausführen des Skripts

Zum Starten des kompletten Skripts muss in der Konsole folgender Befehl eingegeben werden:

python3 /home/pi/Desktop/Bewaesserung/bewaesserung.py

Nun läuft das Skript und die Daten werden geloggt. Dies könnt ihr dann auf der Webseite sehen.

Zusätzliche Funktionen

Wie vielleicht bemerkt sind im Hauptordner noch drei andere Pythonskripte. Diese können ausgeführt werden, wenn die Funksteckdose manuell an oder ausgeschaltet werden soll. Aber auch hier muss zuerst im oberen Bereich des Skripts eure ausgelesenen 433mHz Signale eingetragen werden, analog wie im Skript „bewaesserung.py“.

Zum ausführen dieser Skripte müssen folgende Befehle in der Konsole eingegeben werden:

Funksteckdose an:

python3 /home/pi/Desktop/Bewaesserung/an.py

Funksteckdose aus:

python3 /home/pi/Desktop/Bewaesserung/aus.py

 

Das letzte Script ermöglicht es euch den oder die Sensoren manuell auszulesen.

Dafür muss die Datei mit der richtigen MAC-Adresse des Sensors versehen werden. Auch hier besteht die Möglichkeit mehrere Sensoren auszulesen.

Das Skript wird mit folgendem Befehl aus der Konsole gestartet:

python3 /home/pi/Desktop/Bewaesserung/datenlesen.py

 

Raspberry Pi App

Damit ihr nicht einen Rechner oder Laptop für diese zusätzlichen Funktionen benötigt könnt ihr auch eine App auf eurem Smartphone verwenden.

Ich habe die kostenlose App „RaspController“ (für Android) dafür verwendet. Lade dir diese App herunter und stellt sicher dass du dich im gleichen WLAN Netzwerk wie der Raspberry Pi befindest.

Nun kannst du die App starten und ein neues Gerät mit dem Plus-Symbol hinzufügen.

Gib nun einen Gerätename für dein Raspi ein.

Die IP-Adresse findet ihr mit folgendem Befehl in der Konsole heraus:

ifconfig

Der Benutzername und das Kennwort sind die gleichen wie beim Aufsetzen angegeben wurden. Falls du diese nicht geändert hast, lauten diese:

  • Benutzername: pi
  • Kennwort: raspberry

Wenn die Verbindung erfolgreich hergestellt wurde können unter „Benutzerdefinierte Befehle“ mit dem ( + ) [Plus-Symbol] neue Befehle hinzugefügt werden.

Hier ein Beispiel für die 3 Dateien:

Pumpe anschalten:

  • Name: Pumpe an
  • Befehl:
    python3 /home/pi/Desktop/Bewaesserung/an.py

Pumpe ausschalten:

  • Name: Pumpe aus
  • Befehl:
    python3 /home/pi/Desktop/Bewaesserung/aus.py

Sensoren auslesen:

  • Name: Sensoren manuell auslesen
  • Befehl:
    python3 /home/pi/Desktop/Bewaesserung/datenlesen.py

 

 

– Dieses Tutorial ist vom Leser Samuel Ruprecht erstellt und zur Verfügung gestellt. Wenn auch du einen Tutorialvorschlag hast, kannst du dich gerne melden 🙂

28 Kommentare

  1. Hallo
    ich finde deine Anleitungen immer sehr anregend. Gegenwärtig veruche ich die Bewässerung nachzubuen.
    An folgendem stosse ich kräftig an: das Auslesen und die Ansteuerung der Funksteckdosen. Unglücklicherweise habe ich die Neuen von Brennenstuhl im Viererset gekauft, die man sich selbst konfigurieren lassen kann. Soweit gut.
    Mit dem Auslesen am RPI bekomme ich sozusagen nur Müll, erst noch selbst ausgelöst. Mit einem Arduino sehen die Werte seriöser aus, aber beim Ansteuern klappt es nur sporadisch.
    Was ich feststellte: beim Auslesen immer nur An kommt immer die gleiche Vierersequenz verschiedener Codes nacheinander, aber welchen der vier ich nehmen soll ist völlig unklar. Der Schalter funktioniert aber mit der Fernedienung problemlos.
    Kannst du dir einen Reim darauf machen?
    Gruss
    Jürg

    Antworten
      • Hallo Sam
        entschuldige, war grad einige Zeit anderswo beschäftigt.
        Nein, Steckdosen und Fernbedienung haben keine DIP-Schalter.
        Das Binden von Tasten und Schalter macht man mit einer Befehlssequenz.
        Und das funktioniert auch.

        Und ja, wenn du mir zum Senden ein Script erstellen könntest, vielen
        Dank!
        Gruss
        Jürg

      • Hallo Sam,

        ich würde das Script auch brauchen, hast du das auf github?

      • Hi sam

        Hab auch das Problem mit den funksteckdosen ohne dip schalter- kannst du mir bitte ebenfalls das script schicken und erläutern wie ich das im code implementiere?

        Danke

  2. Hallo,

    Kann man mit dem Script evtl. auch W-Lan Steckdosen für die Bewässerung schalten?
    Die Dinger sind ja gerade günstig zu haben.

    MfG Martin

    Antworten
  3. Hallo,
    ich scheitere beim öffnen der Raspberry Pi Gartenbewässerung-Website

    Zitat aus dem Tutorial:
    Sobald die PHP Skripte angepasst sind, kann man die Website prinzipiell schon im Browser öffnen. Rufe auf einem Computer oder Smartphone im gleichen Netzwerk folgende URL auf: http://raspberrypi/ (Alternativ nimmst du die lokale IP Adresse 192.168.x.x, wie am Ende des Tutorials beschrieben)

    Der oben beschriebene Aufruf der Webseite kann nicht stimmen, da muss noch was angehängt werden, aber was?
    und wo ist das ziel?
    – /home/pi/Desktop/Bewaesserung/Webseite
    – /var/www oder
    – /var/www/html

    Danke!

    Antworten
    • Hallo Michael
      Hast du Apache2 erfolgreich installiert wie in diesem Tutorial beschrieben (https://tutorials-raspberrypi.de/webserver-installation-apache2/)?
      Falls http://raspberrypi/ nicht funktioniert versuche http://die-ip-vom-pi/
      Die IP von deinem Raspberry findest du in der Konsole mit dem Befehl „ifconfig“ heraus.
      Kommt dann beim ersten Aufruf der Seite der Text: „It works!“?
      Falls ja musst du die Website Daten ins /var/www Verzeichnis hochladen.
      Zum testen ob das das richtige Verzeichnis ist kannst du auch eine einfach HTML Datei zuerst da rein kopieren. Der HTML-Code könnte z.b. so aussehen:

      Test Seite

      Diese Seite funktioniert

      Dieser Code einfach in einer index.html datei abspeichern und im Browser mit http://raspberrypi/index.html öffnen.

      Beste Grüsse
      Sam

      Antworten
  4. Hallo,
    habe das Tutorial bereits mehrfach durch.
    Jetzt läuft es, einziges Problem auf der Bewässerungs-Internet- Seite, Reiter Home, sind keine Daten.
    In phpMyAdmin, in der Datenbank bewaesserung, schon.
    Wenn ich auf der Bewässerungs-Internet- Seit den Bommel Sensor 1 anklicke kommt ganz oben die Meldung
    „SQLSTATE[HY000] [1045] Access denied for user ‚Benutzernamen’@’localhost‘ (using password: YES)“.
    Ist das mein Problem und wie kann ich es lösen?

    Ansonsten gutes Tutorial, bitte um Hilfe

    lg

    Antworten
    • Hallo
      Bitte überprüfe die „funktionen.inc.php“ und „funktionen-pdo-Sensoren.inc.php“. So wie es aussieht hast du da noch nicht den richtigen SQL Benutzer hinterlegt.

      Lg
      Sam

      Antworten
    • Das Problem hatte ich auch, du musst nochmals die Eingabe von: host, user, passwort und Datenbank überprüfen.

      Ich bin aktuell an dem Problem, dass er mir beim Ausführen von :
      python3 /home/pi/Desktop/Bewaesserung/datenlesen.py

      folgende Fehlermeldung ausgibt:

      Traceback (most recent call last):
      File „/home/pi/.local/lib/python3.7/site-packages/btlewrap/bluepy.py“, line 27 , in _func_wrapper
      return func(*args, **kwargs)
      File „/home/pi/.local/lib/python3.7/site-packages/btlewrap/bluepy.py“, line 56 , in connect
      self._peripheral = Peripheral(mac, iface=iface, addrType=self.address_type)
      File „/home/pi/.local/lib/python3.7/site-packages/bluepy/btle.py“, line 391, i n __init__
      self._connect(deviceAddr, addrType, iface)
      File „/home/pi/.local/lib/python3.7/site-packages/bluepy/btle.py“, line 439, i n _connect
      raise BTLEDisconnectError(„Failed to connect to peripheral %s, addr type: %s “ % (addr, addrType), rsp)
      bluepy.btle.BTLEDisconnectError: Failed to connect to peripheral 80:EA:CA:89:20: 6A, addr type: public

      The above exception was the direct cause of the following exception:

      Traceback (most recent call last):
      File „/home/pi/Desktop/Bewaesserung/datenlesen.py“, line 20, in
      battery1 = sensor1.parameter_value(‚battery‘)
      File „/home/pi/Desktop/Bewaesserung/miflora/miflora_poller.py“, line 149, in p arameter_value
      return self.battery_level()
      File „/home/pi/Desktop/Bewaesserung/miflora/miflora_poller.py“, line 119, in b attery_level
      self.firmware_version()
      File „/home/pi/Desktop/Bewaesserung/miflora/miflora_poller.py“, line 127, in f irmware_version
      with self._bt_interface.connect(self._mac) as connection:
      File „/home/pi/.local/lib/python3.7/site-packages/btlewrap/base.py“, line 47, in __enter__
      self._backend.connect(self._mac)
      File „/home/pi/.local/lib/python3.7/site-packages/btlewrap/bluepy.py“, line 33 , in _func_wrapper
      raise BluetoothBackendException() from last_error
      btlewrap.base.BluetoothBackendException

      die angezeigte MAC Adresse stimmt nicht mit der von mir ermittelten überein, jedoch weiß ich nicht wie ich sie abändern kann.
      Hat jemand eine Idee?

      Antworten
  5. Hallo,
    danke für das tolle Tutorial!

    Hat schon jemand den Xiaomi Mi Flora Pflanzensensor über einen längeren Zeitraum im Betrieb? Viele Bewertungen schreiben, dass der Sensor sehr schnell kaputt gegangen ist..

    Beste Grüße,
    TK

    Antworten
    • Hi TK
      Ich habe die Sensoren jetzt seit dem 10.04.2020 im Einsatz. Einmal konnte ich eine Sensor nicht mehr erreichen, habe dann kurz die Batterie entfernt und wieder eingesetzt, lief danach wieder normal.

      Beste Güsse
      Sam

      Antworten
  6. Hi, ich stoße leider auf ein Problem, bei dem ich nicht weiter komme. Und zwar bei der Datei: bewaesserung.py. Ich bekomme immer folgende Fehlermeldung wenn ich das Skript teste:

    Traceback (most recent call last):
    File „/home/pi/Desktop/Bewaesserung/bewaesserung.py“, line 8, in
    from miflora.miflora_poller import MiFloraPoller
    File „/home/pi/Desktop/Bewaesserung/miflora/miflora_poller.py“, line 10, in
    from btlewrap.base import BluetoothInterface, BluetoothBackendException
    ModuleNotFoundError: No module named ‚btlewrap‘
    >>>

    Antworten
  7. Beim Ausführen von Bewaesserung.py bekomme ich immer folgende Fehlermeldung:

    Traceback (most recent call last):
    File „/home/pi/Desktop/Bewaesserung/bewaesserung.py“, line 8, in
    from miflora.miflora_poller import MiFloraPoller
    File „/home/pi/Desktop/Bewaesserung/miflora/miflora_poller.py“, line 10, in
    from btlewrap.base import BluetoothInterface, BluetoothBackendException
    ModuleNotFoundError: No module named ‚btlewrap‘
    >>>

    Antworten
    • Hallo Elias,

      diesen Fehler spucken die Sensoren aus, wenn Sie nicht erreicht werden können. Bei mir konnte ich das durch eine geringere Entfernung zwischen PI und Sensoren in den Griff bekommen.

      Liebe Grüße

      Antworten
    • Hi Elias – hast du das schon lösen können? ich bekomme exakt dieselbe Fehlermeldung. Wenn ich mit dem too hcitool lescan scanne werden alle 4 sensoren gefunden…

      Antworten
    • Hi Elias. Kann es sein, dass du den miflora nicht installiert hast? das war bei mir der grund warums nicht gefunkt hat: sudo pip3 install miflora hats bei mir gelöst 🙂

      Antworten
  8. Hi Ihr, ich bekomme die Website einfach nicht zum laufen. Er öffnet mir zwar am PC die Seite mit den Tabellen, diese sind aber leer. Bei einer Überprüfung der Datenbank habe ich die Daten aber gefunden. Der Fehler muss daher in der Kommunikation zwischen Website und der Datenbank liegen. Einen Fehler wird mit auf der Website nicht angezeigt, hat wer eine Idee, wie ich das fixen kann?

    Liebe Grüße

    Antworten
    • Hi Philipp

      Erstelle dir bitte eine neue PHP Datei. (z.B. test.php)
      Und füge diesen Code ein: (und gib deine richtige Daten an)

      Dann teste ob die Verbindung funktioniert.

      Grüsse
      Sam

      Antworten
      • Ich habe jetzt eine einfache Website erstellt, die die letzten 10 Daten der Sensoren aus der Datenbank ließt und simpel auf einer Website auflistet. Das funktioniert mit folgendem Code.

        Gieslogic

        Sensordaten Sensor 1
        query($query))

        {

        while ($row = $result->fetch_row())

        {

        printf(„%s, %s, %s „, $row[0], $row[1], $row[2], $row[3]);

        echo „\n
        „; //Zeilenumbruch

        }

        $result->close();

        }
        $link->close();
        ?>

        Sensordaten Sensor 2
        query($query))

        {

        while ($row = $result->fetch_row())

        {

        printf(„%s, %s, %s „, $row[0], $row[1], $row[2], $row[3]);

        echo „\n
        „; //Zeilenumbruch

        }

        $result->close();

        }
        $link->close();
        ?>

        Sensordaten Sensor 3
        query($query))

        {

        while ($row = $result->fetch_row())

        {

        printf(„%s, %s, %s „, $row[0], $row[1], $row[2], $row[3]);

        echo „\n
        „; //Zeilenumbruch

        }

        $result->close();

        }
        $link->close();
        ?>

        Sensordaten Sensor 4
        query($query))

        {

        while ($row = $result->fetch_row())

        {

        printf(„%s, %s, %s „, $row[0], $row[1], $row[2], $row[3]);

        echo „\n
        „; //Zeilenumbruch

        }

        $result->close();

        }
        $link->close();
        ?>

        Aber ich bekomme es einfach nicht hin, deine schöne Grafik ans laufen zu bekommen. Hast du eine Idee?

      • Hi Philipp
        Hat dein Raspy eine Internetverbindung?
        Falls nein musst du dieses Javascript herunterladen:
        https://canvasjs.com/assets/script/canvasjs.min.js
        Dies wird am Ende der PHP-Datei mit dem Befehl :
        https://canvasjs.com/assets/script/canvasjs.min.js
        aufgerufen.
        Lege dann das gedownloadete Javascript in den Websiteordner „js“.
        Danach musst du den oben Pfad anpassen:
        http://js/canvasjs.min.js

        Vielleicht funktioniert es dann so bei dir.

        Beste Grüsse
        Sam

  9. Hi Felix,

    ich habe dr. google nun schon des öfteren bemüht – finde aber keine Lösung für mein Problem. Wie Elias bekomme ich diese Fehlermeldung File „/home/pi/Desktop/Bewaesserung/bewaesserung.py“, line 8, in
    from miflora.miflora_poller import MiFloraPoller
    File „/home/pi/Desktop/Bewaesserung/miflora/miflora_poller.py“, line 10, in
    from btlewrap.base import BluetoothInterface, BluetoothBackendException
    ModuleNotFoundError: No module named ‚btlewrap‘

    kannst Du vielleicht hier unterstützen?

    Antworten
  10. Achja das reduzieren der Distanz brachte bei mir keinen Erfolg – ich habe die MiFloras testweise 5 – 10 centimer rund um den pi verteilt mit demselben ergebnis

    Antworten
  11. Hallo an Alle.
    Ich habe mich vor einigen Tagen an dieses Projekt gewagt, da ich neben der automatischen Bewässerung auch die Darstellung auf der Website sehr schön fand. Nun bin ich jedoch an eine Grenze gestoßen. Das Auslesen der Sensoren funktioniert (habe keine MiFlora, sondern verschiedene Sensoren für alle Daten), das speichern in die Datenbank auch. Nur die Webseite funktioniert nicht. Ich bekomme nur den ersten blauen Header angezeigt (bei Home, Sensor 1 und Sensor 2).
    Ich kenne mich leider wenig mit der Programmierung aus und nach einigen Recherchen habe ich herausgefunden, dass es vermutlich an der PHP Version liegt. Ich kann momentan nur 7.3 installieren, aber die genutzten mysql-Befehle werden nicht mehr unterstützt.
    Hat jemand das gleiche Problem oder eine Lösung, wie ich das Skript für PHP7.3 zum Laufen bringe oder aber wie ich PHP 5.6 installieren kann? Habe ein paar Anleitungen probiert, es hätte jedoch nie geklappt.

    Vielen Dank im Voraus
    Grüße Sebastian

    Antworten

Hinterlasse einen Kommentar

Deine Email Adresse wird nicht veröffentlicht.

Blog abonnieren

Abonniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!