Giesomat 16 Sensoren

OP #6664151
Lesenswert?

Hallo
ich tue mich beim programmieren noch etwas schwer.
Ich möchte mit einem Arduino Uno einen 16 Channel Multiplexer (74HC4067) 
ansteuern.
An diesen 16 Giesomat Sensoren hängen.
Kann mir jemand sagen was ich beim auslesen des Multiplexers falsch 
mache?
1
#include <EEPROM.h>
2

3

4
const int MultiplexPinA = 8;
5
const int MultiplexPinB = 9;
6
const int MultiplexPinC = 10;
7
const int MultiplexPinD = 11;
8
const int OutputPin1 = 13;
9
const int OutputPin2 = 12;
10

11
byte GeneralRunmode; // 0 = CLI Terminalmode, 1 = Serial Monitormode
12
byte Reserved;  //Reserved. Maybe for transmit time, .....
13
String TerminalModeCommand;
14
String TerminalModeValue;
15
byte ConsoleMenue;
16

17
byte CurrSensor; //Counter for the loop
18
unsigned int FreqSensor[15]; //Actual read in frequencies of sensors
19

20
unsigned int RunmodeOutput1;
21
unsigned int UsedSensorForOutput1;
22
unsigned int SetpointOutput1On;
23
unsigned int SetpointOutput1Off;
24
unsigned int MinOnTimeOutput1;
25
unsigned int MinOffTimeOutput1;
26
unsigned int MinOnTimeOutput1Actual;
27
unsigned int MinOffTimeOutput1Actual;
28

29
unsigned int RunmodeOutput2;
30
unsigned int UsedSensorForOutput2;
31
unsigned int SetpointOutput2On;
32
unsigned int SetpointOutput2Off;
33
unsigned int MinOnTimeOutput2;
34
unsigned int MinOffTimeOutput2;
35
unsigned int MinOnTimeOutput2Actual;
36
unsigned int MinOffTimeOutput2Actual;
37

38
unsigned long MillisNow;
39
unsigned long MillisLast;
40

41
void setup() {
42
  Serial.begin(9600);
43
  Serial.setTimeout(100);
44
  pinMode(MultiplexPinA, OUTPUT);
45
  pinMode(MultiplexPinB, OUTPUT);
46
  pinMode(MultiplexPinC, OUTPUT);
47
  pinMode(MultiplexPinD, OUTPUT);
48
  pinMode(OutputPin1, OUTPUT);
49
  pinMode(OutputPin2, OUTPUT);
50
  TCCR1A = 0; //Reset timer 1
51
  ReadSettings();
52
}
53

54
void loop() {
55
  MillisNow = millis();
56
  if (MillisNow - MillisLast >= 1000) { //One second elapsed. Read the sensors,.......
57
    for (CurrSensor = 0; CurrSensor < 16; CurrSensor++) {
58
      //Serial.print(CurrSensor);
59
      SelectSensor(CurrSensor);
60
      CountFrequency();
61
      AssignToSensor(CurrSensor);
62
      if (GeneralRunmode == 0) { //Send to PC in CLI Terminalmode
63
        SendSensorFreqOverUart(CurrSensor);
64
      }
65
    }
66
    CheckLockTimes();
67
    CheckOutputs();
68
    if (GeneralRunmode == 0) { //Send to PC in CLI Terminalmode
69
      SendOutputStatesOverUart();
70
    }
71
    MillisLast = MillisNow;
72
  }
73
  if (Serial.available() > 0) { //Read in command and value from PC
74
    TerminalModeCommand = Serial.readStringUntil(';');
75
    Serial.read();
76
    TerminalModeValue = Serial.readStringUntil(';');
77
    Serial.read();
78
    if (GeneralRunmode == 0) {
79
      ParseTerminalMode();
80
    }
81
    if (GeneralRunmode == 1) {
82
      ParseConsoleMode();
83
    }
84

85
  }
86
}

Sensor Read:
1
void SelectSensor(byte SensorToSelect) {
2
  SensorToSelect--;
3
  digitalWrite(MultiplexPinA, (bitRead(SensorToSelect, 0)));
4
  digitalWrite(MultiplexPinB, (bitRead(SensorToSelect, 1)));
5
  digitalWrite(MultiplexPinC, (bitRead(SensorToSelect, 2)));
6
  digitalWrite(MultiplexPinD, (bitRead(SensorToSelect, 3)));
7
}
8

