Wilson Mar bio photo

Wilson Mar

Hello. Join me!

Email me Calendar Skype call 310 320-7878

LinkedIn Twitter Gitter Google+ Youtube

Github Stackoverflow Pinterest

Touch and it talks for you


This article contains my notes about hooking up sensors to Amazon’s IoT (Internet of Things) cloud services. This makes use of AWS “real” and fun, especially for kinesthetic learners.

I want you to feel confident that you’ve mastered this skill. That’s why this takes a hands-on approach where you type in commands and we explain the responses and possible troubleshooting. This is a “deep dive” because all details are presented.

Like a good music DJ, I’ve carefully arranged the presentation of concepts into a sequence for easy learning, so you don’t have to spend as much time as me making sense of the flood of material around this subject.

Sentences that begin with PROTIP are a high point of this website to point out wisdom and advice from experience. NOTE point out observations that many miss. Search for them if you only want “TL;DR” (Too Long Didn’t Read) highlights.

Stuck? Contact me and I or one of my friends will help you.

Lowest cost IoT

Amazon provides perhaps the lowest-cost IoT device: a $19.95 Limited Release Programmable AWS IoT Button. Mine came August 3, 2016.

aws-iot trojan button 20180810-168x196-i11.png Its price is actually steep compared with brand-name Dash buttons from Amazon. They’re free (for Prime members) in that after you buy one for $4.99, you receive a credit with your first purchase with it. (Hold on while waiting for it to arrive)

NOTE: this guy brags he re-purposed the Dash by intercepting its ARP request, but doesn’t show how. The device uses port 8443. Click here to test if it’s open on your network.

BTW, Amazon also has a $50 wand to scan barcodes and listen to you begging for stuff. An Apple/Android phone is needed to activate the device.

Other buttons

If you want additional capability in a button, look at the $49 “Internet Button” from Particle.io. It uses the same Broadcom 802.11b/g/n wi-fi chip as in Amazon Dash, Nest Protect, and LIFX. It has 4 tactile (directional) buttons to issue outbound events, and receives inputs to control 11 RGB LEDs, plus a ADXL362 3-axis accelerometer. All without any wires or soldering.

Kwik (lock makers) is also making IoT buttons.

Flic.io offers four buttons for $99. They may be worth $25 each if you consider that they are powered by repleaceable watch batteries, and connect via Bluetooth to their mobile apps (by Shortcut Labs AB). So no nerdy setup like AWS requires. Their buttons also have a removeable sticky film that’s removeable for cleaning. However, this puts the buttons within a closed ecosystem. To choose an action, Click, Double click, and Hold. (Too bad it doesn’t act like a locator beacon as well)

Signal Range

QUIZ: Which type of transmission has further range? Bluetooth or WiF?

The standard range of “class 1” Bluetooth devices (transmitting at 100mW) is about 100 meters or 328 feet, which is comparable to that of an 802.11b WLAN device.

A typical wireless router in an indoor point-to-multipoint arrangement using 802.11n and a stock antenna might have a range of 32 metres (105 ft).

Battery life?

As with any electronics, the current limitation is battery life and hassles with charging.

WARNING: Amazon’s Dash button uses wi-fi (2.4 Ghz) so its battery may not last as long as other buttons using Bluetooth Low Energy data transmission.

PROTIP: Battery status (remaining voltage) is sent to Amazon every time you press the button. When the device battery runs out of charge, there is no way to recharge or replace the battery. The battery is rated to last for 1,000 presses. That’s over 2 years if you press it once a day.

This teardown found Dash buttons contain an Energizer brand AAA Lithium battery.

The brains of the Dash button is a 32-bit, 120MHz 64-pin ARM Cortex M3 microprocessor from ST Microelectronics (STM32F205RG6), containing 128 KB of RAM, 1 MB of flash memory, and 16 MB of SPI flash.

