Recurrent question where I usually see the wrong option taken by industrials: do I need to implement my own private network for m LPWA network ? In many case the wrong choice has been made due to a lack of understanding of network total cost of ownership. For sure I heard element about MY DATA privacy, but honestly, all the companies are putting added value data into the Cloud, so don’t tell me you unknown machine temperature is a sensitive data ?!? That said, let’s back to the true question : when does it make sense to create your own private network ?
As a backend developer, the Sigfox API is not a really good experience. This for multiple reasons and it is a good example on how a really good product can get a developer push-back just because of the interaction layer.
I can’t change the API itself (and its not y role) but as I was bored to use POSTMAN tool and the Sigfox backend documentation (who already used it will understand) I decided to spend some hours this week to rewrite most of the API endpoint into a clean open-api format into a Spring application to get benefit of the SpringFox swagger front.
This project is not fully terminated but already in place with the most used API endpoint. The next will arrive soon. Read mode to get access.
Following the previous post where we saw how to transmit data on Sigfox with an Arduino MKRFox1200, in the second part we will learn how to consume these data in a backend site. To make this simple we are going to implement a solution using Adafruit.io service. This service allows to create graphics from data received from an API. We will configure Sigfox backend to push device data to this API.
Arduino MkrFox1200 sounds like Arduino for Maker using Sigfox. This board is an official Arduino product, looking like Arduino Nano series (but not pin-compatible, longer and larger)
It is composed of a SAM D21E MCU (Microchip ARM Cortex M0) operating at 48MHz. It includes 256K flash memory and 32K of SRAM. We can consider this as an Arduino under steroid.
The Sigfox radio layer is composed by an ATA8520. This is a Microchip Sigfox module based on AVR MCU. This module is communicating with the SAM D21E module with a SPI bus. The radio module is supporting RCZ1 zone (Europe).
This board can be found in many eShop places for a price around 45€ including an antenna and 2 year of Sigfox network access.
In this Post we will see how to get started with this board and how start programming with it.
There are multiple ways to track something or someone. Cellphone are using different method to be able to give you a precise location in most of the situation. The more global one is GPS, it works anywhere on earth but do not really work indoor. It is also costly (about 8$ or more) and power consuming. Outdoor your usually have a precision of 15 meters. The less precise one is triangulation : a message received by different antennas will be located by the network in an area covered by all these antennas. This solution works anywhere the network is covering and do not need specific power other than for communicating. The precision is usually from 500m to 10km.
The last usual method we use is the one we are going to implement in this post : the WiFi positioning. The tracker is listening for the WiFi access point around and ask one of the existing database knowing most of the WiFi location to get a position. This is working thanks to the crowding effort all of us are doing with our smartphone of capturing WiFi around us and associated locations. The WiFi solution is working where WiFi is, so usually in the cities ; around buildings. It works well indoor, better than outdoor where WiFi is less active. The precision is about 30-50 meters. The power consumption is lower than GPS.
Sigfox is a LPWA (Low Power Wide Area) network covering about 45 countries (as today) dedicated to low power autonomous devices aka IoT. Asset tracking is one of the best use-case.
The use of Sigfox with a WiFi tracker is allowing to create a low-cost tracker device, autonomous on battery from month to years, getting benefit in 45 countries of a WiFi + network localization.
This post will explain how to get started in this technology by using two standard, easy to use and low cost components allowing to get your prototype for about $5 of hardware.
Sigfox is a really nice technology when you want to make a really quick experimentation in IoT. The Time To Hello World will take you less than 5 minutes and it makes it really easy.
That said after the POC comes the production, and the way you manage your Sigfox backend for production is not the way you build your quick & dirty front-end platform for the POC.
This post will introduce how to make your Production platform and what is the difficulty you need to consider. I’ll propose you some architectural solution I’ve put in place but they are one of the ways to implement it. I won’t detail the pre-packages PaaS solution as i’m not a big fan of them : in my point of view, they are firstly responding to the POC situation, but it is only my own opinion.
I’ve waited a long time to get it since I pledge on the kickstarter campaign but it’s now here and as all what TTN have done until now this it a really nice object.
The design itself is really good. You can easily fix it on a window or a wall.
You can hack this gateway a lot … by the way it is not yet my purpose.
And the installation process it so good.. You may understand I really liked it.
MongoDB is a NoSQL database and one of the main difference compared to relational DB is you can put in your collection documents with different structure. In fact you don’t really care about structure of documents and type of data you are storing.
This is particularly true when you start using your Mongo instance with langage like PHP or JS where the langage itself does not manage data type explicitly.
As a consequence your document format may not be optimized (like storing numbers in String and making search on them later) and once you decide to move your backend to a more structured language like Java you start to have to make this more robust and organized. At this point you may want to reformat your documents to match the right type, eventually update your previous documents to a new version.
This kind of operation can be done “easily” with Mongo scripting language. This post will details 2 of the current structure to manipulate and transform Documents.