9
void CountFrequency() {
10
  TCNT1 = 0; //Reset Counter
11
  delay(10);            //Delay for stable channel selection
12
  bitSet(TCCR1B, CS12); //Select counter clock
13
  bitSet(TCCR1B, CS11); //Count on rising edge
14
  delay(50);            //Count for 50mS
15
  TCCR1B = 0;           //Stop counting
16
}
17

18
void AssignToSensor(int SelectedSensor) {
19
  FreqSensor[SelectedSensor - 1] = TCNT1 / 5; //Counts per 10mS
20
}

Vielen Dank
Dirk
Gast #6664159
Lesenswert?

> FreqSensor[SelectedSensor - 1]

Sagt mir, dass SelectedSensor die Werte 1..16 haben soll.
Aber du zählst in deiner for-Schleife von 0 bis 15.

Wenn du bessere Hilfe haben willst, solltest du beschrieben, was du 
beobachtet hast und was du stattdessen erwartet hast. Ein paar serielle 
Log-Meldungen könnten dabei helfen herauszufinden was da passiert.
OP #6664383
Lesenswert?

Hallo,
ich dachte das das so richtig ist, von 0 zu zählen
Habe ich geändert das ich von 1 -16 zähle

1
const int MultiplexPinA = 8;
2
const int MultiplexPinB = 9;
3
const int MultiplexPinC = 10;
4
const int MultiplexPinD = 11;
5
const int OutputPin1 = 13;
6
const int OutputPin2 = 12;
7

8
byte GeneralRunmode; // 0 = CLI Terminalmode, 1 = Serial Monitormode
9
byte Reserved;  //Reserved. Maybe for transmit time, .....
10
String TerminalModeCommand;
11
String TerminalModeValue;
12
byte ConsoleMenue;
13

14
byte CurrSensor; //Counter for the loop
15
unsigned int FreqSensor[16]; //Actual read in frequencies of sensors
16

17
unsigned int RunmodeOutput1;
18
unsigned int UsedSensorForOutput1;
19
unsigned int SetpointOutput1On;
20
unsigned int SetpointOutput1Off;
21
unsigned int MinOnTimeOutput1;
22
unsigned int MinOffTimeOutput1;
23
unsigned int MinOnTimeOutput1Actual;
24
unsigned int MinOffTimeOutput1Actual;
25

26
unsigned int RunmodeOutput2;
27
unsigned int UsedSensorForOutput2;
28
unsigned int SetpointOutput2On;
29
unsigned int SetpointOutput2Off;
30
unsigned int MinOnTimeOutput2;
31
unsigned int MinOffTimeOutput2;
32
unsigned int MinOnTimeOutput2Actual;
33
unsigned int MinOffTimeOutput2Actual;
34

35
unsigned long MillisNow;
36
unsigned long MillisLast;
37

38
void setup() {
39
  Serial.begin(9600);
40
  Serial.setTimeout(100);
41
  pinMode(MultiplexPinA, OUTPUT);
42
  pinMode(MultiplexPinB, OUTPUT);
43
  pinMode(MultiplexPinC, OUTPUT);
44
  pinMode(MultiplexPinD, OUTPUT);
45
  pinMode(OutputPin1, OUTPUT);
46
  pinMode(OutputPin2, OUTPUT);
47
  TCCR1A = 0; //Reset timer 1
48
  ReadSettings();
49
}
50

51
void loop() {
52
  MillisNow = millis();
53
  if (MillisNow - MillisLast >= 1000) { //One second elapsed. Read the sensors,.......
54
    for (CurrSensor = 1; CurrSensor < 16; CurrSensor++) {
55
      Serial.print(CurrSensor);
56

57
//Ausgabe:10;20;30;40;50;60;70;80;90;100;110;120;130;140;150;0;0;
58

59
      SelectSensor(CurrSensor);
60
      CountFrequency();
61
      AssignToSensor(CurrSensor);
62
      if (GeneralRunmode == 0) { //Send to PC in CLI Terminalmode
63
        SendSensorFreqOverUart(CurrSensor);
64
      }
65
    }
66
    CheckLockTimes();
67
    CheckOutputs();
68
    if (GeneralRunmode == 0) { //Send to PC in CLI Terminalmode
69
      SendOutputStatesOverUart();
70
    }
71
    MillisLast = MillisNow;
72
  }
73
  if (Serial.available() > 0) { //Read in command and value from PC
74
    TerminalModeCommand = Serial.readStringUntil(';');
75
    Serial.read();
76
    TerminalModeValue = Serial.readStringUntil(';');
77
    Serial.read();
78
    if (GeneralRunmode == 0) {
79
      ParseTerminalMode();
80
    }
81
    if (GeneralRunmode == 1) {
82
      ParseConsoleMode();
83
    }
84

85
  }
86
}
erwartet habe ich einen Wert vom Sensor. Irgendeine Zahl.

