Wsparcie dla śpiących czujników

QLQ
Posty: 1583
Rejestracja: ndz wrz 03, 2017 9:13 am
Lokalizacja: Koszalin

sob kwie 03, 2021 3:47 pm

wydaje mi się że ten delay wszystko rozwala

masz cały kod:

Kod: Zaznacz cały

 
#include <SPI.h>
#include <SuplaDevice.h>

#include <supla/sensor/BME280.h>

#define sensor_address 0x76 // Adafruit devices use 0x77 all others use 0x76
Adafruit_BME280 bme;

#include <supla/network/esp_wifi.h>
Supla::ESPWifi wifi("XXF", "XX");



void setup() {

  Serial.begin(115200);
  
  if (!bme.begin(sensor_address)) Serial.println("Could not find a valid BME280 sensor, check wiring, address, sensor ID!");
  Serial.println("-- Default Test --");
  Serial.println("Temperature = " + String(bme.readTemperature()) + "'C");
  Serial.println("   Pressure = " + String((bme.readPressure() / 100.0F) + 3.8) + " hPa"); // +4.3 Adjustment for current altitude, each device is different
  Serial.println("   Humidity = " + String(bme.readHumidity()) + " %");
  

  // Replace the falowing GUID with value that you can retrieve from https://www.supla.org/arduino/get-guid
  char GUID[SUPLA_GUID_SIZE] = {0x90, 0x7B, 0xD8, 0x9B, 0x7F, 0x9A, 0x71, 0x2E, 0xF5, 0x95, 0x36, 0xC6, 0xAE, 0x4D, 0x1A, 0x8D};

  // Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {0xF0, 0xB5, 0xBC, 0xC7, 0x96, 0xA4, 0x00, 0x14, 0x93, 0x5E, 0xDD, 0x53, 0x08, 0x4A, 0xF6, 0x03};


 // new Supla::Sensor::BME280(0x76, 100);
  auto bt = new Supla::Sensor::BME280(0x76, 100);
  bt->getChannel()->setValidityTimeSec(5*60);
  bt->getSecondaryChannel()->setValidityTimeSec(5*60);
  
 
  /*
     SuplaDevice Initialization.
  */
  SuplaDevice.setName("Test R@F");
  SuplaDevice.begin(GUID,              // Global Unique Identifier
                    "svrX.supla.org",  // SUPLA server address
                    "XX@gmail.com",   // Email address used to login to Supla Cloud
                    AUTHKEY);          // Authorization key

delay(30000);
}

void loop() {

  SuplaDevice.iterate();
  
  BME280_Sleep(sensor_address);                // Now place BME280 into sleep mode
  Serial.println(" ESP8266 to Sleep mode...");   // Say going to sleep
  ESP.deepSleep(300e6); // 20e6 is 20 microseconds
	
 
}

void BME280_Sleep(int device_address) {
  // BME280 Register 0xF4 (control measurement register) sets the device mode, specifically bits 1,0
  // The bit positions are called 'mode[1:0]'. See datasheet Table 25 and Paragraph 3.3 for more detail.
  // Mode[1:0]  Mode
  //    00      'Sleep'  mode
  //  01 / 10   'Forced' mode, use either '01' or '10'
  //    11      'Normal' mode
  Serial.println("BME280 to Sleep mode...");
  Wire.beginTransmission(device_address);
  Wire.write((uint8_t)0xF4);       // Select Control Measurement Register
  Wire.write((uint8_t)0b00000000); // Send '00' for Sleep mode
  Wire.endTransmission();
}
log tego niedziałającego/ znikającego w Cloud i App zaraz wrzucę bo zaraz mnie coś trafi !!!:
Im urządzenie jest prostsze tym dłużej i lepiej działa.
krycha88
Posty: 1906
Rejestracja: pt lis 16, 2018 7:25 am

sob kwie 03, 2021 3:51 pm

nie używaj delay o ile nie jest to delay(0) ;)
Wsparcie projektu GUI-Generic ;)
viewtopic.php?f=88&t=8435
QLQ
Posty: 1583
Rejestracja: ndz wrz 03, 2017 9:13 am
Lokalizacja: Koszalin

sob kwie 03, 2021 4:01 pm

log z tego co rozłącza w Cloud i APP:

Kod: Zaznacz cały

