Mako Server's Integrated Internet of Things (IoT) Protocols

Simple Message Queue (SMQ) is an easy to use "Internet of Things" IoT / M2M "Machine-to-Machine" publish subscribe (pub/sub) connectivity protocol designed and optimized for embedded systems. SMQ is an IoT protocol specifically designed for performing remote device management. With SMQ you can control any number of devices via one Mako Server instance. The Mako Server instance can be deployed in a private network or run as an online cloud server. You can also create a hybrid cloud/private network setup based on the SMQ cluster technology.


Server Code and Client JS libraries:

The Mako Server includes the SMQ broker and the SMQ client JavaScript library smq.js.

Download C Client Source Code:

Commands for automatically downloading, compiling, and running the SMQ device example program:

  • Windows: Download and run the DOS batch script: DownloadAndCompileSimpleMQ.bat
  • Linux & Mac: Click the gray area below, copy, and paste into a console.
    wget; unzip; cd SimpleMQ;make; ./m2m2-led
  • The example program connects to our online broker. After testing with our online broker, change the URL in the C code, recompile, and test with your own broker (your copy of the Mako Server).

    See the SMQ tutorials for more information or visit the SMQ online broker demo.

    How to setup your own secure IoT cloud server solution

    Have you ever wondered what is required for setting up your own complete secure and encrypted IoT solution, including the cloud server, the device source code, and selecting hardware for your device? If so, you may want to take a look at the collection of tutorials and software we have prepared for learning how to setup a complete secure/encrypted IoT client and server solution.

    The solution includes renting a low cost online cloud server and using a low cost embedded development board. Renting an online cloud server will cost you as little as $8 a year and a device can be as low as $3. You do not need to invest in any additional tools or software. Our test results indicate that the low end cloud server (64Mbyte) is able to maintain 10,000 connected IoT devices, making the solution very competitive for small scale operations and for test/learning purposes.

    The steps required for setting up your own complete (secure) IoT solution are as follows:

    Phase 1: Setup your own server (SMQ broker) solution
    1. Optionally, see video below for an introduction on how to create certificates
    2. Follow all steps in the cloud server tutorial, including setting up an RSA certificate for browser communication
    3. Optionally, follow the Certificate Management for IoT tutorial and setup a dual certificate server, including the ECC certificate required for the device communication
    Phase 2: Install the SMQ C client stack on a device

    Our recommendation is to use a low cost ESP8266 as the IoT device. The ESP8266, which can be purchased for less than $3, is a low cost WiFi SoC clocked at 80MHz. You may initially use the non secure SMQ client. It is somewhat easier to use the non secure SMQ client initially before moving on to using the secure SMQ client, if required. The non secure SMQ client for ESP8266 is available for the easy to use Arduino environment and the secure (SSL/TLS) SMQ client is available for esp-open-rtos, a FreeRTOS/lwIP based development environment. We provide an easy to use SDK for esp-open-rtos. The following video shows how to use the IDE.

    Certificate Management Video Tutorial

    The following video shows how to create SSL certificates for the IoT solution by using the Certificate Manager Tool that is included in the Mako Server tutorials. The video shows how to create an Elliptic Curve Cryptography (ECC) certificate for the server, how to install the certificate in the server, and how to make the clients connecting to the server trust this certificate. The Mako Server in this video is installed on a private/personal computer on a private network for test purposes. You can apply the same method when you create an ECC certificate for your online server. Setting up a dual certificate server is not included in the video; thus, refer to the above tutorials for the dual certificate procedures.

    Additional IoT Projects

    The Christmas Light Controller is a fun project that lets you provide public access to your outdoor lights during the holiday season. Perfect for homeowners, parties, café, restaurants, and church displays to let visitors select a number of lighting transitions.