Hier noch der Schaltplan:
Angehängte Dateien:
Gast #6664437
Lesenswert?

Schaltplan ist ja wohl übertrieben, das ist ein halbfertiges Gemälde von 
Modulen.
Ein analog Mux an analog Sensoren, aber gelesen wird eine Periodendauer? 
Das passt zum originalen Giesso-mat von D. Weiser (der auch mehr 
schlecht als recht funktioniert), aber im Bild sind andere Komponenten. 
Und vom Mux ist der Signalausgang nicht verdrahtet. Zum Test wäre ja 
erstmal das Gedöns ohne den Mux sinnvoll, ob das mit einem Sensor 
überhaupt funktioniert.
Und mit den angegebenen Versorgungsspannungen wird das zur 
Selbstzerstörung wenn man die 12 V über den Mux auf den ESP schaltet.
Dann schon lieber das nachbauen bzw. erweitern:
https://www.mikrocontroller.net/articles/Giess-o-mat
Gast #6664619
Lesenswert?

Dirk M. schrieb:
> Habe ich geändert das ich von 1 -16 zähle

Nein, jetzt zählst du von 1 bis 15:
1
for (CurrSensor = 1; CurrSensor < 16; CurrSensor++)

Aber deine Funktion SelectSensor benötigt Werte von 0-15:
1
void SelectSensor(byte SensorToSelect) {
2
  SensorToSelect--;
3
  digitalWrite(MultiplexPinA, (bitRead(SensorToSelect, 0)));
4
  digitalWrite(MultiplexPinB, (bitRead(SensorToSelect, 1)));
5
  digitalWrite(MultiplexPinC, (bitRead(SensorToSelect, 2)));
6
  digitalWrite(MultiplexPinD, (bitRead(SensorToSelect, 3)));
7
}

Und dein Zugriff auf das Array benötigt Werte von 1-16:
1
void AssignToSensor(int SelectedSensor) {
2
  FreqSensor[SelectedSensor - 1] = TCNT1 / 5; //Counts per 10mS
3
}

Du musst dich schon auf eine Zählweise festlegen und das konsequent 
durch ziehen.

> erwartet habe ich einen Wert vom Sensor

Bitte lerne, das Fehlerbild und deine Erwartung präziser zu beschrieben. 
Mit so einem Einzeiler kann niemand etwas anfangen.

Zeichne einen ordentlichen Schaltplan, nicht dieses halbe Fritzing Bild. 
Schaltpläne sehen ganz anders aus. Gebe genau an, welche Bauteile du 
verwendet hast. Messe alle relevanten Spannungen und trage im Schaltplan 
ein, wo genau du was gemessen hast.

Falls du Sensoren mit digitalen Ausgängen verwendet hast (wovon ich 
ausgehe, weil dein Programm das so will), überprüfe die Signale mit 
einem geeigneten Gerät (Logic Analyzer oder Oszilloskop). Denn ohne 
korrekte Signal kann das Programm keine sinnvolle Ausgabe erzeugen.

Dein Quelltext kann so never-ever auf einem NodeMCU Board funktionieren. 
Das compiliert nicht einmal.
Gast #6664690
Lesenswert?

Weasel P. schrieb:
> Gehört zwar nicht voll zum Topic aber:
> Der Sensor den du da hast ist Mist.
> Entweder die Kontakte oxidieren dir Weg und vergiften die Erde darum.
> Oder die Platine saugt sich mit der Zeit mit Feuchtigkeit voll und
> springt auf.
> Besorg dir einen Induktiven Sensor und vergies die Platin.

Das kann ich nicht bestätigen.
Der Giesomat funltioniert einwandfrei.
Der funktioniert kapazitiv und nicht Leitwert basierend !

https://wwwvs.cs.hs-rm.de/vs-wiki/index.php/Internet_der_Dinge_WS2015/SmartPlant#Messmethode_2:_Kapazitiv
#6664719
Lesenswert?

