前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。
人工智能编程入门博客
一个专注于嵌入式知识分享,学习路上不迷路的公众号,欢迎关注。
想加技术交流群的,可以扫码加我微信,让我拉你进群。
大家新年好,好久不见,经过一个春节假期,昨天正式开工了,放假前,由于准备不充分,在家想写文,不是缺东就是少西,所以一个假期就这么荒废了,现在开工了,咱们的网文更新继续,希望2021年我们可以继续同行,一同进步。
今天给大家介绍一个好用的WiFi数传模块,可以轻松的获取摄像头图像,也可以实现局域网内的无线控制。
数传模块参数
- 产品尺寸:约57*57*19 mm(外壳尺寸)
- 供电电压:5V
- 电流功耗:1.2W,低功耗(这里不含加了摄像头的功率)
- 存储空间:4M-flash,64M-RAM(内存更大,运行不卡顿)
- 视频分辨率:默认为640X480分辨率
- 天线类型:内置板载天线
- 信号指示:开机LED亮两秒后熄灭
- 驱动系统:Openwrt固件、并安装好UVC摄像头驱动、Ser2net串口转发软件、mjpg-streamer视频解析软件、并已经设置为随机启动,到手可以用,无需重刷固件。
UVC摄像头
UVC(USB Video Class)摄像头:UVC是一种标准的USB视频设备协议,就是通常所说的免驱摄像头。
数传模块上的USB摄像头怎么直接使用?
在设备管理器中禁用笔记本自带摄像头之后,打开Win10笔记本自带相机应用,即可使用这个免驱的USB摄像头了。
硬件连接
使用移动电源给WiFi数传模块供电。
WiFi数传模块的USB接口与摄像头相连。
WiFi数传模块的串口与USB转TTL模块相连。
模块上电
模块上电,可以通过模块上的串口,输出启动过程中的Log信息:
过一会儿会在WiFi列表中看到SSID为hjwifi2014 网络:
该WiFi没有密码,直接点击连接即可,连接完毕,WiFi列表中显示效果如下:
系统通知区域WiFi图标显示为:
登录后台
模块后台登录网址:http://192.168.8.1/login.html
登录密码是:11111111
登录后台之后,后台界面如下图所示:
模块的后台跟路由器的管理界面类似。
注意:进入后台后建议不要修改和随意和关闭任何参数,否则可能将导致WIFI自动加密或是无法启动,如修改参数导致无法使用的,厂家将不再保修和售后,务必谨记!
openWrt
WiFi数传模块内部实际上是一个基于 OpenWrt 的固件。
OpenWrt 是主流路由器固件(DD-WRT,Tomato,Gargoyle,openWrt等)之一,所以上面后台的界面跟路由器的管理界面类似就不足为奇了。
OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。
对于开发人员,OpenWrt 是使用框架来构建应用程序,而无需建立一个完整的固件来支持;
对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备。
OpenWrt是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VoIP设备中。 同时,它还提供了众多的已编译好的软件,而且数量还在不断增加,而 OpenWrt SDK 更简化了开发软件的工序。
本模块正是利用了OpenWrt这种自由定制的功能,我们将路由器刷好Openwrt固件、并安装好UVC摄像头驱动、Ser2net串口转发软件、mjpg-streamer视频解析软件,并设置这些软件为开机启动,这样此路由就可以作为中转,将摄像头的实时图像通过WIFI网络转发到上位机中,进而实现了视频回传的功能。
MJPEG-STREAM视频流
MJPEG-STREAM是一个基于“运动图像压缩技术”的摄像头图像采集系统,并且该系统通过Web方式进行实时图片传输,用户只需要利用浏览器就可以实现视频监控等工作,同时由于该系统采用开源方式进行开发,因此对该系统的任何修改和使用都不存在版权的问题,降低了视频开发的成本,提高了开发的效率。
OpenWrt是一个开源的嵌入式Linux系统,其包含3000多个软件包,要实现基于OpenWrt系统对MJPEG-STREAM的构建,用户只需要通过简单的指令就可以实现软件的下载、编译、安装和使用。
具体构建步骤如下:
①更新OpenWrt的软件源。
②下载并安装UVC摄像头驱动,安装结束后插入摄像头,如果在OpenWrt的/dev目录下看到video0文件,则表示安装成功。
③下载并安装MJPEG-STREAM开源库。
④连接摄像头,启动MJPEG-STREAM,并设置其输出的分辨率和地址。
⑤最后在浏览器中输入以下地址,就可以进行视频监控。
购买的WiFi数传模块已经完成了此部分工作,我们只需要学会如何使用此模块即可。
获取图像
方式一:http协议调试助手
URL填写http://192.168.8.1:8083/?action=snapshot,Method选择GET,勾选SaveToFile,点击Start,请求完毕会弹出一个保存文件对话框,将此文件命名为XXX.jpg,然后双击打开此文件,可以看到发送请求时,摄像头当时的画面。
方式二:浏览器获取实时图像
浏览器的地址栏中敲入:http://192.168.8.1:8083/?action=snapshot,点击回车,可以获得摄像头当前画面,浏览器每刷新一次图像变换一次。
如果我们自己编写程序,只要在程序中,在线程中一直循环访问上面的链接,然后将返回的结果转为图片,循环展示即可形成动态的视频。
通过透传模块实现控制
WiFi数传模块的OpenWrt固件中,集成了Ser2net串口转发软件,利用其可以实现网络数据和串口数据的双向传输。
笔记本连接USB转TTL模块,使用网络助手连接模块,模块的服务器信息为:192.168.8.1:2001 。
利用串口助手,打开USB转TTL模块对应的串口。
利用网络助手和串口助手可以完成数据的双向通讯。
上面的网络助手相当于PC或者手机端的上位机软件。
串口助手相当于设备端的单片机或者STM32。
我们通过上面的测试,可以看出,上位机发送的信息(指令),下位机(设备端)可以正常接收。
下位机(设备端)上传的信息,上位机可以正常接收。
进而实现了上位机和下位机(设备端)的双向通讯。
典型应用
将此WiFi数传模块放在小车上,手机端编写一个控制软件,软件中开启一个线程,循环获取摄像头的图像数据并展示,进而实现视频数据的回传;
将WiFi数传模块的串口与主控芯片(比如STM32)相连,手机端的控制软件,可以通过发送串口数据,实现对小车的控制,也可以通过小车采集环境的数据,通过串口上传数据至手机端,实现数据的采集。
注意:此WiFi数传模块的唯一缺陷就是只能应用在局域网中。