Table of contents

Thursday, 9 April 2015

Solar powered wireless weather station - part 1

As TheLAMPA project needs to be put on hold – some parts are on the way, I have decided to start a new one.

This time it will be a solar powered wireless weather station. The concept is:
  1. 10-12 transmitters with solar panels + rechargeable batteries. Each transmitter would send: temperature, humidity, light and battery voltage. 
  2. 1 main station that collects and processes all the data. #
  3. add a screen to the main station to present the data + SD card to keep the recordings/draw history plot. 
  4. OR use a cheap tablet just to  present the data (this would save me a lot of time reinventing the wheel as I would have a large screen with proper driver, lots of memory, nice casing, SQLite, etc. right out of the box.  
  1. I’m thinking of ATmega328P, sleeping constantly and waking up every 10-20 seconds, powering up all the sensors, reading temperature from DS18B20, humidity from DHT11, light amount (LDR), voltage of the battery, sending a package over NRF24L01+, turning off all the peripherals and going back to sleep. This would be powered from a  solar mobile charger that has built in Li-ion or LiPo battery. 
  2. Main station would never sleep, constantly waiting for incoming packages from sensors. Each sensor would have unique ID so it will be easy to understand where the data is coming from. Additional it would have a pressure sensor (probably BMP180). 
  3. Long and painful process to implement all the libraries for SD card, graphical LCD, etc. Also, smaller (and cheaper) screens will not show all the data (10 sensors sending 4 values = 40 numbers to present). That’s why I think solution 3b is better 
  4. I would need to add Bluetooth support (probably HC-06) to the main station and then pair it with a tablet/phone. Additional piece of work would be to write a mobile app to present the data but in my opinion it is much easier task than doing it on a microcontroller. Also, the crappiest tablets have at least 256MB of ram, 4-8GB of storage with a screen of at least 1024x600 (most of the time it is 1280x800), clock, nice cover, charging circuit, possibility to install additional apps/libraries when required, SQLite to keep all the historical data. Let’s say that each sensor sends:
    • ID (1-15) – 1 byte (unsigned byte) 
    • Temp -30.0C...+50.0C without decimal point (-300...+500) – 2 bytes (signed char) 
    • Humidity (00-99%) – 1 byte (unsigned byte) 
    • Light (v1) (0-1023) – 2 bytes (unsigned char) 
    • Light (v2) (00-99%) – 1 byte (unsigned byte) 
    • Voltage without decimal point (500 for 5.00V) – 2 bytes (unsigned char) 
    It means I would need 8 bytes of storage per record. 10 sensors = 80 bytes. Even with sending the readings every 10 seconds, I would need to store 80b x 6 times a minute = 0.5kb per minute, which gives 720kb per day. So it is 250MB per year. With 4GB of available memory I could store up to 16 years of historical data. 16GB SD card would provide a lifetime storage.

If you like my project and/or you would like to support it, please use the Donate button ☺ 

Follow me on Twitter, Google+, Thingiverse, YouTube or by email to receive the latest updates.

No comments:

Post a Comment