Single-button tricks

  • Hackster.io AWS IoT button starter project

  • This bathroom needs attention, Yuck!

    PROTIP: The trouble with any re-programmable unit is there is incentive for it to be stolen. But (at $5) is the worth the $500 it take to put it behind a wall?

  • Honey I’m home! Send a signal to IFTTT.com’s Maker Channel, though which you can specify all manner of actions (send voicemail, SMS text, Skype, etc.). Setup instructions below.

  • Track task (chore) completion time so if it’s not done a reminder can be sent out via Slack, Facebook, Twilio, or an internal company’s application.

  • I fell down and can’t get up! The Amazon button has a loop so it can be warn at the end of a lanyard.

  • Voting machine (what’s for lunch?)
  • Start the coffee maker from your bedstand

  • Switch a smart light bulb on and off (party mode).

    The Philips Hue light requires a hub.
    LIFX bulbs do not.

  • Mute TV without the delay of figuring which of 20 buttons to press on the remote
  • Remote control home appliances
  • Remote control Netflix
  • Order your favorite pizza for delivery

  • Hail a Uber car

  • Honk the horn on your Tesla from inside your house

  • Make a smart watch with AWS IoT

Intro Lab

Amazon has a free online self-paced lab on their QwikLab platform named Introduction to AWS Internet-of-Things (IoT) runs a simple therometer IoT device simulator on Amazon EC2 to generate and publish sample sensor data to an AWS device gateway. Skills taught include building a simple rule to permit publishing of a notification to an AWS SNS topic when the temperature of the device is greater than a defined threshold. Connecting an email address with the SNS topic results in an email notification when the threshold is met. The device shadow is then updated so the device will “turn on the air conditioning”, resulting in lowering temperatures.

The tutorial begins with obtaining a private SSH certificate (PEM for Mac, PPK for Windows) to login into an EC2 instance using PuTTY in Windows or a Terminal command such as this on Mac:

ssh -i “mykey.pem” ec2-uer@ec2-12-12-123-123.compute-1.amazonaws.com

Once in, the simulator in invoked and a certificate is created using a command that begins with:

   aws iot create-keys-and-certificates --set-as-active \
   --certificate-pem-outfile certs/certificate.pem.crt \
   --public-key-outfile certs/public.pem.key \
   --private-key-outfile certs/private.pem.key \
   --region us-east-1

PROTIP: Since the above command is done within Amazon’s landscape, it can automatically inform Amazon’s IoT Resources database. This is why it appears when you go to the IoT Resources site.

PROTIP: Amazon’s IoT Button is authenticated a different way, as a server with its own direct access to the public internet.