Kettler schrieb:
> Der Giesomat funltioniert einwandfrei.
> Der funktioniert kapazitiv und nicht Leitwert basierend !
> 
https://wwwvs.cs.hs-rm.de/vs-wiki/index.php/Internet_der_Dinge_WS2015/SmartPlant#Messmethode_2:_Kapazitiv

Bei mir haben die Giesomaten nicht reproduzierbar gearbeitet. Eine in 
Vlies gebettete Sonde aufzuheizen und dann die Abkühlzeit zu messen 
(Gardena 1188-20) funktioniert bei mir in Garten zuverlässiger. Diese 
Methode fehlt übrigens auf der verlinkten Seite ...

LG, Sebastian
Gast #6664744
Lesenswert?

Sebastian W. schrieb:
> Kettler schrieb:
>
>> Der Giesomat funltioniert einwandfrei.
>> Der funktioniert kapazitiv und nicht Leitwert basierend !
>>
> 
https://wwwvs.cs.hs-rm.de/vs-wiki/index.php/Internet_der_Dinge_WS2015/SmartPlant#Messmethode_2:_Kapazitiv
>
> Bei mir haben die Giesomaten nicht reproduzierbar gearbeitet. Eine in
> Vlies gebettete Sonde aufzuheizen und dann die Abkühlzeit zu messen
> (Gardena 1188-20) funktioniert bei mir in Garten zuverlässiger. Diese
> Methode fehlt übrigens auf der verlinkten Seite ...
> LG, Sebastian

Bei mir schon. Dürfen halt nicht einwachsen. Das ist die kalorische 
Messmethode.
Habe ich damals für schlecht empfunden.
Auch sehr Erdreichabhängig.
#6665118
Lesenswert?

Dirk M. schrieb:
> Ich sehe ein das ich das nicht hinbekomme.

Ich sehe nur dass Du schnell aufgibst. Nach nur 3 Beiträgen, inkl. dem 
Eröffnungsthread, ist schon Schluss?🤔

Ich verstehe nicht weshalb Du nicht auf die Kommentare eingehst, vor 
allem auf die von Stefan. Ich verstehe auch nicht weshalb Du keinen 
vernünftigen Schaltplan postest. Das Bildchen von oben ist ja wohl gar 
nichts. Ich gehe davon aus aus dass du neben Fehlern in der SW auch 
Fehler in der Schaltung hast.
OP #6665562
Lesenswert?

Jörg R. schrieb:

>
> Ich sehe nur dass Du schnell aufgibst. Nach nur 3 Beiträgen, inkl. dem
> Eröffnungsthread, ist schon Schluss?🤔
>
> Ich verstehe nicht weshalb Du nicht auf die Kommentare eingehst, vor
> allem auf die von Stefan. Ich verstehe auch nicht weshalb Du keinen
> vernünftigen Schaltplan postest. Das Bildchen von oben ist ja wohl gar
> nichts. Ich gehe davon aus aus dass du neben Fehlern in der SW auch
> Fehler in der Schaltung hast.

So ich versuche es noch mal.
Es stimmt es müssen erst einmal die Fehler in der Schaltung raus.
Ich beschreibe einmal was ich tun will.
NodeMCU als MC.
16 originale Giesomat Sensoren sollen 16 Relais ansteuern.
Als Versorgungsspannung habe ich 24 Volt zur Verfügung.
Jetzt die erste Frage:
Was ist am Schaltplan falsch?
Angehängte Dateien:
#6665597
Lesenswert?

Dirk M. schrieb:
> So ich versuche es noch mal.

Nein, vom Schaltplan her ist es der erste Versuch.


Dirk M. schrieb:
> Was ist am Schaltplan falsch?

Man weiß gar nicht wo man anfangen soll🤔

- der Plan ist unvollständig
- es fehlen Abblockkondensatoren
- es fehlen Kondensatoren an den Spannungsreglern
- die Beschriftungen sind quasi nicht lesbar
- zufiel Fläche für die wenigen Bauteile
- die Verbindungsführung ist katastrophal
- usw. usw.

Siehe Dir mal allein die Beschaltung des oberen Reglers an. Vin geht 
einige ICs, aber wo kommt Vin her?
#6665600
Lesenswert?

Dirk M. schrieb:
> Was ist am Schaltplan falsch?

Man darf sich Bilder vor dem Absenden auch mal selber anschauen ob sie 
überhaupt lesbar sind.
Große Pläne als PDF, dann kann sie sich jeder selber skalieren.


