I wanted to create an internet connected (“internet of things”) gadget of my own for a long time. So I was very excited when I received the contract to create a system which sends geological data from construction site to ftp server. On construction sites you have to measure a lot of geological variables like subsurface water levels, temperature or gravel movements. All these variables are measured by sensors on site and collected by data logging station. In my case the data logging station and sensors were made by Geokon. Now if you wanted to get the data from the data logger, you had to go on site in person and download data to the computer. The problem with this approach is that it coasts about 150USD to send there someone to do it and since it costs so much, rarely anyone does it. Nature is often unpredictable and you need as fresh geological data as you can get in order to prevent events such as slip rolling over your highway (http://blogs.agu.org/landslideblog/2014/06/09/litochovice-1/).
The device itself consists of raspberry pi A+ (lowest power hungry raspberry), USB modem, power supply and timer. All these parts are inside water resistant box with antenna and serial port on the side. On the raspberry pi is running normal Debian Linux which is set to start a transfer program right after boot. The program is written in Python. When the program starts it initiates communication with Geokon data logger over serial port and starts downloading the geological data to RAM. Then the program initializes the modem and uploads acquired data to FTP server. The data on the server are saved as csv file which can be read by Geokon software. From the FTP server anyone that you give an access can read the data. At last the program shuts down the raspberry and wait till the timer cuts off the power.
Main challenge of this project was the required power consumption envelope. The device was expected to send data from data logger to server three times a week for at least three months without any maintenance. Using a big battery was not possible as I had to fit the whole device into small box which would fit into steel tube above a bore. Because of space problems I had to satisfy myself with a hermetic lead acid accumulator 12v/1.2Ah and lower the cover consumption at idle as low as possible.
The measuring showed that the raspberry pi alone in idle (with HDMI turned off) eats 80mA/5v plus the modem adds another 70mA/5v (raspberry pi is not capable of powering down the USB port) and dc-dc convector another 20mA/12v. That is a lot of energy, the first idea I had was to use raspberry pi as timer which obviously cannot work as it would require a car battery for any long term operation. Instead of timing the upload schedule with lets say cron on raspberry pi, I used an external timer from china which cuts off the power to while device. These timers are great since they are very easy to use and anyone can set the uploading schedule. Inside these timers you can find two circuit boards. Top main board with display contains all the logic and the bottom one is providing the power, battery backup load power switching. The original timer had a power consumption of 4mA when the load is switched off. This sounds reasonably until you realize that this timer alone would eat the battery in 12.5 day. I had to remove the bottom board and replace it with my custom circuit which has almost no power consumption at idle. The main board takes unmeasurable amount of current so I simply connected it to AA battery which should last for years. The main board has several wires and one of them has +1.5 V when switched on. I connected this wire to my custom board where it powers a transistor which switches a relay which in turn switches the load. Now with this power system the idle power consumption is almost zero and the battery will rather self discharge then deplete.
Thanks to this device the acquiring of the data from the data logger is very easy. You place your sensors on the site and connect them to Geokon data logger. Then you connect the data logger to my device through a serial cable. Inside the device you setup the timer to schedule the data upload to server. Every time you want the device to upload fresh data you have to set the timer to switch on and after cca 15min to switch off. The main battery should last for about 50 uploads which gives you a run-time of three months with three uploads a week.
In the future I would like to lower the power consumption by using switch at the modems USB port so I do not have to power it when is not user. But that probably would not have a great impact on run time. Greater impact could be acheaved by using Arduino or similar board but there is a big problem with lack of memory on these devices.
If you are interested in this device or even wish to buy it yourself please write me at below.