如何在ROS上使用Azure IoT中心节点?

时间:2019-05-09 07:52:29

标签: python c++ ros azure-iot-hub azure-eventhub

我正在做一个结合机器人技术和云计算的项目。 从简单开始,我目前将树莓派与Ubuntu和ROS Kinectic结合使用,并通过一些伺服电机和传感器控制arduino。为了监视传感器数据,我想使用适用于Azure IoT Hub的Python SDK将Raspberry连接到Microsoft Azure Cloud。

这可以通过创建一个订阅“传感器”主题的节点并将接收到的数据发送到Azure IoT中心来完成。

我在Github上找到了一个Azure IoT HuB节点,但不知道如何使用它或在其中找到文档:https://github.com/microsoft/ros_azure_iothub

我想知道是否有人对此节点有一些建议/经验吗?有文件吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这是使用python将树莓派连接到Azure IOT集线器所需要做的步骤

1)设置您的PI

对于设置,您可以使用此link在pi上启用SSH。

在Pi上启用I2C 使用下面的链接启用I2C。 https://www.raspberrypi.org/documentation/configuration/raspi-config.md

2)将传感器与PI连接

3)下载并设置引用的模块

  1. 将客户端应用程序克隆到本地:

    sudo apt-get install git-core
    

    git clone https://github.com/Azure-Samples/iot-hub-python-raspberrypi-client-app.git

由于Python的Azure IoT开发工具包是[SDK for C] [azure-iot-sdk-c]的包装,因此,如果需要或需要从中生成Python库,则需要编译C库。源代码。

cd ./iot-hub-python-raspberrypi-client-app
   sudo chmod u+x setup.sh
   sudo ./setup.sh

在上面的脚本中,我们运行不带参数的./setup.sh,因此shell将自动检测并使用已安装的python版本(搜索顺序2.7-> 3.4-> 3.5)。另外,您可以使用参数指定要使用的python版本,如下所示:sudo ./setup.sh [--python-version | -p] [2.7 | 3.4 | 3.5]

Known build issues:

1.) On building the Python client library (`iothub_client.so`) on Linux devices that have less than **1GB** RAM, you may see build getting **stuck** at **98%** while building `iothub_client_python.cpp` as shown below

``[ 98%] Building CXX object python/src/CMakeFiles/iothub_client_python.dir/iothub_client_python.cpp.o``

If you run into this issue, check the **memory consumption** of the device using `free -m command` in another terminal window during that time. If you are running out of memory while compiling iothub_client_python.cpp file, you may have to temporarily increase the **swap space** to get more available memory to successfully build the Python client side device SDK library.

您可以参考示例代码here

希望有帮助。