Dirk M. schrieb:
> NodeMCU als MC.

Kenn ich nicht, da bin ich raus. Ich programmiere MCs immer bare metal 
ohne OS-Gerümpel.
Sowas wichtiges immer im Titel angeben, erspart viel unnützes Lesen und 
macht es für die interessant, die sich damit auskennen.
Gast #6665645
Lesenswert?

Dirk M. schrieb:
> NodeMCU als MC.

Das ist schon wieder sehr unpräzise. Es gibt zahlreiche total 
unterschiedliche Board, die sich irgendwas mit NodeMCU im namen haben.

> 16 originale Giesomat Sensoren

Es gibt analoge und digitale. Verweise auf das konkrete 
Produkt-Datenblatt.

> Was ist am Schaltplan falsch?

Die Beschriftung des Dings links oben, vom NodeMCU Board und den zwei 
Dings rechts oben sind nicht lesbar.

Um die Spannungsregler herum fehlen die nötigen Abblock-Kondensatoren.

An den anderen ICs fehlen ebenfalls Abblock-Kondensatoren.

Die Eingänge der unteren beiden Spannungsregler sind mit dem GND 
Anschluss des oberen verbunden anstatt mit der Stromversorgung.

Der GND Anschluss des oberen Spannungsregler ist nicht mit GND von der 
Stromversorgung verbunden.

Löse dich von Fritzing! Damit kann man genau so schlecht arbeiten, wie 
mit Sandkasten-Spielzeug beim Häuserbau.
Gast #6665806
Lesenswert?

Stefan ⛄ F. schrieb:
>> 16 originale Giesomat Sensoren
>
> Es gibt analoge und digitale. Verweise auf das konkrete
> Produkt-Datenblatt.

Der Giessomat Sensor ist soweit ich weiss zwar kein eingetragener 
Markenname, aber wenn vom 'Original' die Rede ist, sollte klar sein das 
es um den Sensor von D. Weiser bzw. den von Ramser Elektronik 
vertriebenen geht.
Also kapazitive Messung die als Ausgang eine variable Frequenz hat und 
zur Feuchtigkeit proportional sein soll. Da wurde schon viel drüber 
geschrieben und meine Erfahrung war das es nicht ordentlich 
funktioniert: steigender Feuchtigkeitswert wird erkannt, aber langsam 
fallender nur schlecht. Aber das soll jeder für sich rausfinden wenn er 
es nicht glaubt.

Bei uns im Betrieb ist der Besitz und das Inverkehrbringen von 
Isolierband verboten. Weil es zum Pfusch verleitet, und genauso würde 
ich das Fritzing einordnen. Zum dokumentieren von Breadboard Aufbauten 
sieht es ja nett aus, aber ein 'fotorealistischer' Schaltplan macht das 
Erkennen von Stromkreisen schwer. Die Zeit, damit etwas zu malen, 
investiert man besser in das Lernen von Eagle oder KiCad.

Für ein planmässiges Vorgehen empfiehlt sich auch erstmal das Ganze mit 
einem Kanal zu Testen, dann auf mehrere Kanäle erweitern. Einen Kanal 
kann man gut auf dem Breadboard testen, 2-3 mit Multiplexer zum Test 
auch noch. Dann wenigstens auf Lochraster löten, oder besser noch eine 
Platine entwerfen, da werden sie hier auch geholfen.

Software: Wenn es ein ESP Modul als Controller sein soll, dann muss die 
Software auch dazu passen. Für einen Einsteiger ist die Vielfalt der 
Arduinos vermutlich schon wieder verwirrend: angefangen hat es mit 
Boards mit Atmels AVR, und dazu passt der eingangs gezeigte Code. Die 
Grundfunktionen der Arduino Software aus 'Processing' wurde dann von 
Drittherstellern auf weitere Prozessoren portiert, auch die ESP. Die 
Hardware ist aber anders und z.B. die hardwarenahe Programmierung der 
Timer muss dann auch zum ESP passen. Der gezeigte Code sollte beim 
Kompilieren für ESP Module Fehlermeldungen bringen. Also für den ersten 
Test auch eine passende Frequenzmessung mit ESP suchen.
Gast #6665941
Lesenswert?

Stefan ⛄ F. schrieb:
> Dirk M. schrieb:
>> NodeMCU als MC.
>
> Das ist schon wieder sehr unpräzise. Es gibt zahlreiche total
> unterschiedliche Board, die sich irgendwas mit NodeMCU im namen haben.

