littlebot
Published on 2025-04-14 / 1 Visits
0

【源码】基于C语言的OPC UA与MQTT桥接系统

项目简介

本项目是一个基于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.jsonlibopen62541.aopcua-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】