A larger version of the Lora radio used in the project
The front of the Slate tag which shows the two sensors
The back of the slate tag that shows the radio (Battery removed for ease of view)
A digital read of the sensor data directly from the Arduino, this data comes from the BMP180
A view of the simple webpage displaying data from the device through the internet
Everyone has head of the tile tag, a relatively small bluetooth GPS tracker that you can put on almost anything. It has a maximum range of 200 feet and if lost at great distance, can use other tile tag owners in order to pinpoint its location. The idea is neat, and for most people it works, but what happens when the tag is in a location where not many tile owners walk by, and what also happens when a company wants to use those GPS trackers to help with maintaining their own work.
The solution to all of this, is Slate, a simple GPS tracker with built in humidity, pressure, and temperature sensors to allow for much more than simple tracking. Imagine this, you're a shipping company that is relatively large, but not as large as FedEx or USPS, so you don't have the same connections as they do. Occasionally, some of your packages dont arrive to their location and some are even stolen right from the porches of homes. Since you aren't the largest, paying for this lost merchandise is not easy and will most likely lower your revenue. But now, thanks to Slate, that wont happen to often as you can not only track the location of the package, but also monitor the environment its in to ensure the package is not being destroyed.
Now of course, Slate does not only have to be for packages, it can be used for anything that is at risk of being lost. This includes people, animals, possessions, vehicles, and other daily items that we dont want to see running away into the abyss that is lost items.
The reason to why Slate can do all of this is due to its special long distance packet protocol called Lora, which allows for long distance communications without the long distance price on energy. Several Lora modules around the world operate now, being powered off of simple AA batteries and staying on for close to 5 years depending on its sensor payload. This all allows for amazing things to happen, because developers no longer have to worry about distance when developing with IoT, but can now focus on the hardware put into the project.
What it does
Slate is a tracker similar to the tile tag, except it includes a few more sensors and much longer range. Slate forwards GPS, humidity, temperature, and pressure data to the user from a direct distance of up to 20km and can send data anywhere in the world as long as it is within range of a Lora gateway, with one gateway covering a 12 mile radius of land.
Slate is currently small, but has the potential to be even smaller, as it has the ability to be manufactured into a sticker shaped device that people can place onto objects without care. And with the new rise in wifi charging technology that uses radio waves within the air to charge, the Slate sticker could even power off of the wifi floating around in cities, prolonging its battery lifespan by close to two years!
How I built it
The Slate is built using the following devices:
- A GPS module with a built in ceramic antenna
- A Pro Mini Arduino board
- A BMP180 temperature sensor
- An Aadafruit M0 Lora module transmitting at 900mhz
- A 500mah lipo battery
The GPS module and the BMP180 temperature sensor are connected to the Pro Mini and forward data into it, which is then compiled into a string and sent through a software serial port into the Adafruit M0 (The M0 uses SPI because the feather M0 does not have compatibility with Software Serial). Once read by the Adafruit M0, it becomes the procedure of connecting to a Lora enabled gateway within the Philadelphia area, this is done by using a protocol known as OTAA (Over The Air Authentication) to connect to an IoT network known as the The Things Network.
The data is then displayed on a webpage, the temperature/humidity/pressure data is shown in a simple table and the longitude and latitude coordinates is placed into a google API enabled map for easy user interaction.
The exact details behind the Lora network are not simple, however the end result is a long distance radio with low power consumption.
Challenges I ran into
During the event, the Adafruit M0 Lora would not connect to the gateway and the GPS module was also having difficulty working. It was found out that the architecture of the building i was in, was actually interfering with the 900mhz frequency spectrum and canceling out outgoing and incoming signals. This issue did waste a bit of time, as i was attempting to solve an issue that could be solved without the location i was in.
Another issue i had was directly connecting the sensors to the Adafruit M0 Lora, as it turns out that the radio communicates with the arduino board using SPI and 12C pins, which is needed in order for the GPS and BMP180 to send data to the board. This was easily solved by connecting these sensors to a smaller pro mini and just having the pro mini forward the readings to the Adafruit M0 through serial interaction, which only requires one pin and freed up much needed resources.
A final issue i ran into was attempting to test this data, which required me going to an off sight location in order to properly connect to gateways and send the data into the internet. (Keep in mind the gateway i am attempting to communicate with is 6 miles away and the radio i am using does not have a dedicated antenna for transmission)
Accomplishments that I'm proud of
Getting the project to work overall is an accomplishment to me, as i am new to Lora networks and wireless communication within IoT. This meant that I had to learn a lot in order to get this radio up and working with the sensors, and the provided library for arduino was not ported to the board i was using. In the end though, the internet was of great assistance and i was able to properly send and receive data from the gateway within my vicinity.
What I learned
I learned a lot about Lora, GPS modules, Arduino serial interaction (SPI, 12C, serial, etc), and most of all i learned more about packet data on the internet, as in order to configure data i had to configure the packet in a certain way.
What's next for Slate: The new GPS Tracker
The next step for Slate is getting all of the much needed electronics to fit onto a flexible PCB, that way i dont have all of the extra hardware and i am only using what is needed to make the tag run. Once this is done, I want to incorporate wireless charging, either through QI compatibility or the new method of wifi charging, which would greatly extend the battery life of Slate.