Author Topic: ESP32 Temperature and Humidity Node  (Read 3323 times)

0 Members and 1 Guest are viewing this topic.

Offline MAntunesTopic starter

  • Regular Contributor
  • *
  • Posts: 99
  • Country: pt
ESP32 Temperature and Humidity Node
« on: September 16, 2018, 11:55:38 pm »
Hi guys! My next project will be building several nodes to measure temperature and humidity around the house.
I'm planning on using the ESP8266. I already have a Wemos D1 Mini (with SHT30 and battery shield) I've been using but I think the design has many flaws (the heat from the microcontroller influences the readings and the battery shield does not have discharge protection).

My requisites right now are: using the ESP8266 powered by a 18650 Li-Ion battery to measure temperature and humidity. I want to keep this project as low power as possible.

The first step is to find a humidity sensor and a battery protector/fuel gauge with footprints that a newbie can solder.
I have access to hot air so I don't mind using SMD.

I'm looking at the SHTxx sensors from Sensirion and I have no idea about the protectors for the battery (I don't need charging capabilities).

I'm trying to keep the cost down, but this will be an education project so I don't mind spending a bit more if need be.

So, the first step is going to be choosing the main components. If you have any recommendations I'd like to hear them.
I'll use this topic to show my progress as well as to ask for your opinion.

Thank you,
Miguel




« Last Edit: September 23, 2018, 10:21:23 pm by MAntunes »
 

Offline 128ITSH

  • Contributor
  • Posts: 12
  • Country: il
Re: ESP8266 Temperature and Humidity Node
« Reply #1 on: September 17, 2018, 05:54:02 pm »
Hello, I don't have any recommendations but to get you focused on the battery protection, just note you only need two things:
- Overcurrent draw.
- Overdischarge.
So look for a 1 chip solution for these two protections.
Another thing you need is a LDO regulator so the voltage will not be too high for the system.
Are you planning to design a PCB for this project?
A good engineer knows how to use his tools.
A better engineer also knows how his tools work.
The perfect engineer is the one who made his tools.
 

Offline MAntunesTopic starter

  • Regular Contributor
  • *
  • Posts: 99
  • Country: pt
Re: ESP8266 Temperature and Humidity Node
« Reply #2 on: September 17, 2018, 10:04:50 pm »
Hello, I don't have any recommendations but to get you focused on the battery protection, just note you only need two things:
- Overcurrent draw.
- Overdischarge.
So look for a 1 chip solution for these two protections.
Another thing you need is a LDO regulator so the voltage will not be too high for the system.
Are you planning to design a PCB for this project?

I've been looking at the bq297xx from TI. It has Overcharge Detection, Over-Discharge Detection, Charge Overcurrent Detection, Discharge Overcurrent Detection, Load Short-Circuit Detection and it is fairly inexpensive.
Yes, a LDO is another thing I'll need. The ESP8266 needs 3.3V and a maximum of 350mA of current. I need a regulator with a very low dropout voltage and a very low quiescent current.
Yes, I'm planning to design a PCB.

I've been looking at the humidity sensors to use:
 - Silabs Si7006: +/- 5% humidity and +/- 1ºC temperature - 1.56€
 - Silabs Si7034: +/- 4% humidity and +/- 0.4ºC temperature - 2.34€
 - TI HDC1080: +/- 2% humidity and 0.2ºC temperature - 2.73€ (very low power)
 - Sensirion SHT30: +/- 3% humidity and 0.3ºC temperature - 2.41€

The best seems to be the TI one.
 

Offline NW27

  • Regular Contributor
  • *
  • Posts: 53
  • Country: au
Re: ESP8266 Temperature and Humidity Node
« Reply #3 on: September 18, 2018, 05:45:39 am »
Hi
I'm also looking at doing this and my data gathering so far indicates that the ESP8266 draws to much current in a standby state. The ESP32 is recommended for battery powered devices.

Sent from my SM-N960F using Tapatalk

 

Offline LukeW

  • Frequent Contributor
  • **
  • Posts: 686
Re: ESP8266 Temperature and Humidity Node
« Reply #4 on: September 18, 2018, 10:37:07 am »
If the microcontroller’s deep sleep is not good enough, you can always use something like a TPL5110 for power gating.
 
The following users thanked this post: MAntunes

Offline MAntunesTopic starter

  • Regular Contributor
  • *
  • Posts: 99
  • Country: pt
Re: ESP8266 Temperature and Humidity Node
« Reply #5 on: September 18, 2018, 10:13:42 pm »
Hi
I'm also looking at doing this and my data gathering so far indicates that the ESP8266 draws to much current in a standby state. The ESP32 is recommended for battery powered devices.

Thank you! I looked at the ESP32 and there was a module that stood out: the ESP32-SOLO-1. It's only a single core but it is more than enough. The price is also not that high.
 

Offline hamster_nz

  • Super Contributor
  • ***
  • Posts: 2860
  • Country: nz
Re: ESP8266 Temperature and Humidity Node
« Reply #6 on: September 18, 2018, 10:34:10 pm »
I did exactly this sort of project last summer, using an ESP32 module.

Most ESP32 modules with a battery connector also have as LiPo battery management controller (e.g. LOLIN32 Lite), however most perform poorly on battery due to a 'high' current on the LDO (in this case high means > 0.5mA). I've tested serveral different similarly priced modules, and they all have very different sleep currents.

With a very good regulator you can get quite good deep-sleep performance - well under 50uA.

A good module generic ESP32 uses about 50mA when awake, and 120mA on WiFi and less than 0.1mA when asleep.

From memory my case sensing and reporting every 5 minutes took about 10 seconds, 120mA for 10 seconds, 0.1mA for 290 second, giving average power usage of 4mA. If you connect to the WiFi far less often (e.g. only once an hour) it would be about 0.5mA, making your battery last eight times longer, even if you do wake up every 5 minutes to read the sensor. 

The ESP32 has some 'always powered on' memory in the RTC component that can be used to hold state information while in deep sleep. See  "1.3.2.8 RTC SLOW Memory" of the Technical Reference (https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf)


If interested you can see data at:

https://thingspeak.com/channels/354869

https://thingspeak.com/channels/357477

Code is at:

https://github.com/hamsternz/thingspeak-esp32-dht11
« Last Edit: September 18, 2018, 10:36:06 pm by hamster_nz »
Gaze not into the abyss, lest you become recognized as an abyss domain expert, and they expect you keep gazing into the damn thing.
 

Offline MAntunesTopic starter

  • Regular Contributor
  • *
  • Posts: 99
  • Country: pt
Re: ESP32 Temperature and Humidity Node
« Reply #7 on: September 23, 2018, 10:12:55 pm »

Thank you very much. I'll take a look to the code.

Progresses of the past days:
 - Switched to the ESP32 microcontrollers as they are better for battery powered devices. Still don't know if the ESP32-SOLO-1 or the ESP32-WROOM-32D are compatible with the Arduino IDE.
 - Selected the temperature/humidity sensor.
 - Selected the battery management IC.

You can see the current schematic in attachment. I still need to choose a LDO regulator (low power suggestions accepted), choose the 18650 battery holder. I still need to investigate a bit more about the programming circuit: just a jumper on the GPIO0 does not convince me.

Critiques and suggestions for the circuit are accepted :)

Thank you,
Miguel



 

Offline NW27

  • Regular Contributor
  • *
  • Posts: 53
  • Country: au
Re: ESP32 Temperature and Humidity Node
« Reply #8 on: September 24, 2018, 06:05:58 pm »
Hi
Have a look on youtube for Andreas, the guy with the Swedish accent.
He has done a review of pre-made ESP32 modules, some even have the battery holder and circuit already incorporated. These reviews include standby currents etc.

In addition, he also has a video about configuring the Arduino IDE for use with the ESP32 & 8266.
Link below.

https://youtu.be/DgaKlh081tU


Sent from my SM-N960F using Tapatalk

 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf

 

- - -
-->