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.

 

19 Gedanken zu „HiGrow-Sensor: Daten erfassen und versenden

  1. Orhan

    Hallo hab den Sketch auf dem HiGrow hochgeladen. Allerdings funktioniert es bei mir nich der HiGrow startet immer wieder neu. Anscheinend ein Bootloop.

    Like

    Antwort
      1. Orhan

        Hallo


        rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
        configsip: 0, SPIWP:0xee
        clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
        mode:DIO, clock div:1
        load:0x3fff0018,len:4
        load:0x3fff001c,len:956
        load:0x40078000,len:0
        load:0x40078000,len:13256
        entry 0x40078a90
        DeviceId: 207537695927856
        Connecting to
        …………….ets Jun 8 2016 00:22:57

        rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
        configsip: 0, SPIWP:0xee
        clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
        mode:DIO, clock div:1
        load:0x3fff0018,len:4
        load:0x3fff001c,len:956
        load:0x40078000,len:0
        load:0x40078000,len:13256
        entry 0x40078a90
        DeviceId: 207537695927856
        Connecting to
        …………….ets Jun 8 2016 00:22:57

        rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
        configsip: 0, SPIWP:0xee
        clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
        mode:DIO, clock div:1
        load:0x3fff0018,len:4
        load:0x3fff001c,len:956
        load:0x40078000,len:0
        load:0x40078000,len:13256
        entry 0x40078a90
        DeviceId: 207537695927856
        Connecting to
        ……..

        So geht es immer weiter.
        Normalerweise leuchtet die Blaue LED nicht nach dem flashen. Bei mir schon.

        Like

  2. DDino

    Hallo ckuehnel,
    ,
    erstmal besten Dank für MQTT. Das Senden von Daten in irgendeine Cloud, auch wenn sich sich primär nur um Erdfeuchte handelt, ist nicht akzeptabel für mich.
    Der MQTT Server im Heimnetz ist viel besser geeignet und FHEM kann die Daten gut weiterverarbeiten

    Die reboot Probleme, welche Orhan beschrieben hat, treten sporadisch auch bei mir auf.
    Nach dem Hochladen des Programms besonders häufig, auch mit Akku in der Halterung.
    Verschiedene Netzteile haben keine Veränderung des Verhaltens gebracht.

    Nun möchte ich das Ding im Akku-Betrieb laufen lassen und wollte fragen, ob die Akku-Spannung irgendwo direkt auslesbar ist.

    Beste Grüsse

    Like

    Antwort
  3. Raipat

    Die Brownout-Probleme kann ich nachvollziehen, sie treten bei mir aber nur auf, wenn Batterie UND USB-Gerät angesteckt sind. Meine 3 higrow funktionieren einwandfrei, wenn sie entweder nur am USB-Port eines PC stecken (Batterie raus), oder nur die Batterie gesteckt ist. Sobald ich das Gerät im eingeschaltetem Zustand mit Batterie nutzen möchte, passieren bootloops. Nicht immer, aber oft und bei allen drei higrows, die ich habe.

    Vielen Dank für die Informationen und den Code. Wir haben ihn erweitert (json statt Einzelwerte in MQTT, device Characteristika in nvram statt hart im Code, BLE Gehversuche) und für einen proof-of-concept beim blockchain4.business Hackathon eingesetzt. Beizeiten werde ich den aufhübschen und im Weatherblocks-Projektrepo publishen.

    Was hat es eigentlich mit dem Lichtsensor auf sich? Ist der bei der v1 überhaupt verbaut? Ich bekomme da eher „Zufallswerte“ und finde auch keinen passenden Sensor auf der Platine.

    Like

    Antwort
    1. ckuehnel Autor

      Beim Lichtsensor habe ich die gleichen Erfahrungen machen müssen. Die angekündigte v2 sollte einiges n Verbesserungen bringen. U.a. auch eine Spannungsteiler, um die Batteriespannung messen zu können.

      Like

      Antwort
  4. Frank

    hallo zusammen,

    das brownout problem hatte ich auch. man kann die brownout detection auh ausschalten.

    #include „soc/soc.h“
    #include „soc/rtc_cntl_reg.h“

    im setup teil:
    WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG,0); //disable browout detctor

    und schon ist ruhe und die ständigen reboots hören auf.
    schöne grüße 🙂
    frank

    Gefällt 1 Person

    Antwort
    1. Patrick Note Zwei

      super Hinweis, hab ihn direkt ausprobiert -> Batterie drin und am USB angeschlossen, keine Reboots mehr. Danke fürs Teilen 🙂

      Like

      Antwort
  5. Daniel

    Hi,

    ich habe derzeitig 6 der Sensoren laufen, bin aber mit der Laufzeit im Batterie betrieb nicht wirklich zufrieden. Derzeitig lasse ich alle 30 min die Daten per MQTT verschicken und dann gehts wieder in den Deep Sleep. Leider ist nach 1W+ meist der Akku alle. Habe den Code schon ein bisschen angepasst. leider brachte das nur minimale Erfolge.
    Wie sind eure Erfahrungen hier?

    Gruß Daniel

    Like

    Antwort
  6. Joachim

    Hallo,
    genau, was ist gesucht habe. Vielen Dank.
    Welche Libraries hast du verwendet.
    Kannst du bitte die Links hierfür angeben?
    Vielen Dank
    Joachim

    Like

    Antwort
      1. Joachim

        Vielen Dank für die schnelle Antwort!
        Prima, hat gut geklappt.
        Musst er noch einmal Arduino IDE neu installieren und alten Einstellungen / Verzeichnisse löschen.
        Habe dort wohl etwas zerschlagen.
        Gruß
        Joachim

        Like

  7. Pingback: Messung von Umgebungsbedingungen für Pflanzen – ckArduino

  8. Gorcon

    Hallo,
    ich wollte eben den Sketch von Github kompilieren, jedoch bricht dieser recht schnell ab mit der Meldung:
    HiGrowEsp32:50:59: error: ‚esp_deep_sleep_enable_timer_wakeup‘ was not declared in this scope
    esp_deep_sleep_enable_timer_wakeup(1800 * uS_TO_S_FACTOR);
    ^
    Ich habe auch nichts gefunden wo ich die IP vergeben kann. Fehlen da noch entsprechende Konfigurations Dateien?

    Like

    Antwort
    1. ckuehnel Autor

      Hallo Gorcon, bitte den genauen Link angeben. Ich schaue mir das dann an.
      Handelt es sich um das Programm HiGrowESP32Pushover.ino?
      Die WLAN und Pushover Zugangsdaten sind in die Datei arduino_secrets.h ausgelagert. Die habe ich anonymisiert bereitgestellt.
      Handelt es sich um das Programm HiGrowESP323MQTT.ino?
      Die WLAN und Pushover Zugangsdaten sind in die Datei credentials.h ausgelagert und dort anonymisiert bereitgestellt.
      Beide Programme habe ich mit der Arduino IDE 2.0 RC8 erfolgreich compiliert. Screenshot habe ich dem Repository beigefügt.
      Bitte kurzes Feedback.
      Claus Kühnel

      Like

      Antwort

Hinterlasse einen Kommentar