GPS Tracking Using Helium, Azure IoT Hub, and Power BI
About this project
Helium exists to help developers build low power, secure, connected devices. In this project, we’ll walk through using the Helium Atom Prototyping module with an Arduino Zero and Adafruit Ultimate GPS Breakout to seamless send data to Azure IoT Hub and then on to a Power BI report to visualize the data.
You can learn more about Helium’s low power, secure, long range wireless products and buy all the required hardware at helium.com/store.
The first thing you’ll need to do is attach your Helium Atom Prototyping module to the Helium Atom Arduino adapter, and then to your Arduino. We’re using an Arduino Zero for this guide, but you can use a Uno, Due, M0 or any other Arduino you’d like.
Once you’ve connected the Atom to the Arduino, you should have something that looks like this:
Next, we’ll need to attach the Adafruit Ultimate GPS Breakout to the Arduino sandwich. We’re going to use a breadboard here just to make things easier and clearer, but you could just as easily wire the GPS breakout directly to the Arduino. Your wiring should be in the form of:
Arduino 5v -> GPS VIN
Arduino GND -> GPS GND
Arduino D12 -> GPS TX
Arduino D10-> GPS RX
You should have something that looks like this once you’re done:
Ok, now that we have the Arduino side of things setup we need to get the Helium Element connected and powered up. If you have a Cellular Element, you just need to power it on and wait for the light to turn a teal color. That’s it. If you have an Ethernet Element, or if you prefer to use an Ethernet connection for your Cellular Element, plug the Ethernet port of your Element into a DHCP-enabled port like the back of a cable modem or wireless router. Once you power up the Element and the light on the front of the Element turns green, you’re good to go.
Now that you’ve got the Arduino and Atom hardware setup, and the Element is powered up and connected, it’s time to set this all up in the Helium Dashboard.
Helium Dashboard & Channels
First, we need to add our Atom and Element to our user account in the dashboard. If you don’t have a user account but have equipment in hand, please email us at [email protected], otherwise login with the credentials you received when you purchased your hardware from Helium.
Once logged in, we’ll need to first activate our Element. Clicking on Elements on the left, then Add New in the top right gets you to the right place. Type in the last 4 of the MAC address and the HVV from the label on the back of the Element, give it a name, and optionally add some tags. Click Activate Element to get it going.
We’ll then need to repeat the same process for the Atom. Again, click Atoms on the left, and Add New, and supply the MAC and HVV from the Atom label, optionally add some tags, and click Activate Atom.
Next, we’ll need to create an Azure IoT Hub to act as an ingestion point to Azure for all your Helium Atom devices. We’re going to assume you have an Azure account already, if not you’ll need to create one.
Once you’ve logged in to Azure, we’re going to create an IoT Hub. Click on the + in the top left, then Internet of Things, then IoT Hub:
You’ll need to make some choices about how you want to set your IoT Hub up, and then hit Create. We recommend that you select Pin to Dashboard at the bottom to make it easier to find later:
Once you’re done and the hub is finished deploying (this might take a few minutes), click on it from your dashboard. To setup the Helium Channel we’ll need one piece of information from within the hub. From within the IoT Hub choose Shared Access Policies on the left, select RegistryReadWrite, and then click the copy icon next to Connection string—primary key on the right. This will copy the connection string to the clipboard which we’ll be using back at the Helium Dashboard. Be careful not to share this string with anyone you don’t trust. (We’re just using a temporary hub in this example.)