{l l⸮⸮| ⸮$⸮|⸮$⸮c|⸮⸮⸮⸮;⸮c⸮c⸮⸮'o⸮dg'⸮⸮⸮cp⸮⸮ds$sdp⸮g⸮⸮l⸮⸮co⸮<l⸮l⸮c⸮⸮go⸮ d⸮⸮$`⸮ogl n;⸮⸮⸮'⸮d`{⸮⸮o⸮l`⸮r⸮p⸮l⸮;⸮`⸮⸮o⸮-- Default Test --
Temperature = 24.71'C
   Pressure = 1020.15 hPa
   Humidity = 42.39 %
Supla - starting initialization
Storage not found. Running without state memory
Channel(1) value changed to 1028.50
Channel(0) value changed to temp(24.770000), humi(42.391602)
Initializing network layer
WiFi: establishing connection with SSID: "R@F"
Using Supla protocol version 12
Current status: [5] SuplaDevice initialized
local IP: 192.168.1.33
subnetMask: 255.255.255.0
gatewayIP: 192.168.1.1
Signal strength (RSSI): -56 dBm
Channel(1) value changed to 1028.41
Channel(0) value changed to temp(25.080000), humi(41.936523)
Establishing Secured connection without certificate matching with: svr5.supla.org (port: 2016)
Connected to Supla Server
Current status: [10] Register in progress
Sending: [53 55 50 4C 41 C 1 0 0 0 45 0 0 0 7A 2 0 0 64 6F 6D 6A 70 31 36 31 39 40 67 6D 61 69 6C 2E 63 6F 6D 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 F0 B5 BC C7 96 A4 0 14 93 5E DD 53 8 4A F6 3 90 7B D8 9B 7F 9A 71 2E F5 95 36 C6 AE 4D 1A 8D 54 65 73 74 20 52 40 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 55 73 65 72 20 53 57 2C 20 6C 69 62 20 32 2E 33 2E 34 0 0 0 73 76 72 35 2E 73 75 70 6C 61 2E 6F 72 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 DE B 0 0 0 0 0 0 2D 0 0 0 0 0 0 0 F7 61 0 0 D0 A3 0 0 1 E4 B 0 0 0 0 0 0 4 1 0 0 0 0 0 0 0 0 0 0 AE 11 90 40 ]
Sending: [53 55 50 4C 41 ]
BME280 to Sleep mode...
 ESP8266 to Sleep mode...
WiFi station disconnected
Current status: [8] No connection to network
BME280 to Sleep mode...
 ESP8266 to Sleep mode...
sd $⸮⸮| ⸮l⸮|⸮$⸮c|⸮⸮⸮⸮{⸮c⸮b⸮⸮og⸮l'o⸮⸮⸮#x⸮⸮${ls$p⸮g⸮⸮lĜb'⸮|d⸮d⸮b⸮⸮og⸮ l⸮⸮l ⸮'o$`gs⸮ۓn⸮d`{⸮⸮o⸮$`⸮{⸮8⸮d⸮s⸮`⸮⸮n⸮-- Default Test --
Temperature = 24.45'C
   Pressure = 1020.18 hPa
   Humidity = 43.24 %
Supla - starting initialization
Storage not found. Running without state memory
Channel(1) value changed to 1028.49
Channel(0) value changed to temp(24.490000), humi(43.237305)
Initializing network layer
WiFi: establishing connection with SSID: "R@F"
Using Supla protocol version 12
Current status: [5] SuplaDevice initialized
local IP: 192.168.1.33
subnetMask: 255.255.255.0
gatewayIP: 192.168.1.1
Signal strength (RSSI): -56 dBm
Channel(1) value changed to 1028.43
Channel(0) value changed to temp(24.840000), humi(43.155273)
Establishing Secured connection without certificate matching with: svr5.supla.org (port: 2016)
Connected to Supla Server
Current status: [10] Register in progress
Sending: [53 55 50 4C 41 C 1 0 0 0 45 0 0 0 7A 2 0 0 64 6F 6D 6A 70 31 36 31 39 40 67 6D 61 69 6C 2E 63 6F 6D 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 F0 B5 BC C7 96 A4 0 14 93 5E DD 53 8 4A F6 3 90 7B D8 9B 7F 9A 71 2E F5 95 36 C6 AE 4D 1A 8D 54 65 73 74 20 52 40 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 55 73 65 72 20 53 57 2C 20 6C 69 62 20 32 2E 33 2E 34 0 0 0 73 76 72 35 2E 73 75 70 6C 61 2E 6F 72 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 DE B 0 0 0 0 0 0 2D 0 0 0 0 0 0 0 8 61 0 0 93 A8 0 0 1 E4 B 0 0 0 0 0 0 4 1 0 0 0 0 0 0 0 0 0 80 BD 11 90 40 ]
Sending: [53 55 50 4C 41 ]
BME280 to Sleep mode...
 ESP8266 to Sleep mode...
WiFi station disconnected
Current status: [8] No connection to network
BME280 to Sleep mode...
 ESP8266 to Sleep mode...

 
on nie nadąża wysłać do cloud bo za szybko zamyka połączenie
Im urządzenie jest prostsze tym dłużej i lepiej działa.
QLQ
Posty: 1583
Rejestracja: ndz wrz 03, 2017 9:13 am
Lokalizacja: Koszalin

sob kwie 03, 2021 5:10 pm

no to zajmie mi z miesiąc ogarnięcie tego na czymś innym niż delay ..a miało być tak pięknie
Im urządzenie jest prostsze tym dłużej i lepiej działa.
krycha88
Posty: 1906
Rejestracja: pt lis 16, 2018 7:25 am

sob kwie 03, 2021 5:20 pm

QLQ pisze:
sob kwie 03, 2021 5:10 pm
no to zajmie mi z miesiąc ogarnięcie tego na czymś innym niż delay ..a miało być tak pięknie
a w jakim celu to delay?
Wsparcie projektu GUI-Generic ;)
viewtopic.php?f=88&t=8435
QLQ
Posty: 1583
Rejestracja: ndz wrz 03, 2017 9:13 am
Lokalizacja: Koszalin

sob kwie 03, 2021 5:40 pm

krycha88 pisze:
sob kwie 03, 2021 5:20 pm
QLQ pisze:
sob kwie 03, 2021 5:10 pm
no to zajmie mi z miesiąc ogarnięcie tego na czymś innym niż delay ..a miało być tak pięknie
a w jakim celu to delay?
ma działać tak że esp zanim zrobi deepSleep na np 5 min(ver z RST I GPIO16) ma odczytać dane z bme280 , połaczyć się z Cloud przesłać dane , oznajmć CLOUD że idzie np na 5min spać ( w ESP.deepSleep(300e6) też ma 5 min aby znów się wybudzić.

ale chyba mi się udało bez Waszej pomocy Jeeeee

zrobiłem na millis - nie wiem czy dobrze ale jak wiecie uczę się na błędach. Idzie to opornie ale do przodu. :)

mam zamiast np delay(10000):

Kod: Zaznacz cały

const unsigned long eventInterval = 10000;
unsigned long previousTime = 0;

[code]void loop() {
 
  unsigned long currentTime = millis();

  SuplaDevice.iterate();
  
   if (currentTime - previousTime >= eventInterval) { 
     previousTime = currentTime;
  
  BME280_Sleep(sensor_address);                // Now place BME280 into sleep mode
  Serial.println(" ESP8266 to Sleep mode...");   // Say going to sleep
  ESP.deepSleep(300e6); // 20e6 is 20 microseconds
}	
 
}
Im urządzenie jest prostsze tym dłużej i lepiej działa.
krycha88
Posty: 1906
Rejestracja: pt lis 16, 2018 7:25 am

sob kwie 03, 2021 5:45 pm

brawo i od tego momentu już nie będziesz używać delay ;)
Wsparcie projektu GUI-Generic ;)
viewtopic.php?f=88&t=8435
QLQ
Posty: 1583
Rejestracja: ndz wrz 03, 2017 9:13 am
Lokalizacja: Koszalin

