A Moteino M0 (hence the M0) Boat Monitoring solution!
A reimplementation, and extension of https://github.com/gregcope/piboatmon, as the original consumed too much power. This is designed with the following goals;
- Be very, very low power
- Chargable from 12-24V
- Has a rechargable LIPO battery
The present version is made from COTS parts to make life easy at the deign/proto stage. However the code should be transferable.
- Adafruit Ultimate GPS - any 3.3v UART GPS would do, however needs an enable pin and vbat GPS almanac backup
- Adafruit Fona - any 3.3v UART GSM modem would do, although we do use the battery charging on the fona
- Low power Moteino M0
- Mini Step Down Regulator Voltag Power Supply Module 4.5v~55v to 5v. Specifically the one with an enable pin and low power in off mode (<10ua). Needs to supply 500ma+ (600ma is fine) and deal with 11-30v on the input to work on 12V or 24V systems. Needs to supply 5V for the lipo charger. Efficiency is not a massive issue as the regulator is off most of the time, only on to charge occassionally.
- DS18B20 Waterproof Digital Probe Temperature Sensor with Silicone Cable (higher temp) Thermometer
- 12V 12mm LED Power Push Button Switch Momentary Waterproof Metal 4 Pin
- 1200mah LIPO Battery (any single cell LIPO with a JST would do)
- Bilge Switch (any normally closed, simple switch would do)
- Tinygps++ - A class to deal with GPS
- Lowpower - A class to help with Sleep modes
- Eeprom - Save Eeprom state
- OneWire - DS18B20 Temp sensor lib
- Device - A base, or standlone class to control power to devices via a Digital pin
- Config - A class to provide a config object to store Eeprom state
- CRC8 - CRC checksum (for config saving)
- Sleep - Simple wrapper to LowPower sleep
- Switches is on setup configures all the required parts
- Loop every 8 secs and checks;
- Bilge switch
- Every 4 mins checks the batteries
- and if above 13.7v (ie charging) enables the onboard lipo charger
- Reports bilge switch or low BatV
- Every Hour;
- Checkst the above
- Checks location
- If any of the above are out of band;
- Send a message
- Open a command terminal, and change cd to where your Ardunio IDE stores code
cd Documents/Arduino
- Clone the repo
git clone https://github.com/gregcope/ABoatMon.git
- Open Ardunio IDE and open
ABoatMon.ino