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
Variablen NodeMCU ESP8266-E Speicher Sparen
14.12.2020, 07:50
Beitrag #33
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
(13.12.2020 17:23)rev.antun schrieb:  Bei dem Vorschlag von Fips wg Unixzeit und time(&now) passiert folgendes

Zitat:cannot convert 'time_t (*)() {aka long int (*)()}' to 'time_t* {aka long int*}' for argument '1' to 'time_t time(time_t*)'

Da du dich an Blynk gebunden hast kann es natürlich sein das die in die Jahre gekommene "WidgetRTC.h" sich mit dem aktuellen EspCore nicht immer versteht.

Helfen kann ich nur bedingt, da ich weder Blynk noch RTC verwende.

Der EspCore braucht eigentlich keine Fremden Libs, sntp und Posix Zeitfunktionalitäten sind integriert.
Ausnahme ist natürlich die fehlende Verbindung zu einem NTP-Server.

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.12.2020, 10:07
Beitrag #34
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
@Toni: Wenn Du uns irgendwann mal noch den Code zur Fehlermeldung aus #26 zukommen lässt, könnte man da ja mal schauen.

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
14.12.2020, 20:15 (Dieser Beitrag wurde zuletzt bearbeitet: 14.12.2020 20:47 von Vapalus.)
Beitrag #35
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
(13.12.2020 18:16)rev.antun schrieb:  Servus!

Das Problem bei der Sache ist das leider die Grafik die für die Gauge bzw. Fortschrittbalken, leider nicht ganz Linear ist. Sonst wär das ganze ja noch viel einfacher. Und mir gefällt es nicht wenn der Zeiger dann nicht genau dort ist wo er hingehört . Aber ja ich werde mir deinen Vorschlag nach den restlichen Baustellen mal im Sketch Ansehen - Danke!

Letzt muss ich weitermachen ...

Bei der Gauge ist es sowieso eine logarithmische skala, ich würde die Inverse Funktion von
expWert = 1.5
result = wert^expWert /100^(expWert -1) als probieren.
Die Anderen kann ich nicht richtig erkennen.

In der heutigen Zeit ist gesunder Menschenverstand so etwas Ähnliches wie eine Superkraft - aber keine nützliche.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.12.2020, 22:33
Beitrag #36
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
(14.12.2020 10:07)Tommy56 schrieb:  @Toni: Wenn Du uns irgendwann mal noch den Code zur Fehlermeldung aus #26 zukommen lässt, könnte man da ja mal schauen.

Gruß Tommy

Servu Tommy!

ad #26, hat sich ja erledigt - neu aufgebaut und in #32 den aktuellen TestSketch gepostet. Da fehlt mir jetzt eben der Durchblick, wie ich das auf einen Nenner bring Sad

(14.12.2020 07:50)Fips schrieb:  Da du dich an Blynk gebunden hast kann es natürlich sein das die in die Jahre gekommene "WidgetRTC.h" sich mit dem aktuellen EspCore nicht immer versteht.

Helfen kann ich nur bedingt, da ich weder Blynk noch RTC verwende.

Der EspCore braucht eigentlich keine Fremden Libs, sntp und Posix Zeitfunktionalitäten sind integriert.
Ausnahme ist natürlich die fehlende Verbindung zu einem NTP-Server.

Hallo Fips!