Configure the IoT Button

  1. PROTIP: Know the SSID name and password to your regular network’s WiFi because the AWS Button is setup like another computer communicating directly to the public internet.

    Generate Thing certificates

  2. Login to Amazon’s own IoT Resources Console at


  3. Select a location (region) from the upper right corner. Initially “N. Virginia” was the only region supporting Lambda. There is now:
    • US West (Oregon), EU (Ireland), EU (Frankfurt), Asia Pacific (Tokyo)
    • Jun 23, 2016, Sydney in Asia Pacific
    • Jul 25, 2016, Asia Pacific (Singapore)

  4. Click “Create a resource” for the create panel.

    PROTIP: Remember these icons and what they mean because the Resources page uses them without annotation.

  5. Click “Create a thing”.

    NOTE: Error messages appear on the lower left of the screen.

  6. Specify a name such as “AWS-iot-button-01”.

    PROTIP: Zero-pad numbers because you’ll want more than one ;)

  7. Click “Create” button for the black panel to open at the right.

    If the black part of the screen isn’t visible, click the “?” on the right edge to expand it.

  8. Click “Connect a device”.
  9. Check “NodeJS”. The text on screen:

    First, you will need to create and download security credentials for your device. The following steps will help you to create and download security credentials (a certificate for authentication, and a policy that defines what the device using this certificate is allowed to do).

    You can generate a certificate with 1-click. When you generate a certificate, we will also generate a default security policy named iotbutton_G030......N0AV-Policy. You can modify this security policy at any time through the ‘Resources’ panel of this console.

  10. Click “Generate certificate and policy”.
  11. Click “Download public key” to your Downloads folder.
  12. Click “Download private key”
  13. Click “Download certificate”
  14. Click “Confirm & start connecting”.

    An example:

      "host": "ABCDEFG1234567.iot.us-east-1.amazonaws.com",
      "port": 8883,
      "clientId": "iotbutton_G030....1N0AV",
      "thingName": "iotbutton_G030.....1N0AV",
      "caCert": "root-CA.crt",
      "clientCert": "427c7ac25f-certificate.pem.crt",
      "privateKey": "427c7ac25f-private.pem.key"

    NOTE: The first part of the host string (such as “ABCDEFG1234567”) is the Enpoint Subdomain.

    NOTE: Certificate file prefix (example “427c7ac25f”) will be different every time keys are generated.

  15. Highlight the text on the screen and copy it.

  16. When you return to the Thing menu, notice that each certificate key appears above the hand icon.

    Resources page

    Pressing the blue link to the right of “AWS IoT:” for the Resources screen:

    PROTIP: To avoid error messages, deactivate before deletion.

    PROTIP: Check one item at a time to perform an Action.

    Configure Button

    Configure the AWS IoT Button to use your Wi-Fi and these resources to connect to AWS securely:

  17. To place the button into configuration mode, press and hold the button down for 5 seconds until it flashes blue.

    This activates a small web server inside the button.

  18. PROTIP: One teardown video found inside a Dash button a digital microphone (24-bit 12S Analog Devices ADMP441) used for ultrasonic data transmisson during setup. So do setup in a quiet place (away from music, fans, transformers in fishtanks, etc.).

  19. Navigate to your computer’s Network settings page, Open Network Preferences,

    On a Mac, click the network icon on the top menu of icons. to the button’s Wi-Fi network SSID shown, such as:

    Button ConfigureMe - 977

  20. Configure your computer’s Network settings to the button’s Wi-Fi network SSID shown.

  21. Click “Show password” and type the last 8 digits of the device serial number (such as “8351N0AV”) as the WPA2-PSK password. Click Join.

  22. Click the link to open in new tab.

  23. Enter your local network’s Wi-Fi SSID and password.

    PROTIP: This means the Amazon IoT Button communications like another laptop computer, directly connected (exposed) to the public internet.

  24. Click “Browse” next to Certificate and select the …-certificate.pem.crt file you just downloaded above.
  25. Click “Browse” next to Private Key and select the …-private.pem.key file you just downloaded above.

  26. Copy the Endpoint Subdomain from before.

  27. Copy the Endpoint Region from region selected before.

  28. Check the box to agree to the terms and conditions. This should result in an endpoint generated, such as:


  29. PROTIP: Copy the end-point generated for your device, such as:

    Save it in a text file along with the certificates.

  30. Click “configure” (tiny button).

    WiFi Router

  31. This isn’t mentioned on the Amazon page: Ignore it if get see a router page (such as “Dlink”, etc.) such as:

    AWS IoT Websites

  32. Make sure your browser can still connect to an external webpage, such as

    NOTE: The AWS IoT service is its own category among other AWS service groupings.

    provides a list of URLs related to IoT.


Now that you can connect to the internet with your “secret decoder ring”, it’s time you know its tremendous power.

Why Amazon IoT?

The real power of Amazon’s IoT is that it is part of the most popular cloud services for enterprises and others.

This diagram from Amazon’s IoT Intro course illustrates the loose coupling of components in Amazon’s cloud. IoT devices publish telemetry data to an IoT Topic. Topics notify its subscribers when a trigger is identified by a IoT rule. Rules can trigger Amazon’s other services.

More importantly, its early start and popularity means AWS has become the most mature of clouds, with the most experienced people who have learned how to work with it.

AWS IoT Rule Actions lists code examples to interact with the services listed above.

How the Button fits in

This provides a description of components described in the Quickstart tutorial
lists system components:


We’ll be describing how to work with each component below. But for now, here’s a techy overview of each component.

  • Device gateway enables devices to securely and efficiently communicate with AWS IoT. It’s especially needed when there are many devices at a location.

  • Security and Identity service provides shared responsibility for security in the AWS cloud. Your things must keep their credentials safe in order to send data securely to the message broker. The message broker and rules engine use AWS security features to send data securely to devices or other AWS services.

  • Message broker provides a secure mechanism for things and AWS IoT applications to publish and receive messages from each other.

    PROTIP: To publish, use the HTTP REST interface with an Access Key ID and Secret Key from code developed using the SDK or from the AWS CLI or AWS Signature Version 4. Each ID would be associated with IAM users, groups, and roles. Alternately, sign-in via Facebook using Amazon Cognito Identity which generates temporary key pairs (Access Key ID and Secret Key).

    PROTIP: To publish and subscribe, use either the MQTT protocol directly or MQTT over WebSockets, using X.590 certificates. MQTT is more light-weight than HTTP.

  • Rules engine provides message processing and integration with other AWS services. You can use a SQL-based language to select data from message payloads, process the data, and send the data to other services, such as Amazon S3, Amazon DynamoDB, and AWS Lambda. You can also use the message broker to republish messages to other subscribers.

  • Thing registry (aka Device Registry) organizes the resources associated with each thing. You register your things and associate up to three custom attributes with each thing. Associate certificates and MQTT client IDs with each thing to improve management and troubleshooting of things.

  • Thing shadow (aka device shadow) refers to a JSON document which stores the current state information for a thing (device, app, and so on). Note this does NOT contain a history of past statuses (what others call a “digital twin”).

    icon state
    desiredstate desiredstate
    reportedstate reportedstate
  • Thing Shadows service provides persistent representations of things in the AWS cloud. You can publish updated state information to a thing shadow, and a thing can synchronize its state when it connects. Things can also publish their current state to a thing shadow for use by applications or devices.

