【Luckfox幸狐 RV1106 Linux 开发板测评】09 mqtt broker和客户端连接测试
RV1106及RV1103采用Cortex-A7 CPU 及高性能MCU,内置瑞芯微自研第4代NPU,运算精度高,支持int4、in8、int16混合量化,其中int8算力为0.5TOPs,int4算力可达1.0TOPs
RV1106及RV1103可支持2-3路MIPI/DVP输入,是经济型双目视觉产品优选方案。
在音频处理方面,瑞芯微RV1106及RV1103采用智能音频方案,支持回声消除、语音降噪、哭声检测、异常声音检测等,支持高清语音,增强声音采集及远距离拾音。
RV1106以及RV1103内置Audio codec、MAC PHY、RTC等,提供内置DDR3L(内存最大为256MB)的QFN封装以及无内置DDR的BGA封装。
一、在buildroot里面加入mosquitto和paho-mqtt-c 选项,并对buildroot
cd sysdrv/source/buildroot/buildroot-2023.02.6/
make luckfox_pico_defconfig
make menuconfig
选择mosquitto和paho-mqtt-c
make savedefconfig
然后在该目录
make
编译
cd ../../../../
luckfox-pico$ ./build.sh lunch
luckfox-pico$ ./build.sh
重新烧录固件
二、测试 mosquitto
用adb打开两个窗口一个订阅,一个发布
mosquitto_sub -h localhost -t "test/#" -u hanmeimei -P root -i "client1"
mosquitto_pub -h localhost -t "test/abc" -u book -P root -i "client2" -m "good,successfull"
用mqtt.fx1.7测试
如果rv1106做broker pc连接不上 但板子自己里面可以用使用localhost发送和订阅,用ip(如192.168.30.110)不行 。
如果pc做broker rv1106能发送和订阅 。
解决方法:修改msquitto.conf,因为最新的msquitto是直接默认使用内部的连接 外部连接不了。
要外部连接必须直接设置:
allow_anonymous设置 为true
设置 listener 为 实际端口 比如1883
三、paha-mqtt轻量级客户端程序
- 编写程序
程序实现温度采集和adc采样送报送mqtt
订阅消息控制led的活动 代码如下
- 建立一个cmake
修改CMakelist.txt如下
z@z-virtual-machine:~/rv-xxxx/rv1106-spinand/c/mqtt_prj$ cat CMakeLists.txt
#*******************************************************************************
# Copyright © ALIENTEK Co., Ltd. 1998-2021. All rights reserved.
#
# 顶层CMakeLists.txt
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# and Eclipse Distribution License v1.0 which accompany this distribution.
#*******************************************************************************/
cmake_minimum_required(VERSION 2.8.12)
project(MQTTClient C)
message(STATUS "CMake version: " ${CMAKE_VERSION})
message(STATUS "CMake system name: " ${CMAKE_SYSTEM_NAME})
message(STATUS "CMake system processor: " ${CMAKE_SYSTEM_PROCESSOR})
# 设置可执行文件输出路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
# 定义可执行文件目标
add_executable(mqttClient mqttClient.c)
# 指定MQTT客户端库头文件路径、库路径以及链接库
# ***大家需要根据MQTT的实际安装路径设置***
target_include_directories(mqttClient PRIVATE /home/z/rv-xxxx/rv1106-spinand//luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/)#MQTT头文件搜索路径
target_link_directories(mqttClient PRIVATE /home/z/rv-xxxx/rv1106-spinand/luckfox-pico/sysdrv/out/rootfs_uclibc_rv1106/usr/lib/) #MQTT库文件搜索路径
target_link_libraries(mqttClient PRIVATE paho-mqtt3c) #MQTT链接库 libpaho-mqtt3c.so
3,cmake和 make
4,编译传到板子,mqtt.fx1.7.1测试:电脑可以接收到板子发来得mqtt消息
5.node-red连接rv1106
总结:mosquitto broker和paho-mqtt轻量级客户端的使用必须buildroot配置,并且重新编译和更新内核。mosquitto使用要设置mosquitto.conf 相关参数。paho-mqtt的使用要编写使用paho-mqtt的库和api编写c程序,交叉编译后上传到板子。如果是只做客户端就可以只用paho-mqtt。如果是只是做broker也就只需要mosquitto,当然mosquitto也是可以做客户端的,这里没有详述。
本文来自论坛,点击查看完整帖子内容。