Bin nicht nur an Blynk gebunden, die LIB ist aktuell, wie oben schon geantwortet (posting #32) läuft ja alles soweit. Wo ich noch nicht durchblick ist wie ich mit einfachen mitteln zwischen RTC und NTP umschalte -> also auf eine einheitliche Zeit zugreifen kann.

Und ja ich kann aufgrund der Verfügbarkeit, die jeweiligen Variablen auslesen, aber keine Ahnung wie ich das hinbekomme das es eben nur "eine" ist und die entweder von dem NTP bzw RTC gefüttert wird Sad

In #32 ist der Testsketch schon Sad Sad Sad

Sollte ich mich mehr als unverständlich ausgedrückt haben, bitte fragen - Danke!

Gruß aus Wiener Neustadt
Toni

=================================================================
Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr.

Wer Rechtschreibfehler findet darf sie behalten Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.12.2020, 22:40
Beitrag #37
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
NTP füttert die Systemzeit selbst. RTC sollte das über den Wert unixtime im tm-Struct tun.
So ungefähr (ungetestet):
Code:
sysTime = tm.unixtime;

Ausprobieren.

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
16.12.2020, 15:54
Beitrag #38
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
Grüß Euch!

So, ich hoffe jetzt alles berücksichtigt zu haben. Sofern WiFi nicht vorhanden füttert RTC die Systemzeit, ansonst NTP & entsprechender Zeitsync - findet wer noch Fehler, die ich mir noch ansehen sollte?

Danke schon mal!

Code:
#include "R:\ArduinoSketches\Prototyping\wwcfg.h"
#define BLYNK_PRINT Serial
#include <Wire.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <TimeLib.h>
#include <WidgetRTC.h>

const int RTC_I2C_ADDRESS = 0x68;
BlynkTimer timer;
WidgetRTC rtc;
int RTCsekunde, RTCminute, RTCstunde, RTCtag, RTCmonat, RTCjahr;
long RTCunix;
bool RTCNTP = false;

unsigned long localtimeMillis = 0;
const uint16_t localtimeinterval = 1000;

BLYNK_CONNECTED() {
  rtc.begin();
}

void setup()
{
  Wire.begin();
  Serial.begin(115200);
  while (!Serial);
  
  wifion();
  Blynk.begin(AUTH, STASSID, STAPSK);
  syncTIME();
}

void loop()
{
  Blynk.run();

  unsigned long currentMillis = millis();
  if (currentMillis - localtimeMillis >= localtimeinterval) {
    localtimeMillis = currentMillis;
    varioout();
  }
}

void syncTIME() {

  if (timeStatus() == 0) {      //timeNotSet
    rtcReadTime();
    setTime(unixzeit());
  }
  else if (timeStatus() == 1) { //timeNeedsSync
    // Funktion folgt später
  }
  else if (RTCNTP == true) { //timeSet

      rtcWriteTime();
  }
}

long unixzeit() {

  const short tage_seit_jahresanfang[12] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
  int schaltjahre = ((RTCjahr - 1) - 1968) / 4 - ((RTCjahr - 1) - 1900) / 100 + ((RTCjahr - 1) - 1600) / 400;
  long tage_seit_1970 = (RTCjahr - 1970) * 365 + schaltjahre + tage_seit_jahresanfang[RTCmonat - 1] + RTCtag - 1;

  if ( (RTCmonat > 2) && (RTCjahr % 4 == 0 && (RTCjahr % 100 != 0 || RTCjahr % 400 == 0)) )tage_seit_1970 += 1;

  return RTCsekunde + 60 * (RTCminute + 60 * (RTCstunde + 24 * tage_seit_1970) );
}

void rtcReadTime() {
  Wire.beginTransmission(RTC_I2C_ADDRESS);
  Wire.write(0);
  Wire.endTransmission();
  Wire.requestFrom(RTC_I2C_ADDRESS, 7);

  RTCsekunde   = bcdToDec(Wire.read() & 0x7f);
  RTCminute    = bcdToDec(Wire.read());
  RTCstunde    = bcdToDec(Wire.read() & 0x3f);
  bcdToDec(Wire.read());
  RTCtag       = bcdToDec(Wire.read());
  RTCmonat     = bcdToDec(Wire.read());
  RTCjahr      = bcdToDec(Wire.read()) + 2000;
  RTCunix      = unixzeit();
}

void rtcWriteTime() {
  Wire.beginTransmission(RTC_I2C_ADDRESS);
  Wire.write(0);
  Wire.write(decToBcd((int)second()));
  Wire.write(decToBcd((int)minute()));
  Wire.write(decToBcd((int)hour()));
  Wire.write(decToBcd(0));
  Wire.write(decToBcd((int)day()));
  Wire.write(decToBcd((int)month()));
  Wire.write(decToBcd((int)year() - 2000));
  Wire.endTransmission();
}

//Convertiert Dezimalzeichen in binäre Zeichen.
byte decToBcd(byte val) {
  return ( (val / 10 * 16) + (val % 10) );
}

//Convertiert binäre Zeichen in Dezimal Zeichen.
byte bcdToDec(byte val) {
  return ( (val / 16 * 10) + (val % 16) );
}

void wifion() {

  uint8_t versuche;
  
  WiFi.persistent(false);
  WiFi.mode(WIFI_STA);
  WiFi.begin(STASSID, STAPSK);
  while (WiFi.status() != WL_CONNECTED) {
    delay(200);
    
    if(versuche++ == 20){
      RTCNTP = false;
      break;
    }
  }
  
  if (WiFi.status() == WL_CONNECTED){
    RTCNTP = true;
    setSyncInterval(180 * 60);
  }
}

void wifioff() {

  WiFi.disconnect();

}

void varioout() {

  Serial.print(F("START==============================\n"));
  Serial.print("TimeStatus  "); Serial.println(timeStatus());
  Serial.print("RTCNTStatus "); Serial.println(RTCNTP);
  Serial.print("Unix epoch  "); Serial.println(now());
  Serial.print("Tag         "); Serial.println(day());
  Serial.print("Monat       "); Serial.println(month());
  Serial.print("Jahr        "); Serial.println(year());
  Serial.print("Stunde      "); Serial.println(hour());
  Serial.print("Minute      "); Serial.println(minute());
  Serial.print("Sekunde     "); Serial.println(second());
  Serial.print("Wochentag   "); Serial.println(timeDayOfWeek_t());
  Serial.print("Monat short "); Serial.println(monthShortStr(month()));
  Serial.print("Monat       "); Serial.println(monthStr(month()));  
  Serial.println("END===============================");  
}

Zitat:15:48:20.510 -> [7380] Time sync: OK
15:48:21.489 -> START==============================
15:48:21.489 -> TimeStatus 2
15:48:21.489 -> RTCNTStatus 1
15:48:21.489 -> Unix epoch 1608133700
15:48:21.489 -> Tag 16
15:48:21.489 -> Monat 12
15:48:21.489 -> Jahr 2020
15:48:21.489 -> Stunde 15
15:48:21.489 -> Minute 48
15:48:21.489 -> Sekunde 20
15:48:21.489 -> Wochentag 0
15:48:21.489 -> Monat short Dec
15:48:21.489 -> Monat December
15:48:21.489 -> END===============================

Gruß aus Wiener Neustadt
Toni

=================================================================
Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr.

Wer Rechtschreibfehler findet darf sie behalten Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.12.2020, 16:04
Beitrag #39
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
So beim Drüberschauen fällt mir nichts auf, zu den ganzen Blynk-Sachn kann ich aber nichts sagen.

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
16.12.2020, 16:11
Beitrag #40
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
(16.12.2020 16:04)Tommy56 schrieb:  So beim Drüberschauen fällt mir nichts auf, zu den ganzen Blynk-Sachn kann ich aber nichts sagen.

Gruß Tommy

Servus Tommy, schön dich wieder zu Lesen Big Grin

Na das Blynk Zeugs läuft schon wie es soll. Ist es Korrekt, dass ich das setSyncInterval(180 * 60) erst Starte wenn Wifi vorhanden ist?

Gruß aus Wiener Neustadt
Toni

=================================================================
Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr.

Wer Rechtschreibfehler findet darf sie behalten Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Wasserpumpe mit ESP8266 NodeMcu schalten Faultier_1982 113 9.101 24.07.2021 08:54
Letzter Beitrag: hotsystems
  ESP8266 12-F Email senden Dono14 1 167 20.07.2021 07:33
Letzter Beitrag: hotsystems
  Wemo D1 mit ESP8266 wifimanager error Osotastic 11 442 18.07.2021 06:37
Letzter Beitrag: Fips
  Magnet --> Gefahr für ESP8266 basementmedia 3 520 28.06.2021 19:20
Letzter Beitrag: hotsystems
  Nema 17 am Nodemcu funktioniert nicht NEWESP 2 549 07.06.2021 15:47
Letzter Beitrag: NEWESP
  Prüfen, ob ein Sensor am A0 des ESP8266 angeschlossen ist basementmedia 3 617 05.06.2021 20:57
Letzter Beitrag: basementmedia
  ESP32 und ESP8266 - Stromverbrauch im Deep Sleep Modus jahnbes 12 2.372 02.06.2021 07:43
Letzter Beitrag: jahnbes
  ESP8266 und Telegram Übermittlung Tiger 7 1.168 13.05.2021 10:15
Letzter Beitrag: rev.antun
  ESP8266 NodeMCU aus verbundenem WLan löschen Faultier_1982 21 2.578 13.05.2021 08:03
Letzter Beitrag: Faultier_1982
  Kommunikationsprobleme zwischen Pi4 und ESP8266 gideon111 0 445 08.05.2021 14:18
Letzter Beitrag: gideon111

Gehe zu:


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