项目简介
本项目是一个基于C语言开发的OPC UA与MQTT桥接系统,旨在实现OPC UA服务器数据的采集,并通过MQTT协议将采集到的数据发送到MQTT Broker,同时也支持通过TCP协议发送数据。该系统具有灵活的配置性,支持在多种嵌入式系统上运行。
项目的主要特性和功能
- OPC UA服务器连接:支持与OPC UA服务器的连接,采集数据并进行处理。
- MQTT通信:通过MQTT协议将采集到的数据发送到MQTT Broker。
- TCP通信:支持通过TCP协议发送数据。
- 配置灵活:通过config.json文件灵活配置设备、服务器和节点信息。
- 跨平台支持:基于C语言开发,支持在多种嵌入式系统上运行。
安装使用步骤
1. 环境准备
在开始之前,确保已经安装了以下依赖:
bash
sudo apt-get install mosquitto
json-c和paho.mqtt.embedded-c项目已包含,无需额外安装。
2. 修改CMakeLists.txt
在open62541_mqtt/mqtt/CMakeLists.txt文件中,修改以下路径:
cmake
set(EXTER_MQTT_ROOT "/home/mint/paho.mqtt.embedded-c" -> set(EXTER_MQTT_ROOT "/home/test/factory-thing/paho.mqtt.embedded-c")
set(EXTER_JSON_ROOT "/home/mint/json-c" -> set(EXTER_JSON_ROOT "/home/test/factory-thing/json-c")
add_executable(opcua-mqtt-bridge -> add_executable(factory-thing)
target_link_libraries(opcua-mqtt-bridge -> target_link_libraries(factory-thing)
3. 构建项目
在项目根目录下执行以下命令进行构建:
bash
mkdir build
cd build
cmake .. -DUA_ENABLE_SUBSCRIPTIONS=true -DUA_ENABLE_METHODCALLS=true -DUA_ENABLE_NODEMANAGEMENT=true -DUA_ENABLE_NONSTANDARD_MQTT=true
make
构建完成后,会在build/bin目录下生成config.json、libopen62541.a和opcua-mqtt-bridge文件。
4. 修改config.json
在open62541_mqtt/build/bin目录下,修改config.json文件以配置设备、服务器和节点信息。示例配置如下:
json
{
    "device-configuration": {
        "Device": {
            "deviceID": "sensor0"
        }
    },
    "server-configuration": {
        "opcuaServer": {
            "EndpointURL": "opc.tcp://localhost:16664",
            "publishIntervalUs":1000000,
            "asycRequestSupported": false,
            "method": "poll"
        },
        "mqttBrocker": {
            "enable": true,
            "ip" : "192.168.0.197",
            "port": 1883,
            "topicBase": "topic"
        },
        "tcpSever": {
            "enable": false,
            "ip": "192.168.2.104",
            "port": 5555,
            "sampleIntervalUs": 100,
            "singleshot": true
        }
    },
    "node-map": [
        {
           "name": "test",
           "enable": true,
           "method": "poll",
           "intervalUSec": 1000000,
           "topic": "test_opcua",
           "mqtt": true,
           "format": "json",
           "nodes": [
                { "id": "ns=1;s=sound_data", "topic":"sound", "alias": "" },
                { "id": "ns=1;s=temp_data", "topic": "temp", "alias": "" },
                { "id": "ns=1;s=tilt_data", "topic": "tilt", "alias": "" }
            ]
        }
    ]
}
5. 运行项目
在open62541_mqtt/build/bin目录下,运行以下命令启动桥接系统:
bash
./opcua-mqtt-bridge --config config.json
通过以上步骤,您可以成功运行基于C语言的OPC UA与MQTT桥接系统,实现数据的采集与传输。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】