INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
EZO- HUM- Sensor
09.01.2021, 19:34
Beitrag #17
RE: EZO- HUM- Sensor
Die Buchdiskussion hatten wir erst letztens. Dort sind auch ein paar wesentliche Onlinequellen verlinkt.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.01.2021, 19:49
Beitrag #18
RE: EZO- HUM- Sensor
(09.01.2021 19:12)Leonardo schrieb:  @hotsystems: Sry, das habe ich ich jetzt gemacht. Bei Serial.println (sensorstring_array); zeigt der serielle Monitor den Wert der Variablen an und zwar 52.46.

Dann habe ich mich gefragt:
Aber wie heißen die anderen Variablen, die die Werte für Lufttemperatur und Taupunkt annehmen?

Dann hast du ja deinen Sensor zwischenzeitlich richtig konfiguriert.
Sieh dir jetzt nochmal die oben genannte Variable an und du siehst darin alle Werte.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.01.2021, 20:58
Beitrag #19
RE: EZO- HUM- Sensor
@Tommy56: Danke für den Link! Ich habe mir das Buch, das ich eben verlinkt habe gerade bestellt.

@hotsystems: Okay jetzt weiß ich Bescheid und versuche es zu verstehen.

Vielen Dank für Eure Hilfe!

LG Leonardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.01.2021, 21:11
Beitrag #20
RE: EZO- HUM- Sensor
Kann mir jmd. verraten warum auf meinem LCD- Display in der letzten Spalte/ dritte Zeile diese vier horizontalen Striche erscheinen?
Setze ich ein Leerzeichen vor "Dew" in die dritte Zeile erscheinen die Striche plötzlich in der ersten Spalte/ zweite Zeile des LCD- Displays.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.01.2021, 21:21 (Dieser Beitrag wurde zuletzt bearbeitet: 09.01.2021 21:22 von Tommy56.)
Beitrag #21
RE: EZO- HUM- Sensor
Benutzt Du evtl. println anstelle von print?

Wenn nicht, dann gib uns den Code, der diese Ausgabe erzeugt.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.01.2021, 21:40
Beitrag #22
RE: EZO- HUM- Sensor
Hier ist der code, der die Ausgabe erzeugt:

Code:
//Ezo-Hum-Sensor

//This code was written to be easy to understand.
//Modify this code as you see fit.
//This code will output data to the Arduino serial monitor.
//Type commands into the Arduino serial monitor to control the humidity sensor.
//This code was written in the Arduino 1.8.13 IDE
//An Arduino UNO was used to test this code.
//This code was last tested 8/2020


#include <SoftwareSerial.h>                           //we have to include the SoftwareSerial library, or else we can't use it
#define rx 4                                         //define what pin rx is going to be
#define tx 5                                         //define what pin tx is going to be

SoftwareSerial myserial(rx, tx);                      //define how the soft serial port is going to work


String inputstring = "";                              //a string to hold incoming data from the PC
String sensorstring = "";                             //a string to hold the data from the Atlas Scientific product
boolean input_string_complete = false;                //have we recived all the data from the PC
boolean sensor_string_complete = false;               //have we recived all the data from the Atlas Scientific product

// Pumpensteuerung
unsigned long timestore;               // Zeitmerker für Pumpensteuerung
const byte PumpenPin = 2;
enum {an, aus};

unsigned long timestore_LCD;               // Zeitmerker für LCD Display

// Temperatur Nährlösung
#include <DallasTemperature.h>
#include <LiquidCrystal_I2C.h>
#include <OneWire.h>

LiquidCrystal_I2C lcd(0x27,20,4);

#define ONE_WIRE_BUS 3 //Data von Temp.Sensor
OneWire oneWire(ONE_WIRE_BUS );
DallasTemperature sensors(&oneWire);


void setup() {

//Ezo-Hum-Sensor
  Serial.begin(9600);                                 //set baud rate for the hardware serial port_0 to 9600
  myserial.begin(9600);                               //set baud rate for the software serial port to 9600
  inputstring.reserve(10);                            //set aside some bytes for reciving data from the PC
  sensorstring.reserve(30);                           //set aside some bytes for reciving data from Atlas Scientific product
  
lcd.init();
lcd.backlight();
sensors.begin();

pinMode(PumpenPin, OUTPUT);
}

//Ezo-Hum-Sensor
void serialEvent() {                                  //if the hardware serial port_0 recives a char
  inputstring = Serial.readStringUntil(13);           //read the string until we see a <CR>
  input_string_complete = true;                       //set the flag used to tell if we have recived a completed string from the PC
}

void loop() {

//Ezo-Hum-Sensor
if (input_string_complete == true) {                //if a string from the PC has been recived in its entirety
    myserial.print(inputstring);                      //send that string to the Atlas Scientific product
    myserial.print('\r');                             //add a <CR> to the end of the string
    inputstring = "";                                 //clear the string
    input_string_complete = false;                    //reset the flag used to tell if we have recived a completed string from the PC
  }

  if (myserial.available() > 0) {                     //if we see that the Atlas Scientific product has sent a character
    char inchar = (char)myserial.read();              //get the char we just recived
    sensorstring += inchar;                           //add the char to the var called sensorstring
    if (inchar == '\r') {                             //if the incoming character is a <CR>
      sensor_string_complete = true;                  //set the flag
    }
  }


  if (sensor_string_complete == true) {               //if a string from the Atlas Scientific product has been recived in its entirety
    if (isdigit(sensorstring[0]) == false) {          //if the first character in the string is a digit
      Serial.println(sensorstring);                   //send that string to the PC's serial monitor
    }
    else                                              //if the first character in the string is NOT a digit
    {
      print_Humidity_data();                          //then call this function
    }
    sensorstring = "";                                //clear the string
    sensor_string_complete = false;                   //reset the flag used to tell if we have recived a completed string from the Atlas Scientific product
  }
}



