EEVblog Electronics Community Forum
Electronics => Projects, Designs, and Technical Stuff => Topic started by: edvarim on November 16, 2018, 06:12:08 am
-
My wife asked me to update a datalogging device with wireless technology. Currently the device logs some parameters (example: 1534204764 2018-8-13 23:59:24,25 1623.40 22.01) 4 times every second (yes, 345600 measurements per day, and yes, it’s the lowest useful logging frequency) and takes up slightly under 16 megs of storage per day. Currently while logging to card one measurement takes 47 bytes of data (about 11kbytes of data every minute), after optimization (without additional encoding, and keeping it human readable) (example: 15341184001 1633.00 22.00) it can be stripped down to 25 bytes (about 6kbytes every minute).
Current implementation on stripped down 8bit Arduino logs the data to microSD card and runs on 3 D type batteries for 3+ months.
She would like that the loggers would upload at least 10 min of continues logged data every hour (more data would be better). They are placed in limited access area of about 4km by 0,5km.
The area in question has cell coverage. LORA, SIGFOX coverage is currently not available. (would need to deploy own LORA gateway).
Which wireless technology you would recommend, while trying to keep the runtime at 2+ months (if needed using 6/12V lead acid ups battery). In the area there would be 5 to 10 data loggers deployed.
Thanks for the input and ideas in advance
-
Ok, lets start decimating this down,
From your example data your date format can really be cropped down a whole lot, look into something like the unix date-time format, that makes that mess 4 bytes
(Your processing speed should be much faster than what it takes to capture your values, or storing to an external memory)
Your initial value seems to be a 4 byte unsigned integer,
And the final 2, are 2 float numbers, so with all this, thats now down to 16 bytes per record,
now we are at a more reasonable 5,526,600 Bytes / Day
or brought back, 64 Bytes / Second, or 512 bits / second
Ok, next up is memory option, choose your SD card wisely, many of the non industrial SLC ones have very high power consumption while Idle, due to internal housekeeping, etc,
Equally you will want to buffer up and write in larger blocks to keep the power as low as possible, I would even recommend using a mosfet to disconnect the cards power when its no longer busy, and simply log to memory as long as you can,
Finally the wireless tech, 4km knocks out most of the usual low power options unless you have high gain antennas aligned between nodes, personally I cannot speak for what would be the best method at this range.
-
Could you put a solar panel on each logger? In that case it's feasible over cellular. Otherwise quite frankly it's going to be difficult given the ranges and intervals / data volume (a bit much for LoRa / SigFox).
-
Depending on the frequency, if line of sight is available (not through trees, around hills, etc.) 'high gain antennas' can sometimes be surprisingly compact.
-
Data could be further optimizing by making floats an integer by multiplying by 100 and assuming they are 2byte values. This leads to 8 bytes per record or 2700KB each day.
SD does consume a significant amount. I would try to use an external 32KB memory IC with low power mode. Or increase the wireless update to about 2.5min using the internal sram memory and sending 4800 Bytes each time. As the info will be saved in other place and the time it takes to transmit the data will not be too long.
I would use a low frequency wireless communication. There are multiple Lora wireless IC that reach 5km for arduino like the SX1276 without dealing to much with antennas.
Even then I don't think there is a way reach 3 months the wireless will use almost all the energy. You are currently using 1.15uA/s. The wireless alone will consume at least 1uA/s meaning that your run time will be reduced by more than a half.
Depending on the place using wind, solar or external sources of energy will allow to maintain the device working all the time until something fails.