The project goal is to develop a device to monitor the state of a powered wheelchairs battery and automatically send a text message with location data to a preconfigured emergency contact when the battery has run out of power. Additionally, a button placed within reach can be used to manually send out a message with location data whenever the user needs to. This is to help those in powered wheelchairs to maintain their freedom to travel while having a safety system in place in the event issues arise. This device is directly connected to the wheelchair, so it can’t be forgotten (like a phone can) or run out of power at the wrong time (since it is powered by the main battery with an independent backup for when the battery dies). That being said, this initial prototype was limited to just getting the GPS working.
- 1 Arduino Uno
- 1 Venus GPS unit
- 1 Embedded GPS Antenna
- 1 Random Switch from the lab
- 1 Small Breadboard
- Misc wire
- Computer with serial monitor running to see GPS data
This first prototype was very limited in scope, our goal was to get the GPS module working and hooked up to a switch so we can turn it on and off while the Arduino remains on. After gathering the materials stated above, we followed a guide by Simon Monk to just get off the ground. Following that guide one simply connects Arduino GND to GPS GND, Arduino 3.3V to GPS 3.3 and Arduino pin 10 to GPS TX0. At this point we discovered that the GPS module was taking an unusually long time to get a lock, tens of minutes when it should be under a minute. We thought maybe it was just an issue with the code or some misconfiguration, so we spent the next while tweaking things. During that time, we rewrote the code (attached below) to use the TinyGPS library and wired the switch up. For the switch, it was simply a matter of connecting the common pin on the switch to the 3.3V source on the Arduino and one of the other switch pins to the 3.3V pin and the VBAT pin on the GPS module. This connection to the VBAT pin is necessary because the GPS module requires a voltage on that pin to function, even though it is mainly used for a backup power supply to keep the module in a hot start state. After these connections, with a toggle of the switch the GPS module either gets power or loses it completely. This works because as soon as the GPS gets power it starts spitting out data on its TX0 pin (at a sampling rate of 1Hz by default).
The GPS module gave us considerable trouble and we still can’t seem to find anything particularly wrong with what we are doing, so we likely need to buy another (or different) module, which we probably should have done earlier. Going forward we will have to rework our switch stuff because instead of controlling power directly, the switch should be signaling the Arduino (that the user wants to send a message) and the Arduino should handle powering up devices and such. The next step for us (after getting a new GPS module) will be to get a GSM module for communication purposes (messages will be sent over SMS) and a module to monitor current/voltage coming from a battery. We will at some point, also need to put in place the backup battery for the device.