IoT is revolutionizing the way companies do business – allowing them to become faster, smarter, safer, and more efficient. Whether your IoT application is getting data from industrial machines or you are making a new smart connected product, when it comes to IoT there are a lot of moving parts and you have to handle each one in the right way.
In this tutorial, we will look at the difficulties of developing a secure and connected product and how we can save cost and cut development time.
The system architect of an IoT project has to keep track of many moving parts. For the hardware design, he has to provide a platform for developing and prototyping the hardware. We all know that bugs are expensive when they have to be fixed after deployment, so the design process is critical. On the other hand, the design team should shorten the development time as much as possible.
Another aspect is the software. Developing software is easy, however, developing good, maintainable, and scalable software is extremely hard and complicated.
The architect has to choose a software platform that is easy to use and powerful enough to develop scalable software.
Lastly, let’s take a look at security. IoT devices are primarily concerned with getting and sending data. The complicated part is sending the data securely to your servers. This is especially tricky when you start mass production. You need to embed the device ID in each device securely and your cloud service needs to “recognize” and communicate with all of the devices simultaneously and have diagnostic information for each of them – in addition to the main functionalities of visualizing data, issuing procedure calls or over-the-air updates.
Zerynth – all-in-one IoT solutionSo, what does Zerynth provide? An all-in-one solution that lets the product owners and developers focus on their application logic, and lets Zerynth’s platform handle everything else from the hardware to the cloud.
Simply, Zerynth handles the hardware by providing flexible development boards, Expansion boards and SoM modules handle the software by providing Python-enabled Real-time OS that is easily and seamlessly integrated with the Zerynth Cloud.
For instance, let’s look at the code of a simple IoT application developed on the new Zerynth SDK V3.
from bsp import board
from zdm import zdm
from networking import wifi
from components.bme280 import bme280
ssid = "ssid"
passwd = "...."
bme = bme280.BME280(I2C0)
while True:
print("configuring wifi...")
wifi.configure(ssid=ssid,password=passwd)
print("connecting to wifi...")
wifi.start()
agent = zdm.Agent()
agent.start()
while True:
temp, hum, pres = bme.get_values()
agent.publish({"temperature":temp, "humidity":hum,"pressure":pres}, "test")
sleep(5000)
We notice that
- The code does not contain device credentials or certificates, because Zerynth hardware includes a secure element that secures the connection with the cloud through the one-time provisioning process.
- Networking is handled easily whether it’s Ethernet or Wifi. For Wifi, just add the needed SSID and PASSWORD and you’re connected.
- In this code, we are using the BME280 temperature and humidity sensor. It is supported in Zerynth with the BME280 software library.
As for the hardware, we are using the ZM1-DB board connected to the EXP-PROTO board.
We are using the BME280 temperature and humidity sensor.
For more information on our development boards, expansion boards, visit this page.
IoT Cloud – a complete platformZerynth Cloud is a complete platform designed for IoT applications.
From a single interface, you can manage IoT devices, store and visualize your data, and gain insights.
Access from anywhere on the cloud, in a secure and easy way.
IoT devices are not made only of hardware and firmware. They also have a unique cryptographic identity that links their physical existence with their virtual counterpart in the cloud. Let’s say that inside each and every Zerynth hardware device there is a secret key protected by a secure element that says “hey, I am device xyz”.
The process of inserting the secret key is called provisioning. Here’s a step-by-step guide to provision your device.
Now that we have provisioned the device, let’s create a new project. Copy and paste the code and click on Physical Device in the Zerynth control panel.
After the device is recognized, click on Run.
The console will compile and load the code to the development board.
Now let’s check our data in the Zerynth Device Manager.
From the Zerynth Device Manager tab, let’s open the device page:
The icon on the zm1db device will take you directly to the device page in zdm.
Let’s check our data in the data console.
FOTA updates in the Zerynth cloud are fail-safe and can be accessed from the ZDM GUI interface or from a Zerynth extension in VSCode.
For a step-by-step guide on how to handle FOTA updates in Zerynth, please refer to this tutorial.
We hope this tutorial was helpful, start developing with the Zerynth platform now using one of our development boards.
Comments