【鲁班猫参赛作品赏析】项目16——基于鲁班猫0W的极点云智能公网LORA网关与AI_SSD模型物体归类重力双轴云台
前言
野火出品,必属精品,火哥在去年年底推出、今年开始正式售卖的鲁班猫0/0W系列,是入门瑞芯微RK356X系列的优秀选择,设计版型主打物联网开发主题,面积小,引出了一个typec外形的USB HOST接口,一个mini HDMI接口,一个MIPI DSI接口,一个MIPI CSI接口,并板载了RTL8821高端无线网卡,原生支持双网卡即AP+STA模式,唯一的缺点是USB接口数量不足,并且0W系列没有网口,需要使用市面上常用的绿联USB HUB扩展模块进行扩展:
不过使用USB HUB扩展模块进行扩展的场合还是比较少的,一般的物联网应用开发,直接使用鲁班猫0W本体已经完全够用了。
硬件设计
在这次以鲁班猫为主题的创意氛围赛中,我用鲁班猫0W接入了一个I2C模块的MPU9250陀螺仪模块,一个SPI接口的安信可 Ra02 SX1278 LORA模块,两组PWM舵机组成的云台,以及一个USB摄像头,其中USB摄像头用橡筋固定在云台上,云台可以以上下倾角和旋转角两个轴去控制USB摄像头的朝向,功能框图如下:
实际硬件连接拍照:
在LORA通信的另一边,使用之前已经搭好的CH32V307开发板及其外设,连接DHT11模块,BMP280模块,BH1750模块,MQ135有害气体传感器模块等,检测温度,湿度,大气压,有害气体浓度,该开发板只负责采集传感器信息并上报,不做任何控制:
软件部分
鲁班猫0W开发板搭建极点云服务,开放3306,50011,50012,50013,50014几个端口并映射到公网固定域名:
其中,3306是用于数据库远程读取数据用的,50011和50012则是映射到HTTP摄像头推流应用,50013是简单的HTTP服务器端口,50014则是普通的tcp服务器监听端口,用于自实现tcp服务器通信。
板子的主程序包含12个进程,其中11个子线程和1个主线程:
主线程用于读取MPU9250姿态数据并通过PWM控制舵机;
Thread_V4l2_Grab_Mjpeg线程用于读取USB摄像头原始流数据并保存成JPG文件;
Thread_TCP_Web_Recv_for_Send_Only_JPEG_File和Thread_TCP_Web_Send_Only_JPEG_File为一对,用于监听50011端口HTTP服务请求,并发送USB摄像头原始流数据到50011端口地址;
Thread_RKNN_SSD_Demo线程用于读取USB摄像头原始流数据JPG文件并做物体特征归类处理,生成目标图像;
Thread_TCP_Web_Recv_Tflite和
Thread_TCP_Web_Send_Only_JPEG_File_Tflite为一对,用于监听50012端口HTTP服务请求,并发送经过NPU SSD库处理过的USB摄像头物体特征归类目标图像流数据到50012端口地址;
Thread_TCP_Server线程用于建立TCP连接并监听50014端口的TCP请求,目前只做了最简单的收发DEMO,没有做具体功能,很基础的功能,没什么亮点;
Thread_TCP_Web_Send_Simple和Thread_TCP_Web_Recv_Simple为一对,用于监听50013端口的HTTP请求,并发送DEMO网页用于显示或控制,该功能与Thread_TCP_Server线程类似,只是使用了HTTP应用;
Thread_SX1278_DIO0_Read线程用于读取SX1278 LORA模块DIO0外部中断事件,以便监控是否有LORA数据发出,并在简单处理后发送到3306端口;
Thread_Scan_WIFI_Hotspot线程用于虚拟网卡扫描WIFI热点信号,目前该功能还在测试中,未稳定。
功能演示
首先是演示MPU9250控制双轴舵机并将本地图片流推到本地HTTP服务器的功能,其中50011端口为原始USB摄像头图像,50012端口为NPU处理过的物体特征归类目标图像:
原始USB摄像头图像和物体特征归类目标图像还通过极点云映射到了外网域名,只要程序在运行中,大家也可以通过如下域名直接进行访问:
http://5596a3eb.r2.vip.cpolar.cn
http://73bf1293.r2.vip.cpolar.cn
注意!以上所有有关摄像头图像处理和推流的操作都可同时访问并处理,因为我使用的是11个子线程的多线程代码,并运用了linux互斥锁功能。
然后是将接收到的LORA数据处理并上发到本地MYSQL数据库3306端口:
通过外部极点云域名可以直接访问:
因为使用的是内存表引擎,数据在断电之后会丢失,所以不需要担心SD卡频繁写入的问题。
除了远程访问数据库以外,还有个更简单的方式可以查看LORA收到的传感器数据,那就是直接访问50013端口的HTTP网页服务器:
或者是从映射的外网域名访问:
视频展示
原文来源:
https://bbs.elecfans.com/jishu_2356406_1_1.html
全部评论