I am already experienced with the Microsoft Azure Device Provisioning Service, which enables my devices to register themselfes through e.g. Certificates in the Microsoft Azure IoT Hub. That makes of course enrollment of thousand of devices easier.
I have no experience in Google Cloud Platform and i have seen that there is MQTT Broker and an IOT Core Service within GCP.
But i didnt get it and it does not seem to be, that the IOT Core Service offers a similar functionality to the Microsoft Azure Device Provisioning Service.
Is this correct? Or how could i enroll lots of devices in an GCP IoT Architecture with automatic device registry and "distribution" over multiple IoT Core Services?
You could take a look at the Registeries and Device APIs to do the same. Having said that, one api call equals creation of one device.
Related
So I have a product built using aws greengrass core and aws iot core. And I'm trying to migrate to Google Cloud Platform. I saw that basically, google cloud iot does the same thing as aws iot core. But I can't really find a google brick with a feature that enable devices to share data when they are not connected to the internet. Is it integrated with cloud iot core ? Or there is no equivalent features on google cloud ?
No, not natively. IoT Core from AWS and GCP have very similar capabilities, but GCP does not have any equivalent to Greengrass. You could implement this manually and still use GCP IoT Core, and leverage Gateways to implement the local bridge to GCP, but you have to do the heavy lifting of how to authenticate devices locally and handle the buffering and message brokering.
You can implement some of that logic and East/West traffic with the LFEdge projects such as EdgeX Foundry or FLEdge, and Open Horizon, but that seems out of scope of your question.
I am working on a project wherein a mobile app (Flutter app) should create a unique identity (IOT thing) of my IOT device machine (on AWS) as soon as the user logins onto the app and also it should establish a connection (and subsequent communications) with the isolated IOT device after its configuration (Somewhat similar to Google Home configuration process).
The process starts with user logging onto the app (using AWS Amplify/Congnito to automatically add the user account in the cloud). Subsequently, the app needs to configure the IOT device (ESP32) and send Wifi credentials of home network by connecting to ESP's WiFi AP. However, since both the app and IOT device are isolated from each other (except during the configuration process), I don't have much idea on how exactly will mobile app connect (creating a unique IOT thing automatically) and communicate with the isolated IOT device over AWS IOT cloud.
I have worked with some of the AWS services like AWS Lambda, DynamoDB, AWS IOT for quite a while, hence I am aware of the basics. One of the possible solutions for the above maybe Fleet Provisioning by a Trusted User feature provided by AWS IOT (I did read it's documentation, but still confused). We can also use ESP32's Bluetooth feature for the app to scan nearby devices with which it needs to connect with, but I am not sure how will the connection establish through AWS cloud.
Since I am a beginner to AWS cloud services, it'd be great if someone can provide a possible solution for the above in detail. Also if possible, please provide a solution which would work incase of a large-scale deployment of the above project.
The parts you may be missing are missing are 1) MQTT messaging, which is the IoT message broker service provided by IoT Core, and 2) the need for an application program interface to handle creating and activating devices.
MQTT is a lightweight and widely adopted messaging protocol that is designed for constrained devices.
Your devices (things) will need to communicate back to AWS via MQTT messages, which are captured and processed by the IoT Rules service.
These rules typically trigger Lambda functions, which implement the process logic you need for your application.
See https://mqtt.org/ and https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html
2} you will want to implement a simple API to handle device activation. The AWS API Gateway service makes it easy to implement APIs. For example, you can implement an endpoint for POST /device/ to create a device. That endpoint can trigger a Lambda handles device provisionsing.
I am new to Google Clout Iot core. I just tried the iot core, registered the device and published some data on a topic.
Now i am wondering is only Google functions are used to get/subscribe data from it? or can i also used the data published from a device directly into my applications e.g. node.js or python? like it is usually subscribed through a normal MQTT topic? I dont need a serverless architecture i want to use the data from google iot into my server and store/use it from there..
thanks a lot!
When a message arrives over MQTT or HTTP from a device over IoT Core, that message is published on a GCP Pub/Sub topic using the GCP Pub/Sub infrastructure. What this means is that you can develop a consuming application however you like as long as that application consumes the message from Pub/Sub.
The diagram shown here from the documentation is a good reference.
GCP exposes the API for Pub/Sub to be a subscriber. There are language bindings for a variety of languages.
Cloud Functions is typically seen as a serverless consumer of Pub/Sub messages as it scales to zero and can scale up if there is bursty load. However, there is nothing to prevent you from writing Compute Engine hosted applications or Container hosted applications which can act as subscribers.
References:
Cloud Pub/Sub documentation
Cloud Pub/Sub Client Libraries
I think your question is more on the architectural side of things. You can use IoT Core with something like Pub/Sub and write the data to Cloud Storage in order to later consume it with an application.
I would recommend you to check some of the diagrams from this page if you are interested in knowing which products you could use to best fit your needs.
I hope you find this useful!
I'm looking for something like AWS's device management functionality (https://aws.amazon.com/iot-device-management/) that exists on Google's Firebase service.
I found this: https://cloud.google.com/community/tutorials/cloud-iot-firestore-config
But I'm not sure if I can achieve the same functionality as with AWS IoT Device Management (I'm still new to Firebase).
Is there a Firebase equivalent to AWS IoT Device Management, specifically regarding onboarding and organization?
There is no equivalent in Firebase.
As has been mentioned, no, there's nothing directly in Firebase.
Have you looked at Cloud IoT Core? It has a lot of the features you're probably looking for in a device manager. From there, there are data pipeline tools (like Google Cloud Functions, or Cloud Dataflow) which can ferry the telemetry data from your devices into Firebase (or, potentially a better option, Firestore).
I did a session at the Google Cloud Next conference this year (2018) which talked about the end-to-end IoT application, and we published the code we built on stage which includes IoT device management, and used Cloud Functions to push the data into Firestore if you're interested. Link can be found here. The Cloud Functions that moved the data into Firestore are in the gcf folder. The device folder has the Python code we used on device to send telemetry up to IoT Core.
I have started looking into IoT and interested to know how to make IoT framework especially for a manufacturing process on cloud computing environment. I am not sure how to make a IoT framework , suppose i have four or five IoT sensors are being used in a manfucturing environment than how can i use them to create a framework on cloud such google or Azure etc.
Can anybody comment on it . much appreciated
Nhqazi
I think that there should be some explanation - let me prepare it for you.
There are different cloud providers which offers services dedicated for IoT solutions, for instance:
Microsoft Azure cloud offers: Azure IoT Hub
Amazon offers: AWS IoT
Google offers: Google Cloud IoT
Now each of theese service offers some tools to integrate them with IoT devices. This is I think what you are talking about. For instance Microsoft provides Azure IoT Hub SDK so you can use it to send data from your device to the cloud and from the cloud to the device.
Now if you have devices and sensors you can intgrate them with cloud services mentioned above. Here you can see how I integrated Raspberry PI2 device and motion sensor with Azure IoT Hub from Microsoft:
https://daniel-krzyczkowski.github.io/cloudyofthings/article1/index