I'm currently using a 6 year old Debian Linux PC as a long term data storage solution for capturing data collected by a bunch of Arduinos. This allows me to store months of data and plot graphs using Python and matplotlib.
The disadvantage it that it consume 10s or 100s of watts of power so has to run off mains power rather than the battery backup system I use to power the Arduinos which need to run continuously. The mains power supply where I live isn't that reliable so I have to make provision for outages that can last up to 8 hours.
Does anyone have any recommendations for a low power PC that only consumes a few watts and can still store a few GB of data, but still have reasonable performance so you can still use it as a development machine without tearing your hair out?
Things like the Intel compute stick look attractive as it comes packaged as a complete unit only requiring an external monitor and keyboard/mouse. The power consumption seems to be about 5-15 watts under peak load. This ships with Windows which isn't ideal. I think I'll be able to disable the Windows auto-update mechanism so that it doesn't randomly reboot at the most inappropriate times.
Things like the Raspberry Pi and Beaglebone have a lower power consumption but I have doubts about their ability to act as a development machine due to CPU limitations. My own experience of just using a Beaglebone for trivial stuff was that is was slow. I couldn't imagine using it for development.
The plotting software I currently use is all Python, but the long term goal is to switch to Kotlin which compiles and executes on a Java virtual machine. I know people make fun of Java because of browser security issues etc., but in the context of what I'm doing it makes sense.
The total amount of data coming in from the Arduinos is only about 400 bytes per second. This arrives via CAN bus and I use a single Arduino to translate this into Ethernet MQTT packets which get sent to a Mosquito MQTT server running on the PC.
A typical plot for one parameter, for one weeks worth of data contains about 300k data points. At the moment I'm just using the Python pickle function to save the data, but plan to move to SQLite.