4.搭建消息服务器(网页和开发板)

  • 由于搭建消息服务器(流媒体服务器和开发板)存在局限性,决定直接搭建web端与板端的mqtt消息服务器

web与开发板端到端进行通信优势在于:
开发板可以发送心跳包消息给WEB,WEB进行可视化开发板状态和媒体通路信息。
也可以发送RTSP数据流给流媒体服务器,再通过webrtc协议发送给WEB,WEB进行观看实时数据流。
而之前流媒体服务器和开发板消息服务器问题在于,开发板需要使用mqtt协议,先发送到流媒体服务器,让流媒体服务器做了不应该做的事情。
然后流媒体服务器通过sctp协议再发送给网页,也需要把视频数据发给网页。网页发数据给板子,也是需要经过流媒体这个中间人进行转发。
所以应该直接搭建web端的mqtt。

真实的场景可能会存在的问题,客户电脑配置比较差。
因此流媒体服务器是要搭建在开发板的,N路IPC的输入数据源通过国标/RTSP协议发送网线发送到AIBOX开发板
然后开发板的流媒体服务器进行转换之后,送给AI进行推理,然后推理结果反馈在原图上并且硬件编码,再通过rtsp协议推流到流媒体服务器
流媒体服务器通过webrtc发送给网页预览以及开发板的心跳包发给流媒体服务器。

Linux下安装EMQX服务器

之前已经安装过emqx的mqtt服务器了,可以通过ps -axu | grep emqx查看是否开启。

#重新安装方法
curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash
sudo apt-get install emqx
sudo systemctl start emqx

sudo systemctl emqx start    #启动
sudo systemctl emqx stop     #停止
sudo systemctl emqx restart  #重启 

打开浏览器可以配置mqtt服务器信息,url为:192.168.0.62:18083
本地ip:192.168.0.62,端口号默认为18083
默认用户名和密码:用户名:admin,密码:public

  • 更多可以参考:https://download.youkuaiyun.com/blog/column/10192120/134290374。

可以实现mqtt web和ubuntu之间能否相互订阅消息,从而通信。

板子如何实现mqtt客户端。

git clone https://github.com/eclipse/paho.mqtt.embedded-c
#修改点1:Cmakelist
#set(CMAKE_C_COMPILER "交叉编译工具链绝对路径/aarch64-none-linux-gnu-gcc")
#set(CMAKE_CXX_COMPILER "交叉编译工具链绝对路径/aarch64-none-linux-gnu-g++")

#修改点2:修改hello代码,路径为MQTTClient/sample/linux/hello.cpp
## topic为与订阅者一致,修改host ip
mkdir build && cd build
cmake ..
make
##拷贝hello可执行文件和libMQTTPacketClient.so动态库到板子运行
export LD_LIBRARY_PATH=/mnt/:$LD_LIBRARY_PATH #指定路径

现在搭建完成ubuntu的开发板环境,已经完成板子和网页的相互交互以及传数据。
接下来实现板子如何发送心跳包给web,然后web进行解析。

### 安装配置 BOA Web 服务器 #### 准备工作 为了在嵌入式开发板上成功安装配置BOA Web服务器,需确保已准备好适合的交叉编译环境以及目标系统的根文件系统。这通常意味着已经设置好了一个能够针对特定硬件架构(如ARM、MIPS等)编译软件的工作站。 #### 获取源代码 从官方站点获取最新版本的BOA源代码包,并将其放置于主机上的适当位置以便后续操作[^2]。 ```bash wget http://www.boa.org/download/boa-0.94.14rc21.tar.gz tar zxvf boa-0.94.14rc21.tar.gz cd boa-0.94.14rc21/ ``` #### 编译过程 调整Makefile以适应所使用的工具链路径其他必要的选项;对于大多数情况来说,默认配置可能就足够用了。如果需要定制化,则可以通过编辑`configure.in`来实现更精细控制。完成这些更改之后就可以运行如下命令来进行实际构建: ```bash ./configure --host=arm-linux-gnueabi CC=arm-linux-gnueabihf-gcc CFLAGS="-O2" make ``` 这里假设使用的是名为 `arm-linux-gnueabihf-gcc` 的GCC交叉编译器,请根据实际情况替换相应名称。 #### 移植至开发板 一旦编译完毕,就需要把生成好的二进制文件连同任何依赖项一起复制到目标设备当中去。一般情况下只需要拷贝可执行程序本身即可,但如果涉及到共享库或其他资源则也要一并处理。 #### 修改配置文件 进入 `/etc/init.d/` 或者其他初始化脚本所在的位置创建一个新的服务启动脚本来管理BOA进程生命周期。同时还需要对位于 `/etc/boa/boa.conf` 中的具体参数做出适当调整,比如监听端口、文档根目录等信息都应当按照具体需求设定。 #### 启动测试 最后一步就是尝试启动这个新部署的服务实例并通过网络请求验证其正常运作状态了。可以在本地计算机打开浏览器输入类似于 `http://<your_board_ip>/index.html` 这样的URL地址查看默认主页是否存在。 ```html <!-- 创建一个简单的 HTML 文件 --> <html> <head><title>Welcome to My Embedded Device</title></head> <body>Hello, this is a test page served by BOA on an embedded device.</body> </html> ``` 将上述HTML保存为`index.html`并上传至之前指定作为网站根目录的地方,随后再次刷新页面确认一切顺利无误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值