void print_Humidity_data(void) {                      //this function will pars the string  

  char sensorstring_array[30];                        //we make a char array
  char *HUM;                                          //char pointer used in string parsing.
  char *TMP;                                          //char pointer used in string parsing.
  char *NUL;                                          //char pointer used in string parsing (the sensor outputs some text that we don't need).
  char *DEW;                                          //char pointer used in string parsing.

float HUM_float;                                      //float var used to hold the float value of the humidity.
float TMP_float;                                      //float var used to hold the float value of the temperatur.
float DEW_float;                                      //float var used to hold the float value of the dew point.
  
  sensorstring.toCharArray(sensorstring_array, 30);   //convert the string to a char array
  HUM = strtok(sensorstring_array, ",");              //let's pars the array at each comma
  TMP = strtok(NULL, ",");                            //let's pars the array at each comma
  NUL = strtok(NULL, ",");                            //let's pars the array at each comma (the sensor outputs the word "DEW" in the string, we dont need it)
  DEW = strtok(NULL, ",");                            //let's pars the array at each comma

  Serial.println();                                   //this just makes the output easier to read by adding an extra blank line.

  Serial.print("HUM:");                               //we now print each value we parsed separately.
  Serial.println(HUM);                                //this is the humidity value.

  Serial.print("Air TMP:");                           //we now print each value we parsed separately.
  Serial.println(TMP);                                //this is the air temperatur value.

  Serial.print("DEW:");                               //we now print each value we parsed separately.
  Serial.println(DEW);                                //this is the dew point.
  Serial.println();                                   //this just makes the output easier to read by adding an extra blank line.
    
  //uncomment this section if you want to take the values and convert them into floating point number.
  /*
    HUM_float=atof(HUM);
    TMP_float=atof(TMP);
    DEW_float=atof(DEW);
  */
  
// Temperatur Nährlösung LCD
   if (millis() - timestore_LCD> 10000 ) // wenn Pausenzeit um
    {
      lcd.setCursor(0,0);               // Werte auf LCD anzeigen
lcd.print("Wurzelzone:");
lcd.setCursor(0,1);
lcd. print ("T:");
lcd.print(TMP);
lcd.print("\337C");
lcd. print (" Hum:");
lcd.print(HUM);
lcd.print("%");
lcd.setCursor(0,2);
lcd.print("NL:");
lcd.print(sensors.getTempCByIndex(0));
lcd.print("\337C");
lcd.print(" Dew:");
lcd.print(DEW);

sensors.requestTemperatures();

lcd.setCursor(0,3);
lcd.print("Rasen:     ");
lcd.print("T:");
lcd.print(sensors.getTempCByIndex(1));
lcd.print("\337C");



      timestore = millis();            // Einschaltzeit merken
    }


// Pumpensteuerung
if (digitalRead(PumpenPin == aus))
  {
    if (millis() - timestore > 900000) // wenn Pausenzeit um
    {
      digitalWrite(PumpenPin, an);     // einschalten
      timestore = millis();            // Einschaltzeit merken
    }
  }
  else
  {
    if (millis() - timestore > 15000)  // wenn Einschaltzeit um
    {                                          
      digitalWrite (PumpenPin, aus);   // ausschalten
      timestore = millis();            // Ausschaltzeit merken
    }
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.01.2021, 22:04
Beitrag #23
RE: EZO- HUM- Sensor
Lass Dir mal den Inhalt von DEW als Zeichen und hexadezimal ausgeben.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2021, 16:50
Beitrag #24
RE: EZO- HUM- Sensor
(08.01.2021 19:59)Tommy56 schrieb:  ...dann hatte ich bisher eine zu gute Meinung über Dein Verständnis sinnvoller Programmierung.

Es steht dir natürlich frei, deine Meinung fortlaufend den Gegebenheiten anzupassen!

Da habe ich keine Einwände, auch wenn's mal schmerzt!

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  LED als lichtempfindlicher Sensor daja64 7 482 23.12.2020 01:18
Letzter Beitrag: daja64
  Arduino als Enocean Aktor/Sensor hr3 2 854 08.02.2020 20:53
Letzter Beitrag: Bitklopfer
  Fehlermeldung (wegen BME 280 Sensor?) Schneggl 3 922 26.10.2019 09:28
Letzter Beitrag: Tommy56
  Grove-GSR Sensor frala 22 4.416 09.10.2018 22:11
Letzter Beitrag: Bitklopfer
  Sensor mit 10 Hz auslesen Olafson Larson 7 2.644 05.07.2018 15:59
Letzter Beitrag: Tommy56
Exclamation Sound Sensor KY-038 Jack 6 3.155 16.05.2018 23:46
Letzter Beitrag: georg01
Question IR Sensor - Tastendruck oneill86 2 1.799 21.03.2018 18:22
Letzter Beitrag: oneill86
  DS18s20 Temperatur Sensor georg01 9 4.314 25.02.2018 16:03
Letzter Beitrag: georg01
  Lichtschrankensensor / Line Tracker Sensor Hitikatus 5 3.114 13.07.2017 15:21
Letzter Beitrag: RCudino
  Dosieren mit Durchfluss Sensor Dualpower 7 5.569 10.06.2017 15:32
Letzter Beitrag: Binatone

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste