Processes, Applications and Function
Having resolved some of the hardware issues, it's now time to put some thought into how the whole thing will work.
The controller has overall control because it runs 24/7, but could go into a sleep mode when the system is shutdown.
The controller is responsible for :-
- RTC (Real Time Clock).
- Battery charge.
- Systems power (RPi and Wireless link).
- Battery voltage.
- External shutdown button.
- External Status indication.
- Receiving future data.
The RPi is responsible for :-
- Camera (photo and video).
- Receiving Battery Voltage data.
- Receiving Temperature data.
- Sending data (or hosting data).
- Signalling when the tasks are complete.
- Updating the RTC in the controller (based on the time across the link).
- Sending changes to settings to the controller.
Since the RPi is not on at all times, and power is limited, it was suggested that most of the processing should be done at the 'office' end.
This gives me flexibility to manage the data in various ways, which includes data logging and warnings for the Battery state.
Some of the signals are digital (on/off), while Battery and Time are serial information (either via TTL or USB depending on the final controller hardware).
Rather than simply push the data out over the link, my current thinking is to host the data on the RPI and allow the 'office' end to interact while the link is up.
This may involve simple automatic transfer of the data, (in a raw form), or present it as a webpage.
The webpage will allow for human interaction, and could include changing some of the settings.
- Picture Frequency
- Video capture
- Early Field closure
It could also display the current Temperature, Battery Voltage, charge control state, last picture information as well.
Now that the data and means of displaying it are identified, the various bits of software need to be cobbled together.
I have limited experience here (Arduino = yes, Linux = no) but I have an idea of the concepts and some of the methods.
I also know that searching and reaching out to a few forum members will no doubt point me in the right direction.
(I also have a some very clever linux gurus at work if I get really stuck)
One of the challenges of this project was trying not to comprimise the goal, due to lack of resource (knowledge), and it is easy to fall into a comfort zone and stick with what you know.
If we always did that, we'd probably not be here on the internet, and may still be living in a cold damp cave somewhere, hoping our next meal walks past.
This project has two goals, to learn new skills/stretch the boundaries and provide something useful.
The errors and hiccups along the way aren't failures. Not trying is a failure.