Ich wette der TO hat ein ESP-8266-NodeMCU. Was jedenfalls auf den 
Schaltplan so aussieht.  Also das Teil was ein Wlan hat, und eine 
USB-Schnittstelle. Bekommt man ab. 3 Euro in China.

Dann hat er ein Arduino-Code genommen und wundert sich das da was herum 
zickt.

Der ESP ist zwar ungefähr das selbe wie ein Arduino. Aber da gibt es 
eine Menge feine Unterschiede. Viele NICHT ALLE Libs laufen nicht, bzw. 
müssen angepasst werden etc.

Ich kann nur hoffen das er wenigstens in der IDE die passenden 
Einstellungen für die ESP gemacht hat, bzw. sich die passenden Treiber 
nachgeladen hat.
Gast #6665944
Lesenswert?

Nachtrag:

Wenn er kein Wlan braucht und etwas mehr Platz hat, sollte er sich ein 
2560 kaufen, und die Leitungen alle direkt anklemmen. Dann muss er sich 
auch nicht mit den Multiplexer herum schlagen. :)
Gast #6665962
Lesenswert?

Stefan ⛄ F. schrieb:
> Schlaumaier schrieb:
>> Der ESP(8266) ist zwar ungefähr das selbe wie ein Arduino
>
> Der Satz ist genau so Aussagekräftig wie: Der HDI-16 Motor ist ungefähr
> das selbe wie ein Citroen.

NAja, irgendwie hast du Recht. ;)

Man kann halt beide mit der Arduino-IDE programmieren. Der Code ist in 
der selben Syntax. Etc.  Technisch ist das alles etwas anders. Weshalb 
auch meine Aussage das gewisse Libs angepasst werden müssen.

Das Problem was ich schon hatte was, ein Freund diese Feinheiten mal 
klar zu machen, weil er dachte das wäre alles das selbe.
OP #6665995
Lesenswert?

Schlaumaier schrieb:
> Wenn er kein Wlan braucht und etwas mehr Platz hat, sollte er sich ein
> 2560 kaufen, und die Leitungen alle direkt anklemmen. Dann muss er sich
> auch nicht mit den Multiplexer herum schlagen. :)

Ja ist ne gute Idee...aber WLAN oder LAN wäre für später sho besser.
Was kannst Du da empfehlen?
So etwas?
Ethernet Shield für Arduino Uno / Mega 2560
OP #6666001
Lesenswert?

Johannes S. schrieb:
> Der Giessomat Sensor ist soweit ich weiss zwar kein eingetragener
> Markenname, aber wenn vom 'Original' die Rede ist, sollte klar sein das
> es um den Sensor von D. Weiser bzw. den von Ramser Elektronik
> vertriebenen geht.
> Also kapazitive Messung die als Ausgang eine variable Frequenz hat und
> zur Feuchtigkeit proportional sein soll. Da wurde schon viel drüber
> geschrieben und meine Erfahrung war das es nicht ordentlich
> funktioniert: steigender Feuchtigkeitswert wird erkannt, aber langsam
> fallender nur schlecht. Aber das soll jeder für sich rausfinden wenn er
> es nicht glaubt.

aber was gibt es dann für alternativen?
Gast #6666004
Lesenswert?

Da fragst du den richtigen, die Labertasche Schlaumeier aka Puki aka 
noch ganz viele Nicks hier.
Für die Messung der Frequenzen im zig kHz Bereich wird der Input Capture 
benutzt, und wieviele hat ein Mega256 oder ESP8266/32 davon?
Der Multiplexer war schon die richtige Lösung, sowohl für die AVR als 
auch für die ESP.

Für WLAN ist ein ESP schon das zur Zeit günstigste. Und es gibt auch 
schon reichlich fertige Lösungen mit Giessomat Sensor und ESP.

Wenn es besser funktionieren soll, dann kann ich den Xaomi Flower Care 
empfehlen, der funkt mit Bluetooth, die Batterie hält einige Monate und 
es gibt Software um die Sensordaten einzusammeln (siehe z.B. Raspberry 
Forum).
Gast #6666011
Lesenswert?

Dirk M. schrieb:
> Ethernet Shield für Arduino Uno / Mega 2560

Wäre eine Lösung falls du Kabel brauchst.

Ansonsten lese mal den Blog hier. 
https://www.mikrocontroller-elektronik.de/nodemcu-esp8266-tutorial-wlan-board-arduino-ide/

