Skip to content

GesaP/radiosolar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RadioSolar

Why

Proof of concept to make a low power device with the ESP8266. Mostly the low power functionality of the ESP8266 is heavily used such as the "modem sleep" and the "light sleep".

The battery load and charge is logged which also provides the sunshine time. This is used for making the proper size for the needed battery capacity and solar panel size.

How

  • Get the hardware
    • some ESP8266
    • some tube with CPM output to a digital pin of the ESP
    • INA219
    • power supply
      • this experimental setup uses a solar panel and a battery
      • you could use a simple USB charger or any other stationary power supply
  • Clone repository
  • Create your credentials.h
  • Compile and flash the code with either the Arduino IDE, PlatformIO or the Espressif IDF

credentials.h

Save as credentials.h in the src directory.

unsigned long myChannelNumber = 123456;
const char * myWriteAPIKey = "DEADBEEF123";

const char* ssid = "mySSID";
const char* password = "HopefullySomethingSensible";
char wifiHostname[] = "radiosolar";

const char* radmonUsername = "myRadmonUser";
const char* radmonPassword = "LetTheAdminGenerateIt";

Features

  • synchronous wait only for WiFi syscalls. Yes, they are mandatory.
  • collection of geiger counts per minute via interrupt
  • mean averaging to preserve power by turning the wifi on only every 15 minutes
  • ESP8266 Modem Sleep (=Wifi turned off) for power preservation
  • logging of battery charge and discharge
  • MQTT support for Thingspeak as IoT data sink

Hardware in this setup

  • Wemos D1 Mini
  • Sparkfun Geiger Counter
  • INA219 Current/Voltage sensor
  • 2 serial 6W solar panels with each bypass diodes on each terminals interconnected with a series diode
  • all diodes are LX2410A by MicroSemi
  • BQ24650 solar charge controller
  • Polulu 5V step down with >98% efficiency
  • 2s2p 8.4 V 4 Ah Lithium Ion battery with a BMS

Power considerations

Well, probably some numbers are required for getting the correct value of solar panel and battery sizes.

This setup contains a voltage and current sensor for monitoring the battery state. Also useful as sunshine sensor.

A switching power supply in combination with a low power optimized solar charging control is recommended. MPPT is advised. My setup uses a 2p2s Lithium Ion combination with the BQ24650 from TI.

Schema

Prototype

prototype with case

Case

This project comes with a batteries 3D printed case included.

Possible improvements

Most improvements are only usable in a production scenario. As this setup is experimental all changes below hinder possible bug fixing and development.

  • remove the Atmega micro controller on the Sparkfun Geiger Board as we don't need it
  • if we leave it we could at least let it collect the mean value and deep sleep the esp completely
  • remove useless onboard LED
  • turn off the Serial-USB chip on the Wemos D1 (leaving the D+ and D- USB lines open does not change the current)
  • custom PCB with only necessary components (no LEDs, no Serial to USB chips, no other power drains)
  • if we get under 1mA we could try power harvesting stuff as getting just the environment heat to power the device

Demo

Kudos

  • Phialo 3D Design for the 3D sun model, 3D-printing the enclosure and general support
  • Adafruit and Thingspeak for their great libraries, data sink and general awesomeness
  • Sparkfun and Espressif for their neat hardware
  • Radmon for their nice map of Geiger counter values. Check it out!
  • all the ingenious and industrious tinkerers who paved my way into the depths of the ESP8266

About

Low Energy Solar Powered IoT Geiger Counter

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 100.0%