sob kwie 03, 2021 5:52 pm

nie wiem czemu jeszcze mi melduje na serialu po sleep:

Kod: Zaznacz cały

BME280 to Sleep mode...
 ESP8266 to Sleep mode...
WiFi station disconnected
Channel(1) value changed to 1028.74
Channel(0) value changed to temp(27.730000), humi(42.363281)
Current status: [8] No connection to network
ale teraz po 4 minutach - czyli czasie serwera gdzie już normalnie po rozłączeniu esp kanału nie byłoby widocznego w apce mam tak :) :) :

Cloud esp rozłączony ale W APCE JEST !! :) :)
Clip.jpg
Clip.jpg (3.67 KiB) Przejrzano 750 razy
IMG_20210403_195308.gif
IMG_20210403_195308.gif (6.72 KiB) Przejrzano 750 razy
..
.
W końcu mogę się zabrać za pomiary prądu
Im urządzenie jest prostsze tym dłużej i lepiej działa.
QLQ
Posty: 1583
Rejestracja: ndz wrz 03, 2017 9:13 am
Lokalizacja: Koszalin

sob kwie 03, 2021 8:30 pm

Ok. Czujnik działa. Esp na 20 min idzie spać ...w Cloud jest offline ale w App jest cały czas online.
No to teraz trzeba przerobić na zasilanie bateryjne czujnik wilgotności gleby made in @elmaya tak aby esp szło na... niewiem , strzelam ~4 czy 6h spać ... I będziemy w domu :D :!: :P :mrgreen:
Im urządzenie jest prostsze tym dłużej i lepiej działa.
ODPOWIEDZ

Wróć do „supla-server”