网易首页 > 网易号 > 正文 申请入驻

低代码单片机快速实现网络摄像机+温湿度+LED灯控

0
分享至

网络摄像机+温湿度+LED灯控

本文基于 FlexLua 低代码单片机技术,无需复杂单片机C语言开发。即使新手也可很容易用FlexLua零门槛开发各种功能丰富稳定可靠的 IoT 硬件,更多学习教程可参考 FlexLua 官网。

一、本例程实现功能

让开发板在局域网环境变成一台网络摄像机,不仅可以通过电脑或手机Web浏览器查看实时视频流,还可以控制开发板上的Led灯亮灭,以及获取开发板上温湿度并在网页上实时显示。需要注意的是电脑或手机也需要是在此局域网内。


二、举一反三

基于本例程还可以很容易衍生出一些更实用的方案:

  1. 远程视频监控+远程继电器控制
  2. 远程视频监控+远程舵机控制
  3. 远程视频监控+远程传感器数据读取、
  4. 远程视频监控+IO读取
三、ShineBlink Cam 传感器介绍
  1. 供电:USB 5v供电或5v引脚供电
  2. 板载摄像头模块、温湿度模块、以及ShineBlink开发板
  3. 支持8路IO控制、4路AD电压采集、1路Uart串口通信、1路IIc通信扩展



四、CAM底板结构图


五、材料清单
  1. 自制 Cam PCB 底板(开源资料请参考 《CAM 底板开源硬件资料》文件)
  2. ShineBlink Mini 开发板(已含 Led 灯)
  3. SHT30 IIc 温湿度传感器模块
六、完整代码

(1)ShineBlink Mini开发板Lua源代码如下:

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",--本机视频流Web http Server端口号
"81"--本机视频流服务端口号
}
H1 = --Http server vedio stream response H1
{
"multipart/x-mixed-replace;boundary=123456789000000000987654321"
}
H2 = --Http server vedio stream 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
--全局变量
Timer10MsCnt=0
Timer10MsCnt1=0
temprature = 0.0
humidity = 0.0
--定义10毫秒定时器的回调函数,函数名字必须是LIB_10msTimerCallback
function LIB_10msTimerCallback()
Timer10MsCnt = Timer10MsCnt + 10
Timer10MsCnt1 = Timer10MsCnt1 + 10
end
--使能USB串口打印
LIB_UsbConfig("CDC")
--配置D8 Wifi Led指示灯(Core电路板上的LED1灯和D8端口是固定连接的)
LIB_GpioOutputConfig("D8","STANDARD")
--配置D9 Wifi Led指示灯(Core电路板上的LED2灯和D9端口是固定连接的)
LIB_GpioOutputConfig("D9","STANDARD")
--LED1灭
LIB_GpioWrite("D8",1)
--LED2灭
LIB_GpioWrite("D9",1)
--初始化sht3x传感器占用SCL0和SDA0引脚,10Hz频率工作,"HIGH"时精度最高
LIB_Sht3xConfig("IIC0","10","HIGH")
--初始化,Vedio Web Server开始工作
Res,Info=LIB_EspCamOp("Config","WEB_VEDIO_ENHANCE","UART0",HW,IP,SERVER,H1,H2,H3)
if Res == 0 then
print(Info) --打印初始化失败原因
end
--使能系统10毫秒定时器开始工作
LIB_10msTimerConfig("ENABLE")
--开始大循环
while(GC(1) == true)
do
--查询sht3x传感器是否出数
sht3x_flag,sht3x_temp,sht3x_humi = LIB_Sht3xGetResult()
--如果传感器有新的温湿度数据产生
if sht3x_flag == 1 then
temprature = sht3x_temp
humidity = sht3x_humi
end
--每200ms更新一次传感器值,这样Web客户端就能看到传感器值的变化,并且能及时收到客户端发来的命令
if Timer10MsCnt1 > 200 then
Timer10MsCnt1 = 0
Res,Info=LIB_EspCamOp("WebserverUpdate",string.format("{\"temp\":\"%.2f\",\"humi\":\"%.2f\"}", temprature, humidity))
if Res == 1 then
if Info ~= "null" then --收到客户端发来的cmd命令
print(Info)
--网页端上的按钮按下后发来的Info字符串的形式如:"xxx=yyy"
xxx,yyy = string.match(Info, "(%a+)=(%a+)") --用通配符提取出xxx和yyy这两个字符串
if xxx == "cmd" then
if yyy == "LedOn" then
LIB_GpioWrite("D9",0) --LED2亮
elseif yyy == "LedOff" then
LIB_GpioWrite("D9",1) --LED2灭
else
end
end
end
end
end
--每三秒查询一次WIFI连接状态
if Timer10MsCnt > 3000 then
Timer10MsCnt = 0
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
end

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

(2)除了需将以上代码下载到 ShineBlink Mini 开发板,还需要将 index.html 文件放入 ESP32-CAM 摄像头模块板子上的 TF 卡中。index.html 中的代码没做过前端开发的同学可能会比较陌生,但并不难,花几分钟仔细看一下应该能看懂,看懂了稍微修改一下,即可很容易改出各种定制化的页面和项目。

index.html 文件放在{FlexLua开源网盘}->{Hardware}->{OTHERS}->{ESPCAM} 文件夹中。

七、代码运行结果

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


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



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

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

  1. 花生壳内网穿透。
  2. 路由器WAN口带公网I。