Email on button click

  1. Get on the AWS Lambda console at

    The “configure-triggers?bp=iot-button-email” in the URL is equivalent to going to the AWS Lambda console at
    https://console.aws.amazon.com/lambda/home, click “Create a Lambda function”, click “Select blueprint”, then find and select “iot-button-email”. Its description is “An AWS Lambda function that sends an email on the click of an IoT button.””

  2. For IoT Type, select “IoT Button” (model JK76PL),

  3. Type in Device Serial Number (DSN) without spaces from the back of the device.

  4. Type in Rule Name: “AWS-IoT-single-button-email”.

    PROTIP: Use dashes instead of spaces. Specify the type of button pushed in the name (single, double, long).

  5. Check Enable trigger.

  6. Create a SQL statement:

    SELECT * FROM 'iotbutton/+'
  7. Check “Enable trigger”.
  8. Click “Next”.

  9. Specify a function name such as AWS-IoT-single-button-email

  10. For Description, enter something like “An AWS Lambda function that sends an email on the click of an IoT button.”.
  11. For Runtime, leave it “Node.js 4.3”.

    QUESTION: Where to get Node script to email?

  12. Replace “my_email” with the email address you want to :

    const EMAIL = 'my_email@example.com';  // TODO change me
  13. Type a Role Name such as “IoT-AWS”.

    WARNING: No spaces in Role Names.

  14. Scroll down to “Role*” and select “Create new role from template(s)”.

  15. For Policy templates, select “AWS IoT Button permissions”.

    PROTIP: From Permission definitions for templates detailed here, the AWS IoT Button permissions” are:

     "Version": "2012-10-17",
     "Statement": [
             "Effect": "Allow",
             "Action": [
             "Resource": "*"
  16. Click Next.


  17. Return to this screen by logging into:

    PROTIP: A big question about many IoT devices is what happens when the network is not available.

    Does the device cache the user action for broacast later?

    Does the system store delayed transmissions with the time of user action rather than the time when data can be transmitted?

    PROTIP: Local storage is done by IoT Gateway servers which are also called fog nodes in a fog network.

    Amazon CloudWatch Settings

  18. Click Settings at the upper-right blue menu.

    NOTE: CloudWatch is disabled by default because IAM permissions are needed.


  19. Click Create a new role.
  20. Type in a Role name that’s unique, such as “custom_aws-iot-button-01”.
  21. Select the Debug log level initially.


Alternatively, to send an SMS on DOUBLE tap.

  1. Go to SNS in the AWS console and create a SNS topic.

  2. Define the lambda function to send the SMS.

  3. Add a subscription to the topic For SMS delivery to a cell phone number.

See https://www.socialcustomer.com/2016/05/how-to-set-up-an-aws-iot-button.html

Additional things

PROTIP: Once you get the Button working with one third-party API, you can add context from additional sensors and use other APIs.

Other device starter kits specifically for AWS include the $169 Intel Edison and Grove IoT Starter Kit Powered by AWS from Seed with sensors for indoor environments.

If you already have an Arduino board, not listed among Amazon’s Start Kits is the $85 Seeed Starter from the Amazon Store


Take this route on a LONG press of the Button.

IFTTT.com provides a user-interface to specify triggers and actions without programming.

  1. Create your IFTTT Maker Channel at

    Create an account if necessary.

  2. PROTIP: Copy your IFTTT Maker Channel Key and save it somewhere in a list of AWS IoT Dash buttons.

  3. Create a recipie on

  4. Click “this”.
  5. Type “maker” in the Search Channels field.
  6. Click on the Maker icon when it appears.
  7. Click “Receive a Web Request”.
  8. Type in Event Name “AWS 1 SINGLE”, then click “Create Trigger”.

    PROTIP: Even if you have don’t have more than one button, you may in the future. Use a black permanent marker to write a large circled number to uniquely identify each button.

  9. Click “that” (action).
  10. Scroll to see all the possibilities, but pick one. In this example, let’s send a simple SMS text to your phone.
  11. Type “sms” in the Search field.
  12. Click “SMS” (not “Android SMS”).
  13. Click “Send me an SMS”.
  14. Replace the sample message text with the following:

    AWS 1 SINGLE pressed. IFTTT Maker Channel  triggered.

    Note the “” is substituted with what you typed in.

  15. Click Create Action.

  16. Short the sample Recipe Title to “AWS #1 SINGLE Press”, then click Create Recipe.

  17. Optionally, repeat the above steps to create recipies for DOUBLE and LONG instead of SINGLE press.

    Lambda to IFTTT Forwarder

    Create a Lambda function to forward events from your button to IFTTT. Create a new Lamdba resource named “AWSIoTButton” and add the following code to it:

  18. Get on the Amazon Lambda console for your region at
  19. Click “Create a Lambda function”.
  20. Scroll down among blueprints to click “Skip”.
  21. Click the dotted line box to select.

  22. Type in Rule Name: AWS IoT to IFTT.
  23. For SQL statement: TODO?
  24. Click “Enable trigger”.

  25. In the Configure function page, type (with no spaces) a Name such as “AWS-IoT-to-IFTT”.
  26. For Runtime, leave it “Node.js 4.3”.
  27. Highlight the whole code inline window to erase it, then copy this and paste it:

    var IFTTTkey = "YOUR KEY here";
    var request = require('request');
    //this is called when the AWS Button is pressed and event data is passed as well
    exports.handler = function(event, context) {
     console.log("Received AWS Button event: " + event.clickType + ". Firing IFTTT Maker Trigger...");
     request('https://maker.ifttt.com/trigger/' + 'AWS-'+ buttonState + '/with/key/' + IFTTTkey, function (error, response, body) {
         console.log("Complete! Response: ", response.statusCode);
  28. Replace “YOUR KEY here” with your key shown above.
  29. In Role, click “Choose and existing role” to “Select new role from template(s)”.
  30. In Role Name, type “AWS-IoT-to-IFTT”.
  31. In Policy templates, select “AWS IoT Button permission”.
  32. Click Next.
  33. Click Finish.

  34. In the AWS IoT Dashboard https://console.aws.amazon.com/iot/ click the ENABLED item named “iotbutton_…“Rule.
  35. In the right pane, click “Lambda Action”.
  36. Select the “AWS-io-button” function we created earlier.

  37. You can leave the first SNS function or remove it if you choose.

### Manual Test cases #

When you click the AWS Dash IoT button, it sends a signal through your wi-fi, over the public internet, and into the AWS cloud.

The AWS Dash IoT device recognizes 3 click types:

  • DOUBLE (press the button twice in quick succession)
  • A LONG clickType is when the first press lasts longer than 1.5 seconds.

  1. Click the button once.

  2. Click the button twice quickly.

  3. Hold down the button.

    Color of lights

    Color Meaning
    Solid Orange No Wi-Fi configured
    Blinking Orange Pre-DHCP error occurred
    Blinking Red Post-DHCP error occurred
    Blinking White Connecting to Wi-Fi, getting IP address, connecting to AWS IoT
    Blinking Blue Soft AP mode
    Solid Green Successfully connected to Wi-Fi and published a message to AWS IoT
    Pulsing Color (rcoybgmp) AWS IoT Shadow User defined Sequence
    Pulsing Red Battery Low
    Solid Red Battery Dead
    Solid Red Fatal internal error occured

    Blinking pattern

    Blinking pattern Error
    Short short short There was an error connecting to the configured wireless network.
    Short short long There was an error obtaining an IP address from the network.
    Short long short There was an error performing the host name lookup. This can be the result of not being able to reach the DNS server or an incorrectly configured AWS IoT endpoint subdomain.
    Short long long Cannot connect to AWS IoT. This can be an issue with the network, but is most likely not an issue with the certificates.
    Long short short Cannot establish a secure connection with the server. This error is most likely due to an unknown or inactive certificate.
    Long short long Received HTTP 403 Forbidden This error is most likely returned because the certificate does not have permission to publish to that topic.
    Long long short There is a problem sending to or receiving from AWS IoT. This is most likely just a networking error.
    Long long long Received an unknown HTTP response from AWS IoT.

    Examine CloudWatch Logs


Losant IoT Cloud


Samsung ARTIK Cloud

Samsung provides a vendor-neutral cloud service.

  1. Begin from https://artik.cloud/my/new_device

  2. Select “Amazon Dash Button Proxy”.

    Samsung defines a “Proxy” as “Software running on an always-on computer on the local network of the device”.


  3. Click “Connect device”.

  4. Click the name you assigned for a chart menu.

  5. Click “ButtonPressed” for charts about it at https://artik.cloud/my/data


rule https://docs.aws.amazon.com/console/iot/rules Rules Engine provides the logical thinking

action https://docs.aws.amazon.com/console/iot/rules/create-rule actions

control unit publishes commands

A sample rules which are SQL syntax commands:

   SELECT * FROM 'iotbutton/+' WHERE state='ERROR'

NOTE that standard single quotes are used, not the left and right leaning ones.






available in several programming languages.

Things (Devices)

The breath of Things imagined from the zip file downloaded from Amazon’s Icons page:


The two standards bodies in IoT are the Thread Group (formed by ARM, Samsung, Qualcomm, and Google Nest) and OCF (Open Connectivity Foundation), formerly the OIC (Open Interconnect Consortium) and the Microsoft-backed AllSeen Alliance.

Microsoft earlier released its open-source IoTivity bridge to connect OIC tools with the AllSeen Alliance’s AllJoyn APIs to talk to OIC-compatible IoT devices.


One distinguishing character of each device is the networking protocol it uses.

MQTTprotocol MQTT is AWS's protocol of choice is 30 years old but is fault tolerant, has small footprint, and efficient in bandwidth" AWS GM says in this video. See the MQTT NodeJs sample project.
HTTPprotocol HTTP
HTTP2protocol HTTP2

More on MQTT and HTTP protocols

AWS IoT Endpoint/topics/url_encoded_topic_name?qos=1

A sample WebSockets:


BTW, Amazon does not yet support other protocols used with IoT such as CoAP the Constrained Application Protocol defined as RFC 7252. It was designed to carry REST calls for machine-to-machine (M2M) applications such as smart energy and building automation. It can accept XML, JSON, and a derivative of JSON for taggable binary without Base64 encoding, called COBR Concise Binary Object Representation defined as RFC 7049.


The first page of the AWS IoT Developer Guide has this diagram:

PROTIP: You do not need to Click to Download the AWS IoT Node.js SDK (file aws-iot-device-sdk-js-latest.zip) at
because most developers obtain the SDK by using the Node Package Manager which detects and updates versions:

npm install aws-iot-device-sdk

This contains a gulpfile.js and a package.json file for implementation by NPM. That means the Gulp app needs to be installed as well.


PAC = programmable automation controllers (for local “Edge computing”)

QUESTION: Connect to leading SCADA gateways of Schneider, Honeywell, etc.

Social Media


links to https://aws.amazon.com/about-aws/events/

Articles about this:

  • http://www.computerworld.com/article/3102846/internet-of-things/internet-of-things-early-adopters-share-4-key-takeaways.html

  • https://industrial-iot.com/2016/08/infor-announces-iot-platform-inforum-2016/

  • http://searchaws.techtarget.com/tip/Push-the-AWS-IoT-Button-for-noncritical-tasks

  • http://www.slideshare.net/AmazonWebServices/getting-started-with-aws-iot-september-2016-webinar-series

More on IoT

This is one of a series on IoT:

  1. IoT Acronymns and Abbreviations

  2. IoT Apprentice school curriculum
  3. IoT use cases
  4. IoT reminders prevent dead mobile battery
  5. IoT ceiling dumper

  6. IoT text to speech synthesis
  7. IoT AWS button
  8. Intel IoT
  9. IoT Raspberry hardware
  10. IoT Raspberry installation

  11. IoT Clouds
  12. Samsung IoT Cloud

  13. Predix basics
  14. Predix installation
  15. Predix services
  16. Predix programming