1751|2

282

帖子

2

TA的资源

一粒金砂(高级)

楼主
 

智能网络台灯,项目提交 [复制链接]

  本帖最后由 hehung 于 2022-10-16 20:10 编辑

 

智能网络台灯

 

作者:hehung        

一、作品简介


 

本作品是基于ESP32S2以及MaixBit完成的。ESP32S2上实现了LCD显示功能,能够显示时间,天气信息(7天天气),台灯亮度信息,联网状态信息等;实现了本地控制,远程APP控制以及天猫精灵语音控制功能,能够对智能台灯的亮度,开关,学习时间,延时关闭,控制模式等功能进行设置;模式控制有手动,自动,阅读以及睡觉,能够自由切换;MaixBit上实现了摄像头采集环境光强度功能并通过串口与ESP32S2进行数据交互;本作品还实现了wifi配网功能,可以用APP实现对智能网络台灯的配网。

二、系统框图

系统架构图如下图:


 

 

三、各部分功能说明

(各部分实现的功能说明及讲解,以图文结合的展示。)

硬件连接:

ESP32S2:                     L298驱动芯片              MaixBit

IO0                         --        L298N驱动IN1

GND                       --        L298N驱动IN2     --     MaixBit GND

IO4(UART TXD)--                                     MaixBit IO9(UART RXD)

IO5(UART RXD)--                                    MaixBit IO10(UART TXD)

ESP32S2

下面介绍ESP32S2相关组件功能。

  1. LCD

LCD显示使用了GUI驱动LVGL,提供好看的GUI界面。


 

如上图,LCD主要用于显示一些信息,包括:

  1. 日期,时间
  2. 网络连接状态(wifi图标)
  • 未连接网络的时候,Wifi图标周期闪烁显示;
  • 连接了网络之后,wifi图标常显示。
  1. 物联网连接状态(IoT图标)
  • 未连接到,Wifi图标周期闪烁显示;
  • 连接了网络之后,wifi图标常显示。
  1. 台灯延时关闭使能状态(DO图标,DelayOff)
  • 延时关闭功能使能时常显示;
  • 延时关闭功能关闭时不显示
  1. 天气信息
    1. 今日天气,温湿度
    2. 空气质量,今日温度范围
    3. 从明天开始的六天天气,滚动显示
  2. 学习时间条(左边时间条,显示剩余学习时间)
  3. 台灯亮度条(右边亮度条,显示当前台灯亮度)
  4. 剩余学习时间数字,下中部显示当前还剩多少学习时间,如下图
  1. RGB

RGB三个LED主要用来标记当前状态。

  1. 如果wifi没有连接,红色LED闪烁;
  2. 如果wifi连接了但是没有连接到阿里云平台,蓝色LED闪烁;
  3. 如果wifi连接了也链接到了阿里云平台,绿色LED闪烁;
  4. 如果台灯为关闭状态,所有LED熄灭。
  1. 按键

ESP32S2板子上一共有6个按键(K1~K6),为ADC按键,所以通过一个IO口进行控制,配置为ADC模式,下面详细说明每个按键的功能:

  1. K1:
  • 长按(按下时间超过一秒),用于使能/禁能台灯延时关闭功能,如果当前为使能状态则禁能,如果当前为禁能状态则使能;
  • 短按(按下时间少于一秒),用于关闭或者打开台灯,当前为关闭时,则打开;如果是打开状态则关闭。
  1. K2

模式切换按键,用于切换控制模式;控制模式有自动模式,手动模式,阅读模式以及睡眠模式,每次按下按键都会按照顺序切换模式。

  1. K3

手动控制台灯亮度增加,只有在控制模式为手动时有效。

  • 按下该按键并保持,台灯亮度会增加,最大为100%。
  1. K4

手动控制台灯亮度减小,只有在控制模式为手动时有效。

  • 按下该按键并保持,台灯亮度会减小,最小为0%。
  1. K5

手动设置学习时间增加,只有在控制模式为手动时有效。

  • 按下该按键并保持,学习时间会增大,最大120分钟。
  1. K6

手动设置学习时间减小,只有在控制模式为手动时有效。

  • 按下该按键并保持,学习时间会减小,最小为0分钟。
  1. 延时关闭功能

说明:延时关闭就是当关闭台灯的时候不会马上关闭,而是等待30s之后才关闭。

在延时关闭等待等待器件,如果电源按键再次按下,则停止关闭过程,台灯不会被关闭。

  1. 台灯

台灯亮度是通过ESP32S2的LEDC输出PWM信号来控制的,使用到了L298N驱动芯片,如下图。

  • LEDC输出PWM信号到L298N驱动芯片的IN1端口;L298N的IN2端口接GND;
  • OUT1与OUT2接台灯的正极与负极;
  • 台灯的供电电源正负极分别接+12V以及GND。

则,LEDC输出的PWM控制信号会经过L298N驱动信号输出给台灯,实现亮度控制。

 

  1. 控制模式

控制模式有自动模式,手动模式,阅读模式,睡眠模式。

  • 自动模式:通过环境光的强度自动设置台灯的亮度;
  • 手动模式:通过手动(或者联网控制,语音控制)控制亮度;
  • 阅读模式:台灯亮度模式为90%;
  • 睡眠模式:这也是小夜灯模式,亮度默认设置为10%。
  1. 时间

