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
Arduino Nano, Sensoren und Nextion
23.08.2018, 12:51 (Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2018 17:36 von MotD.)
Beitrag #9
RE: Arduino Nano, Sensoren und Nextion
das klingt doch super. Da machst du mir ja Hoffnung, das nachher beim Hochladen alles gleich funktioniert und angezeigt wird Wink
aber die erfahrung..... Tongue

Moin

noch bisse angepasst und....

Uhrzeit wird angezeigt auf dem Display. aber leider die Temperaturen nicht.

im Nextion ist Number und objektname temp1 temp2 etc.

wundert mich , weil ja Die Uhrzeit ankommt. Werte werden übrigends im Serial Monitor angezeigt.

hat jemand eine IDee?

Code:
#include <SoftwareSerial.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include "DS3231.h"
#include <SimpleTimer.h>


RTClib RTC;

SoftwareSerial mySerial(10, 11); // RX, TX

#define MESSFUEHLER1 A0  
#define MESSFUEHLER2 A1  
#define ONE_WIRE_BUS 2 //DS18b20
#define EINZELMESSUNGEN1 25  
#define EINZELMESSUNGEN2 25  
#define A_2 1.422473621e-03   // A-Koeffizient des Messfühlers
#define B_2 2.334585171e-04   // B-Koeffizient des Messfühlers
#define C_2 1.215612867e-07   // C-Koeffizient des Messfühlers

#define FESTWIDERSTAND_2 3000.0  


OneWire oneWire(ONE_WIRE_BUS); //DS18b20
DallasTemperature sensors(&oneWire); //DS18b20
SimpleTimer timer;

uint16_t SUM_EM_2[EINZELMESSUNGEN1];
uint16_t SUM_EM_3[EINZELMESSUNGEN2];


uint8_t i = 0;
float DURCHSCHNITT_2 = 0.0;
float DURCHSCHNITT_3 = 0.0;
float TEMP_2 = 0.0;
float TEMP_3 = 0.0;
float R2_2 = 0.0, lnR2_2 = 0.0;
float R2_3 = 0.0, lnR2_3 = 0.0;

void repeatMe()
{
    Serial.print("Uptime (s): ");
    Serial.println(millis() / 1000);
}

void setup(void)
{
  sensors.begin();  //DS18b20
  Wire.begin();
  timer.setInterval(1000, repeatMe);
  mySerial.begin(9600);
  Serial.begin(9600);
}


