Hi everyone, my name is Ross Satchell from Microchip and welcome to the lab. Today we're gonna check
out our GPS tracker demo using the new AVR-IoT Cellular Mini. So let's get started. First of all, we're going to go to Google and we're going to put into Google "AVR-IoT Cellular Mini On-Boarding" and that's going to take you
to the Google search page. And all we're going to do is skip the sponsored ads at the top and the first hit that you
get that's not a sponsored ad is the one we are looking for. And so you can go through
the the on-boarding here where you were first set
up the AVR-IoT board, but in this particular sample
we're going to be talking about the GPS tracker. So we're going to jump straight into the documentation link here. Okay, so it takes us to the documentation and one of the great
things about this board, it has full Arduino support
through the the DxCore, Arduino core that's been written for this. And so we can walk
through the introduction and everything else, but
I'm gonna jump straight to the GPS tracker here under examples. And let's start with the introduction. And so it goes on to tell
you that you can create a simple GPS tracker using the
AVR-IoT Cellular Mini board and also an Adafruit GPS FeatherWing. And it just clips straight on top. And so the application
will send your position or the position of the GPS
tracker to a web server and that will then display the
track position on a browser. And so here's an example of
what our friends in Norway did, but we're gonna be showing
you some of our our people in a moment who are actually
going out to get me a coffee. So the resources you need
for this are you need the AVR-IoT Cellular Mini
board, which is this guy here. And then you need an
Adafruit GPS FeatherWing and then a battery, and that's all it is. And then you need a USB-C Cable to program it. And so the, the assembly
is really quite simple. We're just going to plug this guy on here and we're going to connect our USB-C Cable Place that there, alright? So that's the assembly done. So moving on to the next part,
the Arduino Sketch itself. So the GPS tracker uses
Adafruit GPS library and to install that, you
just go to the Arduino IDE under the tools manage libraries just like you normally do
with all of your other, all of your other Arduino libraries. And you just search for
Adafruit GPS library and install that. And then we have the code. So we're gonna jump over
to the code in Arduino and I have that opened already. Let's make that full
screen, whoops, there we go. And so I'll quickly walk
through the code here. So I have my URL that we're
going to be sending the data to. And then we have a GPS
function here that just returns information like
your latitude, your longitude and the current time. And then we have a state of the device. So it starts in a not connected state and then we initialize the GPS and it's just setting up the UART connection between the the Cellular Mini board and the GPS Feather there. And we send it some commands
to tell it to update every one second and to not
use an external antenna, in this particular case, because we're I do not have
an external antenna connected. Then we configure our HTTP. And so we are using port 8080. And then to send data, it just
sends the latitude, longitude as a string and then the
time and it's quite simple. Then it connects to the network
and then at the end of that it returns the state
as being connected. Then we have passing the GPS messages and it just basically goes to a timestamp and returns your GPS time in terms of your day,
month, year, hour, minute. And then also returns the
quality of the GPS fix and also the number of
satellites that you have. So now we can jump down
to the setup function. And so all it does is
configure power down. Because it's going to go to
sleep in between GPS readings and then the AVR-IoT Cellular board has some extra sensors on the board and there is a color sensor, and there's also a temperature sensor. And we're not using those. So hence why we are shutting those down. You can see the shutdown functions here. And then we initialize our
GPS, we initialize our HTTP. And then in our loop we
just pass the GPS messages and then we switch through
a switch statement which is of the state of the system. And if it's not connected, then we try to connect to the network. And then once it is connected, then it goes and gets a GPS
fix and then sends that command so that we can then
work with that GPS data. And then once it's connected with a fix, it then sends the actual location and at the end of it we
have a power down command. And at the moment we're
turning it to power down for one second because
we wanna see regularly where our people are
driving along the road. And that's all of the code. It's really quite simple. Okay, so my coworkers have
one of these devices with them in the car, but I'm gonna
program this one here and it's just a matter
of setting your port and I'm on port 30 and
then uploading the code to the device, so let's get that started. It's the usual Arduino compiling first and then working to upload
the code to the board, and we just upload like we
normally would in Arduino. So that goes and compiles everything and then starts linking
everything together. There we go, and it's
writing to the board now. And now it's reading back
the data to make sure that the right was good, all right? And then we saw the LED's flash there and then the first thing
it's going to do in a moment is the blue light comes on and it's looking for a cell signal. Well we're in a area with poor
cell reception at the moment so that may get a signal, but
my coworkers in the vehicle, that will turn solid blue and then the it'll start
working on getting a GPS lock and then it will start
sending the data through. So we can see my coworkers
who have been driving down Chandler Boulevard and they're approaching Cooper Road there. And so let's give them a call
and see what's happening. Hey guys, how you going? Good, how about you, Ross? Pretty good, pretty good. So yeah, we were watching you
drive down Chandler Boulevard and it looks like you've
just pulled into a car park. Just what's that on the corner of Chandler Boulevard and Cooper Road? Yes sir. So, can you tell me what's happening with the GPS tracker at the moment? Yeah, so it's sending periodic updates over a battery
connection to show our location. Awesome, it looks like
it's sending one right now. I think we've got the cell lock and it just had a green
light there for a moment and then it's gone to sleep
for a moment, excellent. So we should see, yep,
I've just got another pin, I zoom right in, I can see you are in the
car park here, awesome. So before you guys head back do you wanna grab a
coffee and maybe a muffin? Will do.
Sounds good. Awesome, all right, see you guys soon. Alright, bye bye
Bye. So as you have noticed
we are using a web server to host this website and we used a company called Digital Ocean and we set up a droplet as our web server. And so all you have to
do is set something up similar to that, some form of web server and then download from
the documentation page the web server zip file and then unzip it and then just follow the,
install the requirements and then you just run the Python app and that outputs the IP
address that this will be using and you then just copy that, paste it into the Arduino code that you're using in
the place of HTTP domain and you only need the IP address. So you don't need http://
and you don't need the port, it's just the numbers
separated by periods. And then in your browser you
simply go to that IP address and the map will appear and
show the positions recorded. And it also shows arrows
drawing from previous positions to the most recent positions so that way you can see the
path that has been taken. And so we can see now Grace and
Josh are out on Cooper Road. If I zoom in there, I can see they come out of the car park back on the Cooper Road. And it's Friday afternoon, so there's probably a
bit of traffic there. So if you wanna build this yourself, you can go to Microchip Direct and order a AVR-IoT Cellular Mini and then you can also go to Adafruit and there's a link here in
the documentation to that. And we'll also post a link
in the description below where you can order
yourself a GPS FeatherWing. With the GPS FeatherWing, you can choose to use an external antenna, the Adafruit do seldom. We found it wasn't really
necessary for this application. But if you're in an area
where you're not getting a terribly great GPS signal,
then you may need to use that. We also used an external 18,650 battery with a JST connector to
just plug it directly in the port here on the
AVR-IoT Cellular board. But you can use any type of
lithium rechargeable battery. And then when you need to recharge it, you simply plug the USB-C cable
in and to some power source and the onboard battery charger will then handle the
battery charging for you. You don't need to do anything extra. So if you make something
really cool with this, please post a link to it and let us know 'cause we'd love to see
what you're doing with it. So that's all for us today. Thanks for watching and
we'll see you in the lab for the next demo.