在此之前开发者还需要将开发板的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地址
}

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
两性疑问:为什么男生更喜欢从后面来

两性疑问:为什么男生更喜欢从后面来

坟头长草
2024-05-30 16:33:38
退货率80%,商家被逼疯了,有人亏10万干不下去了

退货率80%,商家被逼疯了,有人亏10万干不下去了

市界
2024-06-17 18:19:53
天津楼市全军覆没,天津楼市河西区某小区房价跌至3万多元

天津楼市全军覆没,天津楼市河西区某小区房价跌至3万多元

有事问彭叔
2024-06-19 16:17:33
后续:南方医科大学处理结果公布,俞莉老师上课被指有错在先!

后续:南方医科大学处理结果公布,俞莉老师上课被指有错在先!

小毅讲历史
2024-06-18 19:58:34
退货率80%,史上最惨618逼疯商家

退货率80%,史上最惨618逼疯商家

李东阳朋友圈
2024-06-19 15:35:06
破防了!原来张雪峰说的都是真的,法学比医学更容易继承给后代

破防了!原来张雪峰说的都是真的,法学比医学更容易继承给后代

文雅笔墨
2024-06-19 12:25:37
比亚迪,重大调整!

比亚迪,重大调整!

第一财经资讯
2024-06-19 22:01:14
颠覆性突破!ASML发布超级EUV光刻机:可量产0.2nm工艺

颠覆性突破!ASML发布超级EUV光刻机:可量产0.2nm工艺

中关村在线
2024-06-19 11:31:25
小S又曝大S劲爆旧料:去奢侈品购物被店员无视,一怒之下买了两个

小S又曝大S劲爆旧料:去奢侈品购物被店员无视,一怒之下买了两个

小徐讲八卦
2024-06-19 07:30:47
普京载金正恩在平壤街头兜风

普京载金正恩在平壤街头兜风

观察者网
2024-06-19 20:06:22
我,70后小伙,在日本结识小7岁老婆,结婚时给岳父买了一套房

我,70后小伙,在日本结识小7岁老婆,结婚时给岳父买了一套房

真实人物采访
2024-06-18 09:10:02
上海近300个小区都发现了,已经产生冲突!紧急提醒:千万保持距离→

上海近300个小区都发现了,已经产生冲突!紧急提醒:千万保持距离→

文雅笔墨
2024-06-18 23:13:45
外蒙古有多离谱,“性旅游业”带动经济, 沦落为风俗业大国

外蒙古有多离谱,“性旅游业”带动经济, 沦落为风俗业大国

青栀伊人
2024-06-18 21:57:53
就在刚刚,中方正式下达“逐客令”,要求这国4天内必须离华!

就在刚刚,中方正式下达“逐客令”,要求这国4天内必须离华!

小乐讲故事
2023-05-17 09:52:08
杨得志卸任总参谋长,秘书提醒他:新总长比您小20岁,不用去接机

杨得志卸任总参谋长,秘书提醒他:新总长比您小20岁,不用去接机

史源历史专栏
2024-06-18 15:35:02
西班牙王室庆祝国王即位10周年,姐妹花亮相,你们要不要这么装啊

西班牙王室庆祝国王即位10周年,姐妹花亮相,你们要不要这么装啊

华庭讲美食
2024-06-19 20:00:41
女主播与住持发生关系,再敲诈获刑!共同作案的老公称要上诉

女主播与住持发生关系,再敲诈获刑!共同作案的老公称要上诉

南方都市报
2024-06-19 20:06:10
绝了!广州老人在地铁宣扬偏颇观点,乘警介入,网友:大爷说的没毛病

绝了!广州老人在地铁宣扬偏颇观点,乘警介入,网友:大爷说的没毛病

影视解说阿相
2024-06-19 07:06:15
俄朝连谈90分钟,见完金正恩后,普京专机飞抵越南,美国反应激烈

俄朝连谈90分钟,见完金正恩后,普京专机飞抵越南,美国反应激烈

小小包工头阿汾
2024-06-19 19:43:29
深度|北方干旱中苦等雨来的农民们:只要有水,我们的庄稼是一等一的好

深度|北方干旱中苦等雨来的农民们:只要有水,我们的庄稼是一等一的好

红星新闻
2024-06-18 18:11:21
2024-06-20 05:18:44
FlexLua
FlexLua
用 Lua 编程语言开发 IoT 物联网硬件
107文章数 1关注度
往期回顾 全部

科技要闻

618观察:谁为高强度的低价竞争买单?

头条要闻

俄罗斯总统普京抵达越南进行国事访问

头条要闻

俄罗斯总统普京抵达越南进行国事访问

体育要闻

欧洲杯最大的混子,非他莫属

娱乐要闻

黄一鸣“杀疯了” 直播间卖大葱养孩子

财经要闻

深化科创板改革 证监会发布八条措施

汽车要闻

双肾格栅变化大/内饰焕新 新一代宝马X3官图发布

态度原创

教育
时尚
本地
亲子
房产

教育要闻

你好高校 | 对话北京航空航天大学

几个小物件,打造宅家时的「inner peace」

本地新闻

中式沙拉宇宙的天花板,它必须有姓名

亲子要闻

宝宝看到对面小朋友们在打篮球也跟着模仿动作有模有样。

房产要闻

17.9亿!终于,有民企在三亚大手笔拿地了!周边房价10万+!

无障碍浏览 进入关怀版