I've got a bit of an ambitious project. I live and sail full-time on a 27-foot sailboat (working my way around the world), and recently had the opportunity to bring back some of my electronics gear with me back to the boat.
I'd really like to start adding a wireless sensor network to the boat to monitor the following:
Fresh water levels in 3 tanks
Bilge water level
Diesel fuel level
Temperature in the fridge
Solar power in
Power consumption
Battery state of charge
The big question though is how to achieve the wireless aspect of the sensor network. If you've ever worked on a boat, you'll understand that running cables can be a soul-breaking endeavor, and I'd like to avoid it.
The other constraint is power consumption. We are solely reliant on a limited amount of solar power (250W, 230AH battery bank).
My research leads me to believe that a WiFi solution would be best. With nodes communicating to a master, which would be configured either as a RaspberryPi or an Arduino with information displayed dependent on which device is used.
The issue with a WiFi solution is it would require I setup a router on the boat, which isn't a bad idea. I just worry about the power-draw of a router that is constantly on -- which would likely be the most significant source of power consumption of the planned wireless network.
What are your thoughts and suggestions? I'm open to almost anything.
Sorry, but having had a sailboat myself I reckon the whole thing is a waste of time. There is so much likelihood that parts will be affected by the harsh environment that it won't be possible to rely on anything.
It's not as if any part of a 27ft boat is far away from the skipper.
Regarding the harsh environment -- I totally agree. My plan though is to pot all the boards in epoxy once finalized. It still my be futile. The water tanks are rather difficult to access, and so we don't check them as often as we should. I'd really like to have some kind of system for this at least.
I think given my power constraints, I'd like the nodes to be asleep for the majority of the time. For things like tank water and bilge water, those values only need to be reported every 30 minutes, at most.
The only thing that might require more frequent reporting would be things like engine temperature -- but I only care about that when the engine is running, and the alternator is providing plenty of power.
The boat has a 12V system, and though I think it would be best to wire the nodes directly into this system, that would also mean significant waste loss from the voltage regulator required at each node. The other option would to be to have a small LiPo pack at each node, and charge them once a week. I have a feeling this might get tedious, and also introduces an unnecessary fire risk.
Unfortunately I don't really have the luxury for much experimentation, as I have to bring everything back with me on the plane back to where the boat is.
If the solution doesn't work, there's really no hope of finding the right components where the boat is currently located, and shipping isn't an affordable option.
Nrets:
Unfortunately I don't really have the luxury for much experimentation, as I have to bring everything back with me on the plane back to where the boat is.
That is going to make things very difficult.
On my present boat I installed a length of clear plastic tube arranged vertically with the top well above the drinking water tank water-level. When I need to check the water level I can see it in the tube. Because the water pump would preferentially suck air down the tune I have a valve at the top of the tube which I open when I need to check the water level. I do that only after several days as I have a good idea how long a tank full of water will last.
Checking for bilge water is as simple as running the bilge pump for a few seconds.
Well, nothing is easy on a boat, otherwise everyone would do it!
I acknowledge that there are other, more basic solutions to monitoring the boat's vitals. However, being able to get "at-a-glance" summary of everything would also be nice.
I think the vast majority of Arduino projects present solutions to problems that don't really exist, but they're still interesting, and provide an alternative solution to the one that already exists.
On topic: I've found that the ESP8266 can be configured as an access point, which would perhaps negate the need for a router at all?
Nrets:
On topic: I've found that the ESP8266 can be configured as an access point, which would perhaps negate the need for a router at all?
AFAIK you could build the entire system with a number of ESP8266 modules. The Wemos D1 seems to be a convenient small package.
The only inconvenience of the ESP8266 is its limited number of I/O pins.
However if you don't have scope for proper testing and verifying that the system behaves as you wish in all circumstances I cannot see how you can build the system.
I am helping to automate a small model railway system and I stopped the development in advance of an exhibition because we did not have enough time for testing - and the implications of failure would only have been embarrassment.
Apparently you an use a Pi as an access point, so no need for a router. A Pi zero W is fairly frugal on power and you can arrange for your sensing nodes to sleep a lot. I'd prefer a Pi over an arduino for the master to have processing and storage headroom.