IoT Tutorials for Embedded Developers

If you are an embedded programmer and have found many of the online IoT tutorials too abstract or providing too little practical value, then the following set of tutorials may be just for you. The following hands on articles include source code and working examples.

What is an IoT device?

An IoT device is simply a network enabled client that sends and/or receives data from an online cloud server. The data transmitted can be anything including sensor data and control messages. IoT device protocols include HTTP, MQTT, WebSockets, SMQ, OPC-UA and so on.

IoT Niche:

Our expertise is in (remote) device management and our IoT articles mainly focus on how to control and supervise devices/equipment in the field. For example, a light bulb that switches on by using a Smartphone app fits into this category.

Use an IoT Service Provider or Build Your Own IoT Platform?

Linux Logo

Have you considered which IoT service provider to use? Many developers may initially consider big providers such as Amazon and Azure. These providers are great if you plan on scaling to the millions, but in most cases, these providers are overkill. In addition, these providers tend to be very expensive to use. You may not have thought about setting up your own IoT solution on say a Virtual Private Server (VPS) or you may have thought that it is too complicated and difficult to maintain your own IoT cloud solution. In fact, setting up a cost effective IoT solution is very easy as long as you are OK with learning a few Linux commands. See the article Build Your Own Cost Effective IoT Platform if you are interested in exploring this option. You may also set up an IoT learning environment on your own computer as an initial test.

Private IoT Network

Industrial machines and equipment are often deployed within private networks for security reasons. Learn how to leverage IoT within a private network by using an On-Premises IoT Platform. An On-Premises IoT Platform is installed and run on computer(s) on the premises (the private network) of the organization using the software, rather than at a remote facility, such as at a cloud server somewhere on the Internet. See the article On-Premises IoT for details.

Private IoT Network

How to Scale an IoT Solution

SMQ IoT Cluster

At some point, you may have to scale the IoT solution or provide redundancy. A super simple and extremely cost effective way to scale an IoT solution is to use an IoT protocol that supports scaling by using round robin DNS. We provide an online IoT cluster demo including tutorials on how to set this up.

Device Management via IoT or Embedded Web Server?

WebSockets Behind Firewall

IoT and Embedded Web Server technologies both have their plusses and minuses. Reaping the benefits of both solutions and eliminating the negatives is possible. The article WebSockets Behind Firewall explains how this is possible.

IoT Security and Access Control

IoT Security

Security is super important in IoT solutions and all of the above tutorials incorporate the use of TLS. However, TLS is far from sufficient when it comes to securing a complete IoT solution.

Aonghasa

The DZone article Have We Forgotten the Ancient Lessons About Building Defense Systems goes into the IoT security in detail. Did you know that it is shockingly easy to intercept local network data?

How to connect to an MQTT cloud server using Mutual TLS Authentication

Mutual Transport Layer Security (mTLS) is a process that establishes an encrypted TLS connection in which both parties use X.509 digital certificates to authenticate each other. mTLS ensures that the parties at each end of a network connection are who they claim to be by verifying that they both have the correct private key. The information within their respective TLS certificates provides additional verification.

See the How to connect to an MQTT cloud server using Mutual TLS Authentication tutorial for details.

Are you are in the mood for hacking MQTT brokers?

If so, use our ready to use one button click MQTT exploit example. The MQTT exploit is the second example on our online tutorial server. The purpose with the MQTT exploit example is to show how dangerous it is to forget to consider layered access control when designing MQTT solutions. The above DZone article goes into this in detail.

Creating X.509 Chain of Trust

Learn the entire process of setting up the chain of trust for your IoT solution. The video, which is available on YouTube, provides a practical example that you can follow and setup on your own computer for learning purposes. The comprehensive video tutorial guides you through the process of setting up secure and trusted communication. After completing the hands-on tutorials, you will be an expert in using SSL for secure communication and how to create and manage SSL certificates.

Rapid IoT Device Client Development Using the High Level Lua Language

Check out how we rapidly designed an RTOS powered IoT client in the following video by using an onboard web server for the development of the IoT client. The web server is initially used for powering an onboard Lua IDE, which is later disabled in the final product, where only the IoT network client is needed.

IoT Enabled Thermostat With Native-UI and Web-UI

The SMQ Weather Application showcases the synchronization between a web-based user interface and the user interface of a device. The application is comprised of three components: the server application, the device (thermostat), and the browser-based user interface.

Please refer to the demo documentation for instructions on how to download the Windows demo executable and for information on how to synchronize all displays. Note that creating both a native UI and a web UI increases the cost as two separate user interfaces must be developed. However, modern web interfaces can easily replicate and provide the same user experience as any onboard UI, thus native UIs are not necessary with modern device design.

Discover More:

No matter what your background or project goals, we're here to help you find the perfect solution! Are you a maker looking for the right tools? A startup trying to get off the ground? A large business seeking new software solutions? We've got you covered.

If you have any questions or just aren't sure which product is right for you, don't hesitate to reach out. Our team is dedicated to helping you overcome your hardware/software challenges and find the best solution for your needs. Let us know how we can help - we'd love to lend a hand!


OPC-UA

OPC-UA Client & Server

An easy to use OPC UA stack that enables bridging of OPC-UA enabled industrial products with cloud services, IT, and HTML5 user interfaces.

Edge Controller

Edge Controller

Use our user programmable Edge-Controller as a tool to accelerate development of the next generation industrial edge products and to facilitate rapid IoT and IIoT development.

On-Premises IoT

On-Premises IoT Platform

Learn how to use the Barracuda App Server as your On-Premises IoT Foundation.

Embedded Web Server

Barracuda Embedded Web Server

The compact Web Server C library is included in the Barracuda App Server protocol suite but can also be used standalone.

WebSocket Server

Microcontroller Friendly

The tiny Minnow Server enables modern web server user interfaces to be used as the graphical front end for tiny microcontrollers. Make sure to check out the reference design and the Minnow Server design guide.

WebDAV Server

Network File System

Why use FTP when you can use your device as a secure network drive.

HTTP Client

Secure HTTP Client Library

PikeHTTP is a compact and secure HTTP client C library that greatly simplifies the design of HTTP/REST style apps in C or C++.

WebSocket Client

Microcontroller Friendly

The embedded WebSocket C library lets developers design tiny and secure IoT applications based on the WebSocket protocol.

SMTP Client

Secure Embedded SMTP Library

Send alarms and other notifications from any microcontroller powered product.

Crypto Library

RayCrypto C Library

The RayCrypto engine is an extremely small and fast embedded crypto library designed specifically for embedded resource-constrained devices.

Embedded PKI Service

Automatic SSL Certificate Management for Devices

Real Time Logic's SharkTrust™ service is an automatic Public Key Infrastructure (PKI) solution for products containing an Embedded Web Server.

Modbus

Modbus TCP client

The Modbus client enables bridging of Modbus enabled industrial products with modern IoT devices and HTML5 powered HMIs.

Posted in Whitepapers