Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

ESP32-C3 Modem sleep for always connected application.

papaisou11

Member level 2
Joined
Aug 2, 2016
Messages
47
Helped
0
Reputation
0
Reaction score
1
Trophy points
8
Activity points
483
Hello...
I have developed a custom ESP32-C3 board for my home lock. I am using a lithium battery 18650 with 2200mAH. I am poor in coding and started to code from past 2 months.

Well, I need to connected with the WiFi always, as if I press unlock on the blynk app, the motor should rotate to anticlockwise and unlock the door.

My problem is the battery consumption. I am using ESP32-C3-MINI-N4 and for the coding Arduino IDE framework on the VS code studio.

How can I achieve lowest Power consumption on the ESP32 to achieve the low current consumption on the ESP32-C3?

I have already having options to turn off the 5V regulator for motor, having proper hardware structure to lower the consumption.

I am using the WiFimanager and achieved 17-20mA continuous while connected with WiFi.

Here is my code -
Code:
#include <Arduino.h>
#include <WiFiManager.h> //https://github.com/tzapu/WiFiManager
#include <WiFiClientSecure.h>
#include <DNSServer.h>
#include <BlynkSimpleEsp32.h>
#include <Wire.h>
#define debug_en 1
//#define threshold 1000
#define PRINTF_BUF 50
#define StartWordCount 32
#define reconnect_try 1 // How many times the wifi will try to reconenct
#define dooropen_thresshold 3 // not required as of now.
#define batt_sw 22
#define batt_sense_pin 32
#define BATT_VOLT_DIV_R1  10  //kohm
#define BATT_VOLT_DIV_R2  10  //kohm
#define BATT_VOLT_OFFSET  2.25906
#define BATT_AVG_COUNT  60
char auth[] = "##############"; //Sourav Token
//char auth[] = "##########"; //
int reconnect_count = 0;
boolean doorOPEN = false;   // to figure out who woke up the board
boolean firealarm = false;  // to figure out who woke up the board
boolean con_status = false; // to figure out connection establishment
WiFiManager wifiManager;    // for provisioning
char door_State = 0;
int fire_State = 0;
unsigned long previousMillis = 0;
const long interval = 6000; // milli seconds, wait after detecting door is opened.
float voltage = 0; // Variable to keep track of LiPo voltage
void start_wifi_blynk(void);
void release_power(void);
void checkdoor(void);
void check_door_state(void);
void setup()
{ 
  setCpuFrequencyMhz(60);
  Serial.begin(115200);
  start_wifi_blynk(); //Starting the WiFi Facility
  Blynk.run();
  Serial.println("Applciation Started . . . ");
}
void loop(){
 
}
void start_wifi_blynk(void)
{
  wifiManager.setDebugOutput(false);
  wifiManager.setTimeout(60); //1min, if can't get connected just go back to sleep
                              // WiFiManager wifiManager;
  //wifiManager.startConfigPortal("dumadum-dum-dum");
  Serial.println("connected...yeey :)");
  Serial.println("WiFi Process started");
  if (!wifiManager.autoConnect("dumadum-dum-dum"))
  { // SSID you connect to from browser
#if debug_en
    Serial.println("failed to connect WiFiand hit timeout");
#endif
  }
#if debug_en
  Serial.println(""); // WiFi info
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
#endif
  Blynk.config(auth);
  //Blynk.run();
  while (!(con_status = Blynk.connect()))
  {
#if debug_en
    Serial.println("connecting to Blynk Server");
    Serial.println("Reconnecting try -");
#endif
    reconnect_count++;
#if debug_en
    Serial.println(reconnect_count);
#endif
    if (reconnect_count == reconnect_try)
    {
#if debug_en
      Serial.println("Failed to connect Internet. Power is turing OFF");
      Serial.println("Releasing Power");
#endif
    }
  }
#if debug_en
  if (con_status)
  {
    Serial.println(" Blynk Connected!");
    Blynk.notify("I am on...");
    //Blynk.email("#########@gmail.com", "ESP32 Alert", "Connected");
  }
#endif
}
(code tags added by moderator)
 
Last edited by a moderator:

LaTeX Commands Quick-Menu:

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top