Da ist das prima erklärt.

Relativ weit unter kannst du lesen was ich meine mit "Kleinen 
Unterschieden" in der IDE-Einstellung. ;)

Mit den ESP-Teilen kannst du ein Arduino auch nachrüsten. Und da der 
MEGA 2560 auch mehr Speicherplatz hat, wäre damit alles einfacher. 
Einzige Nachteil : der 2560 kostet in China ca. 8-12 Euro. In DE ca. 14 
Euro.

https://www.christians-shop.de/Boards  <- habe ich selbst schon bei 
(allerdings über Ebay) bestellt.
Gast #6666012
Lesenswert?

Stefan ⛄ F. schrieb:
> Leute mit grünem Daumen spüren vermutlich, wie stark die Erde Wärme vom
> "Daumen" ableitet.

und wenn man mal ein paar Tage wegfahren will (auch wenn uns die 
Regierung jetzt komplett einsperren will)?
Auch wenn ich jetzt keine gute Erfahrung mit den Sensoren gemacht habe, 
es ist zumindest ein gutes Einsteigerprojekt zum Lernen.
Gast #6666018
Lesenswert?

Johannes S. schrieb:
> und wenn man mal ein paar Tage wegfahren will (auch wenn uns die
> Regierung jetzt komplett einsperren will)?

Du hast nicht verstanden, worauf ich hinaus wollte.

Mein Vorschlag ist, einen PTC in die Erde zu stecken zu zu erwärmen. 
Dann Strom abschalten und messen wie schnell er sich wieder abkühlt.

Die Profis benutzen Tensiometer. Da wird gemessen, wie stark Boden und 
Pflanze an einem mit Wasser gefüllten Keramik-Zylinder saugen.
Gast #6666035
Lesenswert?

ich kenne die vielen Diskussionen hier, hatte ja selbe eine mit einem 
Selbstbausensor eröffnet.
Die Kalorimetrische Methode ist schwierig zu kalibrieren, vor allem wenn 
Sensoren auch draußen funktionieren sollen. Tensiometer wurden auch 
immer wieder als Referenz genannt, sind nur etwas aufwändiger zu bauen.
Funk ist gut weil besserer WAF, aber dann nicht mit den stromhungrigen 
WLAN Funkern. Die Xiaomi mit BT kommen mit einer Knopfzelle aus, da 
beschränkt sich das selbermachen nur auf kaufen und Auswertung basteln. 
Und evtl. automatische Bewässerung ohne die Bude zu fluten :)
Gast #6666050
Lesenswert?

Schlaumaier schrieb:
> Ich habe mir diese Sensoren aus China bestellt.
>
> Ebay-Artikel Nr. 401794432896
>
> Bin mal gespannt wie lange die überleben. In diversen Blocks steht man
> darf sich nicht hetzen. Habe ich aber eh nicht vor. Alle 4 Std. eine
> Abfrage sollte locker reichen.

Das sind die größten Rotzsensoren!
Die gammeln weg, wie sonst noch was.
Ausserdem geben sie noch Metallionen ab!

Nimm den Giesomat Sensor und gut ists.
Gast #6666059
Lesenswert?

DerdaWieda schrieb:
> Das sind die größten Rotzsensoren!
> Die gammeln weg, wie sonst noch was.

Danke für den Tipp.

Dann weiß ich ja wo ich suchen muss, wenn es Probleme gibt. Verbauen 
werde ich sie trotzdem. Ich schmeiß doch nix weg was neu bei mir herum 
liegt. Die wären längst eingebaut wenn die Wetterfrösche nix von Schnee 
erzählt hätten. Und ich darf keine Temperaturen keiner 5 ° habe, sonst 
ist mein Basilikum TOT.

Kommen eh nur in ein Blumenkasten. Und da tausche ich eh 1 x im Jahr die 
Erde komplett aus. Dann kann ich sie mir ja ansehen, bzw. dann die von 
dir empfohlenen kaufen.
Gast #6666068
Lesenswert?

Dirk M. schrieb:
> Am einfachsten und am besten für den Einstieg ist
> Arduino Mega 2560 + arduino mega 2560 ethernet shield

Das kommt ganz auf deine Ziele und Vorkenntnisse an. Obwohl ich schon 
einiges mit AVR Mikrocontrollern und embedded Web Anwendungen gemacht 
habe, wäre für mich ein Raspberry Pi mit eintsprechendem I/O-Hat bei 
weitem einfacher.

