Sunday, November 17, 2024

Super Power Saving 24μA Sensor Node

When it comes to wearable devices and small sensor nodes, the lower the power consumption–the longer is their life. Given that most of these devices need to operate intermittently to collect and transmit data–what if designed them such that rather than keep the entire system ON all the time, it turned ON only at predefined times?

This project focuses on developing a super Power-Saving Wearable Device designed for such applications. It leverages the capabilities of the Indusboard which has ESP32 based chip that is renowned for its low power consumption and versatile sleep functions, including light sleep and deep sleep modes, as well as the ability to process data during sleep using its ULP (Ultra Low Power) RISC coprocessor.

The aim is to design a Power-Saving Wearable Device that wakes up at specific intervals to process and transmit sensor data. It incorporates an IP-based location tracker that updates its position only on the web dashboard after detecting movement, thereby maximizing power efficiency.

The project utilizes the IndusBoard, which is equipped with the ESP32-S2 chip, due to its support for RTC (Real-Time Clock) and RISC-V coprocessor functions, essential for achieving the desired low-power state and efficient operation.

This project is just to show how you can use the light sleep inbuild RTC and Deep sleep to design super power-saving devices and wearable electronics. You can modify code and design any of your choices. This is just to show you the method to do so.

- Advertisement -

Bill of Material 

ComponentsDescriptionQuantity Price
IndusBoard / ESP Based Dev Board Dev Board11500
USB Type CAdapter1100
Round Touch Display GC9A01 Driver and CST816S Capacitive Touch Driver 11000
3.3V Battery For Powering Device 1200

Note: – If you are using any other ESP-based board and not Indusboard, then you might also need an external sensor for magnetic and acceleration. In the case of the Indusboard, its have been built In those sensors. 

Working Principle

  • Wake-Up: The device wakes from deep sleep mode at predetermined intervals to perform tasks.
  • Data Processing: Utilizes the ULP RISC coprocessor to efficiently process data from onboard sensors while the main CPU remains in sleep mode.
  • IP-Based Location Tracking: Updates the device’s location upon detecting movement, leveraging the GC9A01 display for visualization.
  • Deep Sleep: After completing tasks, the device returns to deep sleep mode to conserve energy.

Power-Saving Wearable Device – Coding 

Here first we will design a simple wearable device that sleeps and wakes to check how to do deep sleep function on the device. Here we make the chip sleep and wake it at certain intervals to connect to our wi-fi network and then process the function and then again go to sleep.

For that here we first set the SSID and password in the code for connection with our wi-fi network and then we will code it to make the chip go into sleep. 

- Advertisement -

Here we can also save the power from wi-fi consumption by setting the wi-fi power in code.

WiFi.setTxPower(WIFI_POWER_MINUS_1dBm); // Set WiFi transmit power to the lowest level

Next for deep sleep, we use the below keyword where “30e6“ denotes the interval time for sleep. Suppose you want the chip to sleep for 60 seconds, then it is declared as “60e6”. In this way, you can set the seconds to make the sleep and wake intervals. 

 // Enter deep sleep mode

 Serial.println(“Entering deep sleep mode”);

 delay(4000);

 esp_sleep_enable_timer_wakeup(30e6); // Wake up every 60 seconds

Suppose you want to make the device sleep for 2 hours, then the time interval is set as follows:

  “esp_sleep_enable_timer_wakeup(3600 * 1000000ULL); // Time in microseconds

For 1 day:

  “esp_sleep_enable_timer_wakeup(86400 * 1000000ULL); // Time in microseconds”

 esp_deep_sleep_start();

Fig 1. Code for Power-Saving Wearable Device

Super Power-saving IP Location Tracking SmartWatch 

Now to make the code for super power saving IP-based location tracking watch, we attach the Round LCD with the Indusboard and solder them. Then in the code, we set to do the same as above but here we insert the loop function to check the location based on IP and then display it on the LCD display. And then we make the main board sleep and you can modify the interval from 3 seconds to 1 hour to 1 day and any other time as you wish.

Here you also have the option to make the watch LCD screen light power cut option if you want. If you want the LCD to go off, then you can set any Gpio as OUT as high when the chip wakes up and connect the LCD backlight to that pin. 

Indusboard Project Code
Fig 2: Code

Circuit Connection

Now connect the LCD as you have done in the earlier Indusboard smartwatch project. But here if you want to save power from the backlight of the display, then you can connect the backlight pin to any other pin stated in the code.

IndusBoard based Power-Saving Wearable Tracker
Fig. 3: Circuit Diagram for Power-Saving Wearable Device

Testing and Working

Now power the device with USB or battery and you can see the device get connected, find the location, and show it on display, then it goes to sleep, and then after a set interval, it again wakeup finds the location, updates the display and then go to sleep again. It continues the cycle as atin and again. If you open the serial monitor you can see the working.

IndusBoard based Power-Saving Wearable Device
Code for Super Power-saving IP Location Tracking SmartWatch 
Ashwini Sinha
Ashwini Sinha
A tech journalist at EFY, with hands-on expertise in electronics DIY. He has an extraordinary passion for AI, IoT, and electronics. Holder of two design records and two times winner of US-China Makers Award.

SHARE YOUR THOUGHTS & COMMENTS

EFY Prime

Unique DIY Projects

Electronics News

Truly Innovative Electronics

Latest DIY Videos

Electronics Components

Electronics Jobs

Calculators For Electronics