项目简介
本项目是一个基于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】