Google recently take the IoT Core to Public Beta. IoT Core is one of the product lines of Google entry to the IoT arena. It is a device registry for controlling and tracking the IoT devices. On top of this, it provides connectivity to the rest of the Google services. Below is the standard diagram provided by Google for the IoT Core.
As we can see, there are 10 big parts in this entire chain (including the edge devices). Some parts are more complicated than the others. For this article, I will start the journey by exploring the following path.
I will be using an ESP8266 running on the Mongoose OS because Mongoose OS has native support for Cloud IoT Core. This will reduce the work required to perform the authentication between the device and the IoT Core.
As we can see, there are 10 big parts in this entire chain (including the edge devices). Some parts are more complicated than the others. For this article, I will start the journey by exploring the following path.
I will be using an ESP8266 running on the Mongoose OS because Mongoose OS has native support for Cloud IoT Core. This will reduce the work required to perform the authentication between the device and the IoT Core.
ESP 8266 & Mongoose IoT Core setup
Mongoose OS website has a set of setup instructions on configuring the devices to connect to IoTCore. The Mongoose OS example stopped at when the message is successfully delivered to PubSub. The PubSub can be configured to trigger a Cloud Function to perform additional operations such as interpreting the data and send back an MQTT message to light up an LED.
For this post, I will have a simple Cloud Function that received the message from PubSub and logs the result to Stack Logger.
At every 60s, the ESP8266 will put the device status on the queue. The queue name at the device has to be the following convention:
/devices/{device.id)/events
This is the end result, at Stackdriver Logging, the message will be saved in the log.
Beside IoT Core, Google has another product Android Things. Android Things are used in devices with more computing power e.g Raspberry PI. Are they complimentary or competing products?
Update 1: Integration with Cloud IoTCore using UDOO SBC.
For this post, I will have a simple Cloud Function that received the message from PubSub and logs the result to Stack Logger.
Cloud Functions
Cloud Functions is Google version of "Serverless" web applications. For this setup, I have created a simple cloud function that the PubSub will trigger when a message arrived and logged to Stackdriver (Google Logger). Sample code below:
/**
* Background Cloud Function to be triggered by Pub/Sub.
*
* @param {object} event The Cloud Functions event.
* @param {function} callback The callback function.
*/
exports.iotPubSub = function (event, callback) {
const pubsubMessage = event.data;
const name = Buffer.from(pubsubMessage.data, 'base64').toString();
console.log(name);
callback();
};
At every 60s, the ESP8266 will put the device status on the queue. The queue name at the device has to be the following convention:
/devices/{device.id)/events
This is the end result, at Stackdriver Logging, the message will be saved in the log.
Concluding Thoughts
Cloud IoT Core is still in beta but there are many features available but not integrated. I think there maybe some companies that will develop a product/service that make boarding of devices simpler.Beside IoT Core, Google has another product Android Things. Android Things are used in devices with more computing power e.g Raspberry PI. Are they complimentary or competing products?
Update 1: Integration with Cloud IoTCore using UDOO SBC.
Comments
Post a Comment