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

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

Simple Message Queues (SMQ) is an easy to use "Internet of Things" IoT / M2M "Machine-to-Machine" publish subscribe connectivity protocol designed and optimized for embedded systems.

SMQ


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

Downloads:

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 following, copy, and paste into a console.
    wget https://simplemq.com/downloads/SimpleMQ.zip; unzip SimpleMQ.zip; 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).

How to setup your own secure IoT cloud server solution

Introduction

An introduction to the tutorials can be found on embedded.com and HackerBoards.com

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 ARM mbed development board such as the new Freedom development board FRDM-K64F. Renting an online cloud server will cost you as little as $8 a year and the mbed enabled Freedom development board is $35. 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:

mbed alternatives

In addition to mbed, you may use an ESP8266 or use our ready to use software packs for Keil. How to use ESP8266 is explained in our ESP8266 Arduino WiFi IoT Device to Cloud Setup video.

  • Phase 1: Prepare and test the mbed board
    1. Optionally; read the certificate management for embedded systems tutorial if you are new to certificate management
    2. Purchase a network enabled ARM Cortex mbed enabled development board such as FRDM-K64F
    3. Sign up for a free mbed account and login to the online web based IDE
    4. Insert the mbed board via USB to your computer and register the device
    5. Import the SharkMQ secure LED demo into your mbed workspace in the IDE
    6. Using the mbed web IDE, compile the imported SharkMQ example code (the bin file will automatically download to your computer)
    7. Insert the mbed board via USB to your computer and copy the bin file to the mbed USB drive
    8. Reboot the mbed board and make sure the board's Ethernet is connected to your network
    9. The mbed board will then reboot and connect to Real Time Logic's online public test broker
  • Phase 2: Setup your own server 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. Follow the Certificate Management for IoT tutorial and setup a dual certificate server, including the ECC certificate required for the device communication
    4. Using the online mbed IDE, open m2m-led-SharkMQ.c and modify the macro SIMPLEMQ_DOMAIN so it points to your own server
    5. Replace the root certificate in m2m-led-SharkMQ.c with the ECC root (CA) certificate you created in step 2
    6. Compile and download the new bin file
    7. Copy the bin file to your mbed board and reset the board
    8. The board should now connect to your own cloud server

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.

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.