FlexLua单片机低代码零门槛实现网络摄像机(Ip Camera)

96 篇文章 0 订阅
32 篇文章 0 订阅

网络摄像机(Ip Camera)

一、本例程实现功能

让开发板在局域网环境变成一台网络摄像机,通过电脑或手机Web浏览器输入摄像机的Ip地址即可查看实时视频流,前提是该电脑或手机也需要是在此局域网内。

二、举一反三

虽然Ip Camera是局域网访问的,但借助一些方法即可实现外网远程访问摄像头的功能:

  • 利用花生壳内网穿透搭建可远程访问的摄像头,难度不大,请开发者自行研究。
  • 如果你的路由器WAN口带公网IP地址,只需在路由器的配置页面做相应的映射即可。

三、CAM 底板硬件介绍

  • 供电:USB 5v 供电或 5v 引脚供电
  • 可板载 ESP32-CAM 摄像头模块、SHT30 IIc 温湿度模块、以及 ShineBlink Mini 开发板
  • 支持 8 路 IO 控制、4 路 AD 电压采集、1 路 Uar t串口通信、1 路 IIc 通信扩展

b28f6f0d9adec5b4923e9c4e34fea169.jpeg

e22d1216f63cbb9d29868ac5f3eb8ba1.jpeg

四、CAM底板结构图

225b0aa8ee411a8130327f59e8d4a0b0.jpeg

五、材料清单

  • 自制 Cam PCB 底板(开源资料请参考 《CAM 底板开源硬件资料》文件)
  • ShineBlink Mini 开发板

六、完整代码

HW =
{
"1103",--Wifi账号
"123321123",--Wifi密码
"FRAMESIZE_SVGA",--摄像头采集图片尺寸为SVGA,SVGA:800*600,尽量不要高于SVGA
"12"--摄像头采集图片的质量为12,必须为"1"~"63",其中"1"质量最高
}
IP =
{
"Dynamic",--表示动态IP模式,动态IP模式下,忽略下面5项,"Static"时需要配置下面5项
"0.0.0.0",--本机IP地址
"0.0.0.0",--gateway地址
"0.0.0.0",--subnet地址
"0.0.0.0",--首选DNS地址
"0.0.0.0"--次选DNS地址
}
SERVER =
{
"80"--本机服务器端口号
}
H1 = --Http server response H1
{
"multipart/x-mixed-replace;boundary=123456789000000000987654321"
}
H2 = --Http server response H2
{
"Content-Type: image/jpeg\r\nContent-Length: %d\r\n\r\n"
}
--注意:上面H2中的%d占位符一定不要去掉,它会自动计算每次发送的图片尺寸大小并填充进去。
H3 = "\r\n--123456789000000000987654321\r\n" --H3 stream boundary
--使能USB串口打印
LIB_UsbConfig("CDC")
--配置D8 Wifi Led指示灯(Core电路板上的LED1灯和D8端口是固定连接的)
LIB_GpioOutputConfig("D8","STANDARD")
--D8口输出高电平,板子上的LED1灭
LIB_GpioWrite("D8",1)
--初始化,Vedio Web Server开始工作
Res,Info=LIB_EspCamOp("Config","WEB_VEDIO","UART0",HW,IP,SERVER,H1,H2,H3)
if Res == 0 then
print(Info) --打印初始化失败原因
end
--开始大循环
while(GC(1) == true)
do
LIB_DelayMs(3000)
--三秒查询一次WIFI连接状态
Res,Info=LIB_EspCamOp("WifiStatus")
if Res == 1 then
WifiIsConnect = 1
print(Info) --打印IP
LIB_GpioWrite("D8",0)--WIFI连接时,开发板上的Led1灯亮
else
LIB_GpioWrite("D8",1)--WIFI未连接时,开发板上的Led1灯灭
print(Info) --打印WIFI未连接时的状态
end
end


如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。

七、代码运行结果

代码运行之后,我们可以通过串口调试助手看到开发板被动态分配的IP地址:

e2bb81648c961554419e47352f2e74e2.jpeg

然后在处于同一局域网内的电脑浏览器上输入这个192.168.43.224 IP地址即可访问视频:

715667b268c3f9e85351f0d0d03155e1.jpeg

同理在手机浏览器上也可用此IP地址访问视频:
637d29f9feea54c78332e27b3fc5279c.jpeg

八、如何实现外网访问局域网内的摄像头

在上面的举一反三中已经提到如何通过外网访问内网:

  • 利用花生壳内网穿透搭建可远程访问的摄像头,难度不大,请开发者自行研究。
  • 如果你的路由器WAN口带公网IP地址,只需在路由器的配置页面做相应的映射即可。

在此之前开发者还需要将开发板的IP地址由动态分配方式改成静态IP,实现方式很简单,只需改动Lua代码中的IP配置table列表中的内容即可,类似改动如下,请结合自己的局域网配置更改,下面的只是个参考例子:

IP =
{
"Static",
"192.168.43.55",--本机IP地址
"192.168.43.1",--gateway地址
"255.255.255.0",--subnet地址
"8.8.8.8",--首选DNS地址
"114.114.114.114"--次选DNS地址
}

  • 22
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值