void loop(void) {

  
DateTime now = RTC.now();



  DURCHSCHNITT_2 = 0.0;
  DURCHSCHNITT_3 = 0.0;

  for (i = 0; i < EINZELMESSUNGEN1; i++) {
    SUM_EM_2[i] = analogRead(MESSFUEHLER1);
    DURCHSCHNITT_2 += SUM_EM_2[i];

    // weiter optimiert
    DURCHSCHNITT_3 += analogRead(MESSFUEHLER2);


  }
  DURCHSCHNITT_2 /= EINZELMESSUNGEN1;
  DURCHSCHNITT_3 /= EINZELMESSUNGEN1;



  R2_2 = FESTWIDERSTAND_2 * (1023.0 / (float)DURCHSCHNITT_2 - 1.0);
  lnR2_2 = log(R2_2);
  TEMP_2 = (1.0 / (A_2 + B_2 * lnR2_2 + C_2 * lnR2_2 * lnR2_2 * lnR2_2));
  TEMP_2 =  TEMP_2 - 273.15;

  R2_3 = FESTWIDERSTAND_2 * (1023.0 / (float)DURCHSCHNITT_3 - 1.0);
  lnR2_3 = log(R2_3);
  TEMP_3 = (1.0 / (A_2 + B_2 * lnR2_3 + C_2 * lnR2_3 * lnR2_3 * lnR2_3));
  TEMP_3 =  TEMP_3 - 273.15;

  
      mySerial.print("temp1.val=");
      mySerial.print(TEMP_2);
      mySerial.write(0xff);
  mySerial.write(0xff);
  mySerial.write(0xff);

  mySerial.print("temp2.val=");
      mySerial.print(TEMP_3);
      mySerial.write(0xff);
  mySerial.write(0xff);
  mySerial.write(0xff);

  mySerial.print("temp3.val=");
      mySerial.print(sensors.getTempCByIndex(0));
      mySerial.write(0xff);
  mySerial.write(0xff);
  mySerial.write(0xff);

  mySerial.print("tag.val=");
      mySerial.print(now.day(), DEC);
      mySerial.write(0xff);
  mySerial.write(0xff);
  mySerial.write(0xff);

  mySerial.print("monat.val=");
      mySerial.print(now.month(), DEC);
      mySerial.write(0xff);
  mySerial.write(0xff);
  mySerial.write(0xff);

  mySerial.print("h.val=");
      mySerial.print(now.hour(), DEC);
      mySerial.write(0xff);
  mySerial.write(0xff);
  mySerial.write(0xff);

  mySerial.print("s.val=");
      mySerial.print(now.minute(), DEC);
      mySerial.write(0xff);
  mySerial.write(0xff);
  mySerial.write(0xff);

    Serial.print("WT:  ");
    Serial.print(TEMP_2);          
    Serial.println(" °C");
    Serial.print("LT1: ");
    Serial.print(TEMP_3);        
    Serial.println(" °C");
    sensors.requestTemperatures();
    Serial.print("LT2: ");
    Serial.print(sensors.getTempCByIndex(0));
    Serial.println(" °C");
    Serial.print(now.day(), DEC);
    Serial.print('.');
    Serial.println(now.month(), DEC);
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.println();
        

timer.run();
  }
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.08.2018, 08:22 (Dieser Beitrag wurde zuletzt bearbeitet: 28.08.2018 08:34 von hotsystems.)
Beitrag #10
RE: Arduino Nano, Sensoren und Nextion
Zitat:hat jemand eine IDee?

Im Nextion kannst du die Zahlenfelder (val) nur für ganze Zahlen verwenden.
Float o.ä. können im Nextion nur auf Textfeldern (txt) dargestellt werden.

Du musst deinen Steuerzeichen allerdings einen weiteres voranstellen:

Code:
mySerial.print("temp1.txt=\"");
  mySerial.print(TEMP_2);
  mySerial.write('"');
  mySerial.write(0xFF);
  mySerial.write(0xFF);
  mySerial.write(0xFF);

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.08.2018, 07:02 (Dieser Beitrag wurde zuletzt bearbeitet: 29.08.2018 07:49 von MotD.)
Beitrag #11
RE: Arduino Nano, Sensoren und Nextion
Das bestimmt auch eine Lösung....
habe aber noch viel gelesen und getestet und mit nem Kumpel dann eine Lösung gefunden.

Code:
#include <SoftwareSerial.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include "DS3231.h"
#include <SimpleTimer.h>


RTClib RTC;

SoftwareSerial mySerial(10, 11); // RX, TX

#define MESSFUEHLER1 A0  
#define MESSFUEHLER2 A1  
#define ONE_WIRE_BUS 2 //DS18b20
#define EINZELMESSUNGEN1 25  
#define EINZELMESSUNGEN2 25  
#define A_2 1.422473621e-03   // A-Koeffizient des Messfühlers
#define B_2 2.334585171e-04   // B-Koeffizient des Messfühlers
#define C_2 1.215612867e-07   // C-Koeffizient des Messfühlers

#define FESTWIDERSTAND_2 3000.0  


OneWire oneWire(ONE_WIRE_BUS); //DS18b20
DallasTemperature sensors(&oneWire); //DS18b20
SimpleTimer timer;

uint16_t SUM_EM_2[EINZELMESSUNGEN1];
uint16_t SUM_EM_3[EINZELMESSUNGEN2];