ESP32S2的RTC芯片用来自动控制时间,增加联网功能,对内部RTC进行时间校准,每一小时一次,显示屏会实时显示当前时间(时分秒,月日以及星期)。

  1. 天气

天气获取使用到了https,获取网络天气并且更新到本地。

获取天气的网址:https://www.yiketianqi.com/index/doc?version=day

会获取两种天气:

  • 一种是实时天气信息,有天气,温湿度,本日温度范围,空气质量等信息;
  • 另一种是获取七日天气,有日期,天气,温度范围;

获取天气信息通过CJSON解析出来并显示到LCD屏。

  1. 串口

串口是用来和MaixBit通信的,接收来自MaixBit计算的环境光亮度信息。

串口通信格式为:数据长度(1Byte)+数据命令(1Byte)+数据(1Byte),以ASCII格式传输。

  1. 物联网

该作品使用了阿里云物理网平台用于远程数据交互,可以通过物联网控制的功能有:

  • 模式(自动,手动,阅读,睡眠)
  • 亮度(0%~100%)
  • 学习时间(0~120分钟)
  • 台灯电源开/关
  • 延时开关使能/禁能

本地控制之后的数据会实时传递给云平台。

阿里云平台数据定义,如下图定义了智能网络台灯与阿里云平台交互的数据格式:

 

如下是手机APP的控制界面配置:

 

  1. 天猫精灵

可以通过天猫精灵控制台灯,如下功能可以控制:

  • 台灯开/关
  • 台灯亮度
  1. 配网

如果作品没有连过网,在使用的时候会自动进入AP模式,会创建一个wifi热点。

使用阿里云的云智能APP,添加设备,会自动搜索当前设备,搜索成功之后连接到ESP32S2创建的热点,然后等待配网完成,网络智能台灯就可以成功连接上网络了,下一次上电也不用再次连接,信息会自动保存到nvs中,下次上电自动连接wifi以及云平台。

配网操作详见演示视频末尾。

MaixBit

  1. MaixBit代码使用Python实现。
  2. 环境光检测

摄像头会采集到当前环境图像,然后每一秒钟拍摄一张图片,将图片以LAB格式读出,计算图片中的L(表示亮度)平均值就可以知道环境光强度了,L取值为0~100,表示环境光亮度0%~100%。


 

  1. LCD

LCD是一个辅助设备,用来显示当前摄像头采集到的图片,并且将环境光强度显示在图片上。


 
 

  1. RGB

RGB用来显示环境是否正常工作,如果正常,则绿色LED每一秒钟显示一次,通过定时器1通道0来实现一秒钟的闪烁。

  1. 串口

串口在定时器0通道0中实现,用来每一秒钟发送一次环境光强度数据到串口,同时也会监控串口接受的数据并打印出来。

 

四、作品源码

源码放在了EEWorld下载中心:

https://download.eeworld.com.cn/detail/hehung/625181

同时将源码放置在了gitee,链接如下:

链接已隐藏,如需查看请登录或者注册

 

五、作品功能演示视频

视频演示了作品的一些功能,包括配网,网络控制,本地控制,语音控制等功能。

视频放置在bilibili,链接如下:

https://www.bilibili.com/video/BV1sP411N7fa/

 

六、项目总结

为了完成本次项目学了到了很多知识,比如ESP32S2联网,ntp时间更新,获取天气信息,lvgl驱动的使用,阿里云物联网平台的链接等,也学会了使用maixbit,对自身成长比较大。

项目制作期间分享帖子:

【2022得捷电子创新设计大赛】最晚开箱帖
【2022得捷电子创新设计大赛】1. ESP32-S2环境搭建及点灯
【智能网络台灯】2. 设置系统时间以及打印
【智能网络台灯】3. ESP32-S2 + lvgl使用
【智能网络台灯】4. ESP32-S2 板载按键使用
【智能网络台灯】5. ESP32-S2 使用sntp进行网络校时
【智能网络台灯】6. ESP32-S2解决RAM空间开销过大的问题

【智能网络台灯】7. 获取实时天气信息并解析

【智能网络台灯】8. Maix bit驱动RGB

【智能网络台灯】9. Maix bit驱动串口

【智能网络台灯】10. Esp32-S2驱动UART

【智能网络台灯】11. MaixBit使用摄像头检测环境光强度

 

七、其他

感谢Digi-Key以及EEWORLD基于的本次机会,对于本次比赛,三轮评选结束,本来是没有入选的,但是由于一些小伙伴弃赛,有幸能够被选中再次进入比赛,感谢杜杜的推荐。本次作品实现收获也颇丰,学习到了很多知识,增加了宝贵的软件调试经验,期望以后也能多参加比赛与小伙伴们共同进步。

 

作品word文档 智能网络台灯 -- hehung.doc (3.18 MB, 下载次数: 4)

 

最新回复

ESP32S2上实现了LCD显示功能,结果很漂亮     详情 回复 发表于 2022-10-17 08:33
点赞(1) 关注(1)
 
 

回复
举报

6628

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

ESP32S2上实现了LCD显示功能,结果很漂亮

 

点评

感谢鼓励  详情 回复 发表于 2022-10-17 13:51
 
 
 

回复

282

帖子

2

TA的资源

一粒金砂(高级)

板凳
 
Jacktang 发表于 2022-10-17 08:33 ESP32S2上实现了LCD显示功能,结果很漂亮  

感谢鼓励

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表