以下是使用node-red实现的本项目各项重要功能,关于node-red的安全可以自己参考网上的安装教程,一般要先安装node.js,安装好之后才能正常调用npm功能安装node-red。这个过程让我画了大部分精力用来安装相关软件包。缺什么装什么,因为是嵌入式linux系统的问题,有了好多限制。以下是通过MQTT节点实现上云:
使用命令安装腾讯云node-red节点。
npm install node-red-contrib-qcloud-iotexplorer。
也可以在NODE-RED界面选择节点管理搜索并下载。
也可以采用通用的mqtt节点配置上云,但是需要秘钥计算出用户和密码
利用秘钥生成工具生成用户和密码,但是这种方式有时间限制,一般只有30天,过来时间还要重新生成,很麻烦。
最后选择了更容易上手的腾讯连连节点,而且这个不会过期,一直可以保持长时间上线。
连接成功后即可从云端拉去数据到Node-red后解析json格式的数据,然后再次封装json格式数据发送给电机小熊派开发板,通过json解析出来的数据进行相关控制,例如电机舵机等,这个控制是通过腾讯云平台控制的。
也可以通过内网穿透的方式将node-red穿透到外网,这样就可以实现本地的远程控制,实时性更高了。
解决完联网问题,现在继续通过node-red USB摄像头节点来实现对摄像头驱动并拍照显示在页面上。实现图传功能。
摄像头和base64节点参数配置:
利用显示网页的节点功能来读取发来的base64图片数据,并显示到UI页面上。
这是完成的Node-Red界面,集中在一个小空间内是为了使用手机打开时可以显示主要的功能,手机浏览时左滑动才会看到舵机的控制条。
以上的界面是通过一下的节点连接组成的,方便快捷,快速搭建。但是一些参数设置需要具备些js基础才可以很好的实现。
这是摄像头拍照后终端显示的相关参数信息和使用手机登录node-red界面:
总结
由于三亚疫情,我是在方舱里面完成的本次方案的编写,因为我随身带着哪吒板和摄像头才得以完成一些功能验证和图片的截取。目前就一个单片机驱动舵机和电机的驱动没有验证,其他都基本实现了,但是我预留输出数据接口,基本都是以json格式输出的数据,然后在单片机端通过解析json来获取需要的数据。本次大赛,我从一个linux小白学会一些常用指令的使用,安装各种环境搭建是最痛苦的,每天面对终端敲指令,一整就是一整天。
通过网上的大佬分享的经验,我实现了远程桌面控制,虽然很卡,但是仍然让我欣喜若狂,因为我有自己的一个微电脑了,彻底打开了我的linux学习大门,这次大赛真的是对个人的一个挑战。后面继续学习,提升自己的软件编写能力。
这次的一个重要关键技术还是WIFI的连接,开始是通过以太网口实现的联网,后面慢慢变成WIFI联网,也是需要输入各种指令后实现的联网,获取IP地址后就可以远程登录开发板的Debian系统了。有了WIFI连接,操作就更加方便了。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !