User avatar
By RichardS
#43318 User

(insert pic1.jpg)

My design is meant to be used outside the home. I wanted the platform to be able to “sleep” for extreme lengths of time at ultra-low current. The platform needed to be somewhat universal. I wanted to monitor the environments temperature and voltages. I also included connections for soft serial in case we wanted to include a GPS.
Here is a block diagram of the design:
(insert pic2.jpg)

The heart of the platform obviously is the ESP8266. I used the Arduino IDE to do my coding with JChristensen’s MCP980X library.
I find the ESP8266 to be extremely robust and powerful for the various projects I have built.
(insert pic3.jpg)

I used a Microchip MCP7940 I2C RTC as a programmable alarm to enable the power supply. This allowed me to set off times as long as a month if I want but I have mostly been off 1 to 6 hrs. The off current for the platform is around 750na while just powering the RTC bat circuit. The RTC Multi-function pin is used to hold down the EN pin of the boost regulator/switch.
(insert pic4.jpg)

This platform is using a boost regulator so I can run off a 3 volt AA battery and a Solar cell. I am using a Microchip MCP1640 boost regulator that is configured to boost and regulate at 3.3v. This circuit allows the battery to go down to ~1v and still regulate at 3.3. The Solar cell backfills the battery on sunny days. I have been running this configuration in excess of a month with great success.
(insert pic5.jpg)

There is a Microchip MCP3221 i2c SOT23-5 A to D on the platform that I use to monitor the battery voltage. It is a single input device and can be used to report all sorts of things from water levels to light levels. Issues found: I was reading stable values except every once in a while. I believe the issue was with the I2C pull ups as a result I stiffened them. My intent is to use this to sense various items in a greenhouse.
(insert pic6.jpg)

I used a Microchip MCP9800 SOT23-5 I2C temp sensor for the onboard temp.
(insert pic7.jpg)

Here is a close up of the finished working PCA.

(insert pic8.jpg)

(insert pic9.jpg)

I used ThingSpeak as a network sensor database. I used the sample Arduino code to set up my wireless link and start up the client. I then formed up a URL of the appropriate construct that Thingspeak expects. Here is an example where the voltage and temperatures are sensed every 15 minutes unless the voltage is below a limit where the off time is extended to reduce current usage.
(insert pic10.jpg)

I need to give a shout out to the Community for all the great work they are doing supporting the ESP8266 and Arduino environment. I was also lucky to find a real responsive board manufacturing group It is incredible what an individual can produce these days using common resources.
Feel free to contact me if you have any questions.
(insert pic11.jpg)

C1 .01uf
C2 7pf
C3 7pf
C4 1uf
C5 1uf
C6 .01uf
C7 22uf
C8 10uf
L1 4.7uH 732-1008-1-ND
R1 100k
R2 100k
R4 2k
R5 2k
R6 1meg
R8 10k
R9 1M
R12 10k
R14 10k
R15 976k
R16 562k
U1 MCP7940
U2 MCP3221
U3 MCP1640
U4 MCP9800
WIFI ESP8266 v3
X1 32.768 kHz Crystal



pic9.jpg (31.13 KiB) Viewed 4237 times
User avatar
By timmerdude
#43357 I am including a link to the ThinkSpeak channel.

I currently have the platform set so if the voltage is <2.8v it will log every hr. If above it will log every 15 minutes. If we have cloudy days for a week or so and the voltage goes below 2.6v the sensor will post every 3 hrs.