嘉立创产业服务站群
发作品签到
标准版

【训练营_进阶班】基于ESP-07的智能物联网功率计-带小夜灯

工程标签

6.0k
0
0
9

简介

暑假训练营进阶班的毕业作品——基于ESP-07的智能物联网功率计,带小夜灯,特色有:0.96 oled显示,隔离式电流电压采集,触摸控制,语音控制,86盒大小,集成插座, ESP07侧焊 , 小夜灯等

简介:暑假训练营进阶班的毕业作品——基于ESP-07的智能物联网功率计,带小夜灯,特色有:0.96 oled显示,隔离式电流电压采集,触摸控制,语音控制,86盒大小,集成插座, ESP07侧焊 , 小夜灯等

开源协议

GPL 3.0

创建时间:2020-08-07 13:27:18更新时间:2022-05-10 06:15:23

描述

目录顺序  :(可能有点长,方便大家跳过)

图片 ( 啥也憋说,上图!

硬件

  1. 简介(特色)
  2. 原件选型
  3. 设计说明
软件
  1. 简介
  2. 程序代码说明

遇到的困难

演示 / 教程视频

-------------------------------------------------分割线-----------------------------------------------

图片

image.pngimage.pngimage.png

硬件

简介

本工程的基于ESP-07的智能物联网功率计,带小夜灯,特色有:

特色说明
oled显示可将电流电压,功率,用电量,温度和湿度打印在oled屏幕上
隔离式电流电压采集比较起非隔离采样更加安全
触摸控制用手按按键很累,所以加了触摸 ( 雾
语音控制可接入小爱同学(可手机),小度,天猫等智能音箱
PCB大小控制在约61x64mm内,可以轻松塞入86暗盒内
集成插座不需要再另外接输出线,直接通过板载插座输出
ESP07侧焊很好的解决了ESP模块的面积占用问题,并且也解决了信号被覆铜挡住的问题
WS2812小夜灯可以设置多种光效,例如冷光白,暖光白, 最重要的是RGB增加100%性能 ( 雾
TypeC接口与现在大部分手机数据线通用,不必另外寻找线材
WS2812指示灯可在固件内设置不同功率显示的不同颜色,小夜灯开启时指示灯自动关闭
屏幕自动关闭通过触摸开关来唤醒屏幕(可在固件内设置oled存活时间)
温湿度传感器可采集家中的温湿度数据并传送到伺服器,在app中观看图表

原件选型

种类名称说明
WIFI模块ESP-07占用面积小,io够用,自带陶瓷天线,信号比PCB天线更强
电压电流采样芯片HLW8032只需要一个引脚就可以跟单片机通讯,电路简单
继电器HK4100F-DC5V-SHG虽然只有3a电流但600w已经足够使用,重点是小!
温湿度传感器SHTC3采用i2c通讯方式,可与oled并联,减少io使用
并且芯片超小 ! 电路超简单 !
指示灯/小夜灯WS2812B-3535可以设置多种颜色,并且只需要单个io即可设置多颗led的光效
触摸芯片SD8223LC具有自校准功能并且可以通过电阻设置不同工作模式
串口芯片ch340c无需外接晶振,体积小,为什么不适用其他更小的e或者n?
因为ESP的自动下崽需要同时使用dtr与rts引脚

设计说明



![image.png](//image.lceda.cn/pullimage/WB9CDH3wpxsX3lHpencN7PrZM9r6UwMr1U2Xe4Jv.png)

↑ 电流走向以及电路总览

电路分为2部分:强电和弱电

强电部分主要有 : 电源输入,acdc模块,电流电压采集电路,继电器以及电源输出插座

弱电部分主要有 :ESP最小系统电路,自动下崽电路,复位电路,以及5个外设的电路



![](//image.lceda.cn/pullimage/4LmW58CS7aG7tzzSWORmhoJCQ6QGLaSDuVP2gEZ3.png)

从上图可见整个PCB很清楚的分成了强弱电2部分(除了led,因为要4角都有)

图里面最小的电路莫过于SHTC3温湿度传感器的电路,真的是比led电路还小!

这是ESP07的焊接图

image.png

这样很好的解决了ESP模块占用大面积的问题,并且也解决了信号被覆铜/走线挡住的问题

image.png
image.png

温度传感器附近没有元器件,以减少其他元器件的发热对测量造成误差

image.png

每一颗WS2812旁边都有一颗0.1uf的电龙,进行滤波,保护灯珠

image.png

采用的电源模块只有2x3x3cm,体积超小,并且带3,3v输出,不用在pcb上再搭5v到3,3v的降压电路

image.png

触摸电路采用的是SD8223LC, 具有自校准功能并且可以通过电阻设置不同工作模式,通过焊盘接线到覆铜小板来延伸操作距离

覆铜小板 ↓ ( 5个孔是因为方便焊接

image.png


软件

简介

程序采用了Arduino进行编程,主要使用的库有:

说明
Blinker程序核心库,Blinker 是一套跨硬件,跨平台的物联网解决方案
使用非常简单,支持多种设备
Fastled用于控制WS2812的库
HLW8032HLW8032电量计芯片的库
SparkFun_SHTC3SparkFun SHTC3温湿度传感器的库
OneButton一个简单的按键库,通过绑定回调函数来实现多种操作:单击双击长按等,
非常方便,不用自己写判断式
Adafruit_SSD1306Adafruit的OLED库
Adafruit_GFXAdafruit的图形库,类似于u8g/u8g2
字库使用 http://oleddisplay.squix.ch/#/home  创建的10px和14px的字库
用于oled显示,因为Adafruit GFX库自带的字库太少了

程序总览

行数说明
5-15库定义
17-19定义WIFI SSID 密码 以及Blinker秘钥
20-68各种参数定义
70-92绑定oled屏幕,HLW8032,SHTC3,blinker组件,OneButton组件
94-107各种常量定义
109-150自定义图标(oled显示)
153-361blinker的各种定义,详见程序
363-386onebutton的回传函数
394-443setup函数
445-454loop函数
456-480更新app图标以及更新传感器数据
497-501蜂鸣器
503-512指示灯
514-526小夜灯定时器
528-530将bool转换成string
532-542屏幕自动休眠
544-608屏幕显示

其他更多详细的请看程序注释(注释打字打到我手酸)

遇到的困难

1, 二个人在香港,另外一个人在青岛,跨越整整半个中国,在调试以及完成作品都有极大的困难

2, 在第一次打板的时候,不知道因为什么而导致打出来的板子没有覆铜.最后打样第二块板子,幸亏课程延时了

3, 电脑上开不了CAD软件来绘制外壳的dxf文件,只能将LCEDA当成CAD来用

4,选错蜂鸣器,选了无源的,最后通过更改digitalWrite() → tone() 函数解决,并且选的只有65db,声音较小,另外蜂鸣器在第一代板子上是接在gpio2的,忘记了gpio2上带有板载led,所以蜂鸣器会一直响,虽然可以通过拉高引脚来阻止蜂鸣器响但led的功能就失去了,第二代板子将蜂鸣器接到了gpio13解决

5,调试时继电器一直保持高电平,点选开关并没有任何反应,最后通过在setup函数内加入pinMode定义继电器引脚为输出解决(pinMode我几乎没用过)

6, SHTC3 温湿度传感器读不出数据,然后发现是忘了加Wire.begin()函数

7, HLW8032 读不出数据,初步怀疑是跟板载的ch340冲突而不能从串口读出数据,测试员未起床,暂待解决(距离交作业还剩-1小时)

8 ,WS2812 不亮,程序是没问题的,最后发现是焊接问题,第一颗灯珠损坏了,但是这时候发现灯珠要用4颗,但只买了5颗,而板子上的灯珠拆下来已经坏了,剩下只有一颗灯珠可用.................这个故事教训我们买零件要买多点备件

Cjpg

image.png

方方不起床,没照片没视频 ,md

设计图

原理图
PCB

BOM

IDNameDesignatorFootprintQuantity
1FST-4020BUZZERBUZ-SMD_L4.0-W4.0-P3.50-L1
2S8050Q1,Q2SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR2
3150KΩR18R25121
4SHTC3U3SENSORM-SMD_4P-L2.0-W2.0-P1.001
5K2-3.6×6.1_SMDKEY1KEY-SMD_2P-L6.2-W3.6-LS8.01

附件

序号文件名称下载次数
1
blinker界面配置.txt
30
2
blinker界面配置教程_x264.mp4
386
3
arduino库文件.rar
79
4
ESP_iot_socket.rar
53
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航