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.
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.
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.
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.
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.
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.
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.
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?
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.
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.
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.
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.
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.
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!
Expedite your IoT and edge computing development with the "Barracuda App Server Network Library", a compact client/server multi-protocol stack and toolkit with an efficient integrated scripting engine. Includes Industrial Protocols, MQTT client, SMQ broker, WebSocket client & server, REST, AJAX, XML, and more. The Barracuda App Server is a programmable, secure, and intelligent IoT toolkit that fits a wide range of hardware options.
SharkSSL is the smallest, fastest, and best performing embedded TLS stack with optimized ciphers made by Real Time Logic. SharkSSL includes many secure IoT protocols.
SMQ lets developers quickly and inexpensively deliver world-class management functionality for their products. SMQ is an enterprise ready IoT protocol that enables easier control and management of products on a massive scale.
SharkMQTT is a super small secure MQTT client with integrated TLS stack. SharkMQTT easily fits in tiny microcontrollers.
An easy to use OPC UA stack that enables bridging of OPC-UA enabled industrial products with cloud services, IT, and HTML5 user interfaces.
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.
Learn how to use the Barracuda App Server as your On-Premises IoT Foundation.
The compact Web Server C library is included in the Barracuda App Server protocol suite but can also be used standalone.
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.
Why use FTP when you can use your device as a secure network drive.
PikeHTTP is a compact and secure HTTP client C library that greatly simplifies the design of HTTP/REST style apps in C or C++.
The embedded WebSocket C library lets developers design tiny and secure IoT applications based on the WebSocket protocol.
Send alarms and other notifications from any microcontroller powered product.
The RayCrypto engine is an extremely small and fast embedded crypto library designed specifically for embedded resource-constrained devices.
Real Time Logic's SharkTrust™ service is an automatic Public Key Infrastructure (PKI) solution for products containing an Embedded Web Server.
The Modbus client enables bridging of Modbus enabled industrial products with modern IoT devices and HTML5 powered HMIs.