AWS Cannot download a root CA for IoT

Reader Query: 

When I’m trying to create a new certificate – I can see the page with 4 downloading links (keys and certificates).
Unfortunately, I can download all, except for root CA, because when I’m pushing the last – it throws me to AWS Documentation.

Solution:

The AWS documentation that the link is redirecting you to contains the Root CA certificates. The Root CA certificates are available under the “Server Authentication” section:
https://docs.aws.amazon.com/iot/latest/developerguide/managing-device-certs.html#server-authentication

Based on the signing key, the following certificates are available from the documentation page:

-> RSA 2048 bit key: VeriSign Class 3 Public Primary G5 root CA certificate (https://www.symantec.com/content/en/us/enterprise/verisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem)
-> RSA 2048 bit key: Amazon Root CA 1 (https://www.amazontrust.com/repository/AmazonRootCA1.pem)
-> RSA 4096 bit key: Amazon Root CA 2 (https://www.amazontrust.com/repository/AmazonRootCA2.pem)
-> ECC 256 bit key: Amazon Root CA 3 (https://www.amazontrust.com/repository/AmazonRootCA3.pem)
-> ECC 384 bit key: Amazon Root CA 4 (https://www.amazontrust.com/repository/AmazonRootCA4.pem)

If you are creating a new thing using the web console and downloading the credentials (device certificate, device public and private key, etc) then “Amazon Root CA 1” can be used as the root CA certificate.
While creating a new thing from the console,  please do not forget to click on the “Activate” button prior to proceeding to the “Attach a Policy” section.

Advertisements

Sensor calibration and importance of it

Sensor calibration is a method of improving sensor performance by removing structural errors in the sensor outputs. Structural errors are differences between a sensors expected output and its measured output, which show up consistently every time a new measurement is taken.

What is the purpose of the calibration?

Purpose of instrument calibration. Calibration refers to the act of evaluating and adjusting the precision and accuracy of measurement equipment. Instrument calibration is intended to eliminate or reduce bias in an instrument’s readings over a range for all continuous values.

How do you calibrate a temperature sensor?

Method 1: Ice Water

  1. Fill a glass with ice cubes, then top off with cold water.
  2. Stir the water and let sit for 3 minutes.
  3. Stir again, then insert your thermometer into the glass, making sure not to touch the sides.
  4. The temperature should read 32°F (0°C). Record the difference and offset your thermometer as appropriate.

Why is it important to calibrate?

Calibration is a comparison between a known measurement (the standard) and the measurement using your instrument. Typically, the accuracy of the standard should be ten times the accuracy of the measuring device being tested. However, accuracy ratio of 3:1 is acceptable by most standards organizations.

How to Think about the Internet of Things (IoT)

People have tried to define the Internet of Things. But as a hardware or software engineer, you already know the essential element: to build interconnected products.

Embedded systems are already playing a crucial role in the development of the IoT. In broad strokes, there are four main components of an IoT system:

  • The Thing itself (the device)
  • The Local Network; this can include a gateway, which translates proprietary communication protocols to Internet Protocol
  • The Internet
  • Back-End Services; enterprise data systems, or PCs and mobile devices

The Internet of Things from an embedded systems point of view

IoT systems are not complicated, but designing and building them can be a complex task. And even though new hardware and software is being developed for IoT systems, we already have all the tools we need today to start making the IoT a reality.

We can also separate the Internet of Things in two broad categories:

  • Industrial IoT, where the local network is based on any one of many different technologies. The IoT device will typically be connected to an IP network to the global Internet.
  • Commercial IoT, where local communication is typically either Bluetooth or Ethernet (wired or wireless). The IoT device will typically communicate only with local devices.

So to better understand how to build IoT devices, you first need to figure out how they will communicate with the rest of the world.

Bring your own thing API Sample MQTT application – How to add new sensor to the cayenne IoT Platform

Cayenne IoT Platform – Bring your own Thing API Example

This post is all about how to use the cayenne Bring your own thing
This sample application will read temperature and humidity from a DHT11 or DHT22 sensor and send the values to Cayenne using MQTT. The python MQTT client and Adafruit DHT sensor library will need to be installed for this script to run.

Install the MQTT client using “sudo pip install paho-mqtt”.

Install the Adafruit library using the commands below:

sudo apt-get install build-essential python-dev python-openssl
git clone https://github.com/adafruit/Adafruit_Python_DHT.git133
cd Adafruit_Python_DHT
sudo python setup.py install

What’s Connected

Raspberry Pi
DHT11
DHT22

Dashboard Screenshots

import paho.mqtt.client as mqtt
import time
import sys
import Adafruit_DHT

time.sleep(30) #Sleep to allow wireless to connect before starting MQTT

mqttc = mqtt.Client(client_id="")
mqttc.username_pw_set("username", password="")
mqttc.connect("mqtt.mydevices.com", port=1883, keepalive=60)
mqttc.loop_start()

topic_dht11_temp = "v1/username/things/clientid/data/1"
topic_dht11_humidity = "v1/username/things/clientid/data/2"
topic_dht22_temp = "v1/username/things/clientid/data/3"
topic_dht22_humidity = "v1/username/things/clientid/data/4"

while True:
    try:
        humidity11, temp11 = Adafruit_DHT.read_retry(11, 17) #11 is the sensor type, 17 is the GPIO pin number (physical pin 11)
        humidity22, temp22 = Adafruit_DHT.read_retry(22, 18) #22 is the sensor type, 18 is the GPIO pin number (physical pin 12)
        
        if temp11 is not None:
            temp11 = "temp,c=" + str(temp11)
            mqttc.publish(topic_dht11_temp, payload=temp11, retain=True)
        if humidity11 is not None:
            humidity11 = "rel_hum,p=" + str(humidity11)
            mqttc.publish(topic_dht11_humidity, payload=humidity11, retain=True)
        if temp22 is not None:
            temp22 = "temp,c=" + str(temp22)
            mqttc.publish(topic_dht22_temp, payload=temp22, retain=True)
        if humidity22 is not None:
            humidity22 = "rel_hum,p=" + str(humidity22)
            mqttc.publish(topic_dht22_humidity, payload=humidity22, retain=True)
        time.sleep(5)
    except (EOFError, SystemExit, KeyboardInterrupt):
        mqttc.disconnect()
        sys.exit()

Save this file to /home/pi/python/tempsensor.py and fill in your username, password, and client id.

You can also delete the DHT11 or DHT22 lines based on which sensor you are using or add additional lines to check more than 1 sensor.

The topic_dht lines will all need unique channels, so be sure the last digit in the string is unique “v1/username/things/clientid/data/ 1

For testing just run the file with “python /home/pi/python/tempsensor.py”.

After it is working correctly add the widget to the dashboard permanently by clicking the + in the upper right hand, then add the python file to your crontab with “sudo crontab -e” then type in “@reboot python /home/pi/python/tempsensor.py &” and save. Reboot and you should see the values on your MQTT dashboard.

Cayenne IoT Platform – complete steps to Connect the Raspberry Pi with Cayenne IoT Platform

Cayenne cloud and Raspberry Pi Connectivity establishment link attached with this post. Check out the below mentioned link and follow the steps to Launch your first IoT Project within a minutes

http://www.instructables.com/id/Cayenne-Raspberry-Pi-IoT-Simple/

Below link will talk about the cayenne IoT platform rules and triggers

https://pimylifeup.com/raspberry-pi-cayenne/

A quick start – Cayenne IoT Platform