Your new topic does not fit any of the above??? Check first. Then post here. Thanks.

Moderator: igrr

User avatar
By JerryESPN
#52504 Thank you Orcanbull, I'll try your solution definitely.

But for now, i´ll try to master modem sleep first, light sleep after that.

Just ordered an USB Multimeter ( https://www.amazon.com/PowerJive-Voltag ... B013FANC9W ) to see if it really works/saves power.

I´m using a LD1117V33 voltage regulator.

My "aim" is, to keep the ESP8266 and a DHT11/22 working for at least 3 Month, with my 3000mAh LiPo this means 1.37mA. Maybe impossible ;).

The Code i´m currently testing:

Code: Select all#include <DHT.h>
#include <ESP8266WiFi.h>

// replace with your channel’s thingspeak API key,
String apiKey = "EQWRTWERWRTZWR";
const char* ssid = "WERGWERG";
const char* password = "123452345234534";

const char* server = "api.thingspeak.com";
#define DHTPIN 2 // what pin we’re connected to

DHT dht(DHTPIN, DHT11,15);
WiFiClient client;

// Required for LIGHT_SLEEP_T delay mode
//extern "C" {
//#include "user_interface.h"
//}

void setup() {
Serial.begin(115200);
delay(10);
dht.begin();

WiFi.mode(WIFI_STA); // added 230716
WiFi.begin(ssid, password);

Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");

}

void loop() {

float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}

if (client.connect(server,80)) { // "184.106.153.149" or api.thingspeak.com
String postStr = apiKey;
postStr +="&field1=";
postStr += String(t);
postStr +="&field2=";
postStr += String(h);
postStr += "\r\n\r\n";

client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);

Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" degrees Celcius Humidity: ");
Serial.print(h);
Serial.println("% send to Thingspeak");
}
client.stop();

Serial.println("Waiting…");
// thingspeak needs minimum 15 sec delay between updates

//wifi_set_sleep_type(LIGHT_SLEEP_T);

  WiFi.forceSleepBegin();
    delay(900000);
  WiFi.forceSleepWake();
    delay(5);
   
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);

Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
}


Please forgive "dirty" code, i´ll take care of that later.
User avatar
By Orcanbull
#52530 Dear Jerry,


Sorry to break this too you but with that kind of regulater you wont mannage your 1.37 mA, the regulator itself is very inefficient . you might wanna look into a more efficient voltage regulator like an LM2596S, there are ready made boards for this one, still only has an efficientcy of about 70 % but much better then the LD1117V33.

so far as i can see from your code your Humidity sensor is continiously on, you can also switch this one to save some more power.
User avatar
By lethe
#52532
Orcanbull wrote:Sorry to break this too you but with that kind of regulater you wont mannage your 1.37 mA, the regulator itself is very inefficient . you might wanna look into a more efficient voltage regulator like an LM2596S, there are ready made boards for this one, still only has an efficientcy of about 70 % but much better then the LD1117V33.

The LM2596 is a pretty crappy regulator as well, just a switching one...
A linear regulator powered off one LiPo will have an efficiency of better than 78% and get better as the battery discharges (89% @ nominal voltage of 3.7V), so using a switching regulator wont give you much of an efficiency boost (most of them will actually perform worse).

Since the system has to sleep most of the time anyway to achieve the <1.37mA, the major concern is the regulator's quiescence current. Both the 1117 & LM2596 are terrible at that, drawing up to 10mA doing nothing.

My recommendation would be to use an efficient linear regulator such as the XC6203 (which draw only about 8uA).
User avatar
By JerryESPN
#52586 Concerning the linear regulator: I´ve thought, efficiency with LDs is high if difference between input and output voltages is small. I´m using an 3,7V LiPo on 3,3V output, so i should be fine?

I´ll give the XC6203 a shot. Hard to get, only found 1 chinese Trader offering delivery to Europe on eBay. So i´ll report back at the earliest in October ;).

Current status:

I don´t get it. Battery empty after 48h. That´s less than without forced sleep.

Next time i´ll try ocranbulls code, nothing to loose ;).

Will post sketch later on.