Entwicklung eines Pflanzenbewässerungs Systemes

Gespeichert von artbody am Mo., 21.01.2019 - 10:15

Die Idee zur Entwicklung eines Pflanzenbewässerungs Systemes hatte ich vor ungefähr 2 Jahren.

Einfach sollte es sein. Keine Belastung der Pflanze durch Messung von elektrischen Leitwerten der Erde usw.

Erste Machbarkeitsstudien zeigten schnell den Weg zu ersten Prototypen.

Es wurden nun 3 Produkte favorisiert.

Ein Pflanzengiesser für Einzelpflanzen bis ca 10kg.

In diesem Bild sehen sie den  Prototypen aus dem 3D Drucker.

 

Ein Pflanzengiesser für Pflanztröge bis ca 30kg.

Hierzu gib es schon die ersten Platinenlayouts aber noch keinen Prototyp.

 

Ein Pflanzengiesser für Gewichtsklassen weit darüber,

Auf dem Bild ist unser funktionierender Prototyp  zu sehen.

Er ist einfach skalierbar unter Verwendung diverser Sensoren. Hierzu wurden viele Möglichkeiten zur erweiterten Nutzenbringung für den Verbaucher erörtert und entwickelt.

Außenbereich
Scalierbar bis in Tonnenbereich
Montage auf Hutschiene
Wasserdicht bis IP67 je nach verwendetem Schaltschrank
Winterhart
Solarbetrieb über externes Hutschienenmodul und USV
220Volt AC über externes Hutschienenmodul
Pumpe 12 Volt oder über entsprechend verfügbare Hutschienenmodule erweiterbar. Externes Pumpmodul - mit größerer Leistung

12V Relaisausgang für Heizung u.Pumpe
Füllstand Wasservorrat oder Wasser von festinstallierter Wasserversorgung
Überlaufdetektor
RTC
OLED 1.3“ Display Anzeige und RGB-LED für Feedback
und Encoder Schalter für die  Programmierung
LDR Lichtsensor u.a. für zusätzliche Beleuchtung mit Pflanzenlichtlampen
12V Relais mit Lichtsteuerung über RTC
Temperatursensor i2C
entsprechende Gewichtssensoren
WLAN / LAN Anbindung uber UART zur Datenübertragung an einen Serverwo diese in einer Datenbank erfasst werden.
Füllstand Vorratsbehälter
Feuchtesensor I2C ....

Wie sie leicht erkennen können ist das Hutschienen Modul ein recht komplexes System geworden. Der Microcontroller STM32L467 von ST wurde ausgesucht, die Platine mit der Elektronik entwickelt, ein Gehäuse gewählt usw.

Insbesondere die Datenübertragung an einen Server ermöglicht dann ein zentrales Management aller in einem System befindlichen Bewässerungssysteme . Das bedeutet, dass Füllstand der Wasservorratsbehälter, Temperatur, Luftfeuchtigkeit, Bewässerungszustand usw in einer Datenbank erfasst werden. Servicepersonal muss nur noch an den vom System gemeldeten Standorten eingesetzt werden. Je nach Größe und Art der Wasserversorgung können mit unserem System enorme Kosteneinsparungen erzielt werden.

Die Software,

wurde mit der Toolchain (STMCubeMX und SW4STM32) von ST erst mal im Groben umgesetzt. Hier wurde jedoch schnell erkennbar, das ein handgeschriebener Code später schnell zu unwartbarem Spaggeticode führen würde, somit habe ich hier ein Finite State Machine Tool gesucht welches auf UML2 basierend C-Code generiert. Wichtig war dass hier eine State Machine auf Funktionspointer basierend generiert wird. Desweiteren sollte dieses Tool mehr oder weniger Open Source sein. Gefunden habe ich folgendes Tool:

FW Profile is available as free and open software under the terms of the Mozilla Public Licence v2

https://github.com/pnp-software/fwprofile

The Framework Profile (FW Profile) is a specification-level
modelling language defined as a restriction of UML
Its main features are:
  • C language implementation suitable for safety-critical, real-time and embedded applications
  • Web-based modeling tool with C code generation available

https://pnp-software.com/fwprofile

Hiermit war es nun möglich eine inzwischen doch recht komplexe Software als State Machine aufzubauen und all die Features zu integrieren..

Hier ist der grobe Ablauf doch recht leicht erkennbar. Dass hinter jedem farbig markierten Feld natürlich weitere, zum Teil bis in die 3te Ebene reichende StateMachines verborgen sind, sei hier nur kurz erwähnt.

fwFsm.svg

So findet sich derzeit zum Beispiel hinter STATE_FsmMenuOled folgende StateMachine

mit dem dahinter liegenden C-Code ergeben sich inzwischen über 80kb Source Code nur für die State Machine

  Length      Date    Time    Name
---------  ---------- -----   ----
    26770  01-20-2019 22:12   fwFsm/FwFsm.h
    56702  01-20-2019 22:12   fwFsm/FwFsm.c
     2718  01-20-2019 22:12   fwFsm/FwFsmMain.c

Hier fehlt noch main.c .... und der C-Code für die Ansteuerung der ganzen Sensoren und Ausgabe. Für den Microcontroller compiliert sind es inzwischen ca 60KB.

Der derzeitig aktuellste Prototyp