In the previous post. we connected an Arduino Uno and an Ethernet Shield. to the Aquabots Client. With this our autonomous vessel can register itself with a server application running in the cloud.
Today we are going to add a Grove GPS unit, so that the vessel can relay its location to the server. We will be using the TinyGPS++ library for this, together with the standard Arduino library SoftwareSerial, using pins 2 and 3 for Rx and Tx.
The required software is fairly standard to that of the tutorials, so implementing this should a piece of cake!
If you have connected the GPS unit to pins 2 and 3 of the Grove Base shield, then the Arduino will start to relay its position to the Aquabots Server once the GPS has made contact. If you log in, you can select the 'register vessel' option from the menu button. If you had alreay registered the vessel, then the OpenLayer map will jump to the location of the GPS unit.
EXPANDED TECHNICAL DETAILS
Geospatial Data Acquisition
Building on the "Aquabots" platform, Day 2 focuses on integrating precise location and time data into the mobile robotic unit.
- UART NMEA Parsing Engine: The Arduino interfaces with a NEO-6M GPS module. The firmware uses the
TinyGPS++library to decode the raw NMEA-0183 sentences into high-resolution Latitude, Longitude, and HDOP (Horizontal Dilution of Precision). - Temporal Synchronization: Captures the atomic time/date from the GPS satellites, ensuring the robotic unit has a perfect internal clock even when disconnected from the internet.
Connectivity
- Aquabots Client Handshake: Telemetry data is pushed to the Aquabots client software, allowing for 2D mapping of the robot's path and real-time velocity monitoring.