How to connect multiple devices to same Thing in AWS-IOT?

流过昼夜 提交于 2020-04-07 19:00:06

问题


I am working on a project to install 100+ nodes of temperature sensors in an area, all of which perform the same function. The data they publish is the sensor id and the reading. I am using AWS-IOT for the backend.

Now, to do so, I think I will need to create 1 'thing' per node in aws-iot which I believe is extremely hard to maintain and unscalable.

So my question here is, how to connect multiple nodes to same 'thing' in AWS-IOT so that the cluster is easy to manage. Is there any alternate way to manage the cluster efficiently? Any inputs are welcome. Thanks.


回答1:


Faced with a similar dilemma and the impracticality of creating too many 'things' on the AWS IoT administration console; I've done some research and found that connecting multiple devices to the same 'thing' is strongly discouraged by AWS.

Anyway its not possible to keep two different nodes using the same MQTT id connected to the same thing (the last connected node with the same id kicks out the previously connected node), although you can use your client ID with the help of some code.

I learned that actually you don't need a 'thing' to connect to AWS IoT, just a certificate will do; and that you can create elements on AWS IoT service by code.

So, in summary; facing a similar question myself, I ran across this information below, found it useful in my case and sharing it here. https://forums.aws.amazon.com/thread.jspa?threadID=234102




回答2:


It would seem that the only way to do that would be to create your own gateway that aggregates the data before sending it to AWS IoT. You can't have multiple MQTT connections with the same client ID.

Use the API to automate assignment of certificates and private keys to nodes. The sensor ID may be used as the thing name and MQTT client ID. It takes some work up front, but then you can leverage AWS IoT for all the housekeeping moving forward.




回答3:


You can use the same Thing with multiple clientId. You can use the sensor id as the clientId.




回答4:


You connect your sensors to AWS IOT, subscribe to a device Topic and start publishing data. And you start receiving data from all the sensors.

Now see, what is the problem here??? Problem: We don't know, which device sent which data?

Solution: There can be 2 solutions to this problem.

  1. You create multiple things and get data from the sensors separately from the separate device topic individual.(Which you already rejected)
  2. Second, solution is to embed the device id or clientID in the data which sensor is sending to AWS IOT. And create a Rule for that device topic on the AWS IOT to extract the data from the topic and save it in the DB with correct client ID. In this case Client ID will be used to distinguish data from the different sensors similar to primary key.

I hope this helps.

Thanks




回答5:


Use different clientId can distinguish the client. But looks like the is only a shadow data for the thing.That means shadow data can only be used when there is a single device associated with the thing. If there are multiple devices associated with the thing, then shadow data is not applicable.



来源:https://stackoverflow.com/questions/37576646/how-to-connect-multiple-devices-to-same-thing-in-aws-iot

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!