Aus sportlichem Ehrgeiz heraus würde ich aber wahrscheinlich eins meiner 
ESP-8266 Module aus der Bastelkiste holen und einen I/O Expander dazu 
kaufen. Irgendwas serielles mit SPI oder I²C.

Wenn es Ethernet sein muss, würde ich (auch wieder aus sportlichem 
Ehrgeiz heraus) ein CrumbX1-Net Modul verwenden, davon habe ich nämlich 
auch noch 2-3 herum liegen. Für irgendwas müssen die ja gut sein :-)
Gast #6666152
Lesenswert?

Peter D. schrieb:
> Wie kann man nur solchen Mist kaufen. Bei ner Katze im Sack gibt es mehr
> Informationen dazu.

In den man wie bei mir üblich bei den China-Zeug sich VOR den Kauf 
informiert. Besonders wie ich das Anzusteuern habe. Also wo bekomme ich 
Libs (wenn nötig) her. Wie frage ich das ab. Was brauch ich ein 
Hühnerfutter dazu, etc. etc.

Ich habe schon wunderschöne Displays bei Ebay aus China gesehen für ganz 
kleines Geld aber keine Datenblätter, Anschlusspläne etc. Ergo NICHT 
gekauft.

https://funduino.de/nr-16-feuchtigkeitssensor

http://fraunerd.de/feuchtigkeit-messen-mit-arduino/

<- das ist zwei der Seiten die ich VORHER gelesen habe.

Die einzige Info die ich nirgends gelesen habe ist, das die wie genannt 
sehr schnell "verrotten". Und ich so wie die Aussage war realtiv schnell 
neue brauche. Geplant war der Einsatz von 6. 10 habe ich also auch etwas 
Ersatz. ;) Was ich bei China-Sachen grundsätzlich habe.
Gast #6666233
Lesenswert?

Schlaumaier schrieb:
> Die einzige Info die ich nirgends gelesen habe ist, das die wie genannt
> sehr schnell "verrotten".

Braucht man nicht zu erwähnen, weil es das Fachwissen hergibt.
Nennt sich Elektrolyse.

Ansonsten muss man sich einlesen:
https://wwwvs.cs.hs-rm.de/vs-wiki/index.php/Internet_der_Dinge_WS2015/SmartPlant#Messmethode_1:_Resistiv


Der Giesomat Sensor scheint aber gebräuchlich zu sein:
https://sgerber.de/2014/08/kapazitiver-feuchtigkeitssensor-fuer-blumenerde/
https://thomas-geers.de/gewaechshaus.html
http://fam-haugk.de/giessautomat-fuer-pflanzen
Gast #6666253
Lesenswert?

Axel R. schrieb:
> Schlaumaier schrieb:
>> Also wo bekomme ich
>> Libs (wenn nötig) her.
>
> Was bedeutet das?

Das bedeutet das viele Bauteile/Kompnenten meist über Libarys 
angesteuert werden, und man sehr vieles aber nicht alles auf Github 
findet. Vor allen dann wenn man nicht weiß wo man suchen muss.

Also sehe ich mir an wie andere Leute so was ansteuern.
OP #6666354
Lesenswert?

Sabi7 schrieb:
> DAS ist das Forum wie man es kennt.
> Frage: Wie mache ich das mit Produkt X?
> Antwort: Bei Produkt Y, bla bla bla
>
> Das ist schon alles wieder Offtopic, was ihr Quatscht.

Dirk M. schrieb:
> Ich fasse mal zusammen.
> Am einfachsten und am besten für den Einstieg ist
> Arduino Mega 2560 +
> arduino mega 2560 ethernet shield
> Giesomatsensoren von Ramser Vertrieb.
>
> ist das richtig so?
#6666623
Lesenswert?

Schlaumaier schrieb:
> http://fraunerd.de/feuchtigkeit-messen-mit-arduino/

Na klar, sowas kann ja nur eine Frau entwickelt haben. Ich schließe mich 
da den Amazon-Bewertungen an: Geschenkt ist noch zu teuer.

Die kapazitive Methode scheint dagegen ganz brauchbar, allerdings nicht 
mit dem 74HC14.
Ich hab da gute Erfahrungen mit dem ATtiny25 gemacht. Mit dem ADC kann 
der sehr gut kleine Kapazitäten messen. VCC und Temperatur haben kaum 
Einfluß.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren