1 Star 1 Fork 0

daxnet/humidty

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

树莓派开发环境配置

安装Azure IoT C SDK

安装依赖项

本示例使用C语言开发,需要在树莓派上安装Azure IoT C SDK以及相关的库。

sudo apt-get update
sudo apt-get install -y git cmake build-essential curl libcurl4-openssl-dev libssl-dev uuid-dev ca-certificates

确保cmake使用2.8.12及以上版本:

cmake --version

确保gcc使用4.4.7及以上版本:

gcc --version

获取Azure IoT C SDK源代码

https://github.com/Azure/azure-iot-sdk-c/releases 获取所需安装版本的release tag,然后,将代码克隆到本地,并初始化git submodule:

git clone -b <lts_mm_yyyy> https://github.com/Azure/azure-iot-sdk-c.git
cd azure-iot-sdk-c
git submodule update --init

<lts_mm_yyyy>为需要使用的代码分支的名称,跟release tag一般是匹配的,只不过分支名称是小写的。

编译和安装Azure IoT C SDK

使用下面的命令编译Azure IoT C SDK:

cd azure-iot-sdk-c
mkdir cmake
cd cmake
cmake ..
cmake --build .  # append '-- -j <n>' to run <n> jobs in parallel

编译成功后,进入cmake目录,然后安装依赖库:

sudo make install

配置Visual Studio Code

vim比较熟悉的话,可以直接在树莓派中编辑源代码文件。也可以选择在Windows、Mac或者Linux下,使用Visual Studio Code,通过SSH远程访问的方式连接到树莓派,进行代码编译和调试。

建议在Visual Studio Code中安装微软官方的C/C++ Extension Pack插件。这里分享一个简单的tasks.jsonlaunch.json,用于基于GDB的C语言调试配置。

tasks.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "Build",
            "command": "/usr/bin/gcc",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "${fileDirname}/rpi_message.c",
                "-o",
                "${fileBasenameNoExtension}",
                "-liothub_client",
                "-liothub_client_mqtt_transport",
                "-lumqtt",
                "-lprov_device_client",
                "-lprov_auth_client",
                "-lhsm_security_client",
                "-lutpm",
                "-laziotsharedutil",
                "-lpthread",
                "-lcurl",
                "-lssl", 
                "-lcrypto",
                "-lm",
                "-lparson",
                "-lprov_mqtt_transport"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "preLaunchTask": "Build",
            "program": "${fileDirname}/main",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Set Disassembly Flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

如果希望在命令行进行编译,可以直接执行build.sh脚本。

参考资料

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/daxnet/humidty.git
git@gitee.com:daxnet/humidty.git
daxnet
humidty
humidty
master

搜索帮助