uint8_t i = 0;
float DURCHSCHNITT_2 = 0.0;
float DURCHSCHNITT_3 = 0.0;
float TEMP_2 = 0.0;
float TEMP_3 = 0.0;
float R2_2 = 0.0, lnR2_2 = 0.0;
float R2_3 = 0.0, lnR2_3 = 0.0;


void repeatMe()
{
    Serial.print("Uptime (s): ");
    Serial.println(millis() / 1000);
}

void setup(void)
{
  sensors.begin();  //DS18b20
  Wire.begin();
  timer.setInterval(1000, repeatMe);
  mySerial.begin(9600);
  Serial.begin(9600);
}


void loop(void) {


DateTime now = RTC.now();



  DURCHSCHNITT_2 = 0.0;
  DURCHSCHNITT_3 = 0.0;

  for (i = 0; i < EINZELMESSUNGEN1; i++) {
    SUM_EM_2[i] = analogRead(MESSFUEHLER1);
    DURCHSCHNITT_2 += SUM_EM_2[i];

    // weiter optimiert
    DURCHSCHNITT_3 += analogRead(MESSFUEHLER2);


  }
  DURCHSCHNITT_2 /= EINZELMESSUNGEN1;
  DURCHSCHNITT_3 /= EINZELMESSUNGEN1;



  R2_2 = FESTWIDERSTAND_2 * (1023.0 / (float)DURCHSCHNITT_2 - 1.0);
  lnR2_2 = log(R2_2);
  TEMP_2 = (1.0 / (A_2 + B_2 * lnR2_2 + C_2 * lnR2_2 * lnR2_2 * lnR2_2));
  TEMP_2 =  TEMP_2 - 273.15;

  R2_3 = FESTWIDERSTAND_2 * (1023.0 / (float)DURCHSCHNITT_3 - 1.0);
  lnR2_3 = log(R2_3);
  TEMP_3 = (1.0 / (A_2 + B_2 * lnR2_3 + C_2 * lnR2_3 * lnR2_3 * lnR2_3));
  TEMP_3 =  TEMP_3 - 273.15;

int temp2v;
    temp2v = (int) TEMP_2;  
              mySerial.print("wt.val=");
        mySerial.print(temp2v, DEC);    
        mySerial.write(0xff);
          mySerial.write(0xff);
          mySerial.write(0xff);
  
int temp3v;
    temp3v = (int) TEMP_3;
          mySerial.print("lt.val=");
           mySerial.print(temp3v, DEC);
          mySerial.write(0xff);
         mySerial.write(0xff);
         mySerial.write(0xff);
  
int temp4v;
    temp4v = (int) sensors.getTempCByIndex(0);
          mySerial.print("lut.val=");
            mySerial.print(temp4v, DEC);
            mySerial.write(0xff);
        mySerial.write(0xff);
          mySerial.write(0xff);

  mySerial.print("tag.val=");
  mySerial.print(now.day(), DEC);
  mySerial.write(0xff);
  mySerial.write(0xff);
  mySerial.write(0xff);

  mySerial.print("monat.val=");
  mySerial.print(now.month(), DEC);
  mySerial.write(0xff);
  mySerial.write(0xff);
  mySerial.write(0xff);

  mySerial.print("h.val=");
  mySerial.print(now.hour(), DEC);
  mySerial.write(0xff);
  mySerial.write(0xff);
  mySerial.write(0xff);

  mySerial.print("s.val=");
  mySerial.print(now.minute(), DEC);
  mySerial.write(0xff);
  mySerial.write(0xff);
  mySerial.write(0xff);

    Serial.print("WT:  ");
    Serial.print(TEMP_2);          
    Serial.println(" °C");
    Serial.print("LT1: ");
    Serial.print(TEMP_3);        
    Serial.println(" °C");
    sensors.requestTemperatures();
    Serial.print("LT2: ");
    Serial.print(sensors.getTempCByIndex(0));
    Serial.println(" °C");
    Serial.print(now.day(), DEC);
    Serial.print('.');
    Serial.println(now.month(), DEC);
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.println();
        

timer.run();
  }

// mySerial.print("temp1.txt=\"");  // für die anzeige in Dezimal
//   mySerial.print(TEMP_2);
//   mySerial.write('"');
//   mySerial.write(0xFF);
//   mySerial.write(0xFF);
//   mySerial.write(0xFF);

funktioniert Wink

Und stolz, das es funktioniert ....

nur die Frage... was kommt als nächstes dazuWink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.08.2018, 07:15
Beitrag #12
RE: Arduino Nano, Sensoren und Nextion
Ja, klar.
Warum einfach, wenn es auch umständlich geht. Wink

Dass du so keine Werte mit Dezimalstellen anzeigen kannst, ist dir hoffentlich aufgefallen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.08.2018, 07:22
Beitrag #13
RE: Arduino Nano, Sensoren und Nextion
jupp, das ist mir aufgefallen, das ist sogar absicht Wink
brauche keine Temperaturanzeige mit Nachkommastellen.

Sonst wäre deins, mit sicherheit, die beste alternative.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.08.2018, 07:27
Beitrag #14
RE: Arduino Nano, Sensoren und Nextion
(29.08.2018 07:22)MotD schrieb:  jupp, das ist mir aufgefallen, das ist sogar absicht Wink
brauche keine Temperaturanzeige mit Nachkommastellen.
.....

Dann verstehe ich deinen umständlichen Weg uber float erst recht nicht.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.08.2018, 07:48
Beitrag #15
RE: Arduino Nano, Sensoren und Nextion
na gut, das natürlich ein Argument.

aber der war am anfang mal mit drin,
dann lass ich ihn vorsichtishalber mal drin für den fall das ich oder andere das umstellen möchten.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.08.2018, 06:16 (Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2018 06:17 von MotD.)
Beitrag #16
RE: Arduino Nano, Sensoren und Nextion
als nächstes möchte ich, das zwischen Stunden und Minuten der "Doppelpunkt" blinkt. quasi die Sekunden darsellt.

Hatte überlegt ob das klappen kann. Werde es heute abend testen.

Code:
int iNum = now.second(), DEC;
if (iNum %2 ==0)
{
    mySerial.print("temp1.txt=\"");
        mySerial.print(":");
}
else
{
        mySerial.print("temp1.txt=\"");
        mySerial.print(" ");
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Neopixel Uhr mit Nextion und MQTT MeisterQ 16 751 05.08.2019 20:56
Letzter Beitrag: MeisterQ
  In-door Sensoren für OpenHab oder ähnliches? ansorgj 16 5.461 22.04.2019 09:17
Letzter Beitrag: Tommy56
  Projekt zur Ermittlung der Dauerbetriebseigenschaften unterschiedlicher Sensoren Hayley_Hay 5 1.816 14.05.2018 17:06
Letzter Beitrag: ardu_arne
  Steuerung Servomotor mit zwei Sensoren und Tabelle Günther S. 0 2.051 14.04.2017 19:18
Letzter Beitrag: Günther S.
  Arduino mit Nextion komunizieren lassen Steve1604 4 6.269 01.08.2016 21:56
Letzter Beitrag: hotsystems
  "SunFounder Smart Car Kit for Arduino"...Roboterauto mit Sensoren arduinofan 2 3.911 15.01.2016 11:14
Letzter Beitrag: arduinofan
  Laser mit arduino nano TTL modulieren Wranox 0 2.942 30.07.2015 15:38
Letzter Beitrag: Wranox
  Linienfolger mit Arduino Nano reenoh 16 10.673 27.05.2015 11:04
Letzter Beitrag: reenoh
  Sensoren Einbau bergfrei 3 3.529 13.05.2015 10:36
Letzter Beitrag: SkobyMobil
Wink DSLR mit Arduino Nano steuern. Eichner 12 11.009 25.03.2015 17:27
Letzter Beitrag: Eichner

Gehe zu:


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