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

1个月前

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

开源协议: GPL 3.0

  • 383
  • 2
  • 2

描述

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

图片 ( 啥也憋说,上图!

硬件

  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

↑ 电流走向以及电路总览

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

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

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



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

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

这是ESP07的焊接图

image.png

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

image.pngimage.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的库
HLW8032 HLW8032电量计芯片的库
SparkFun_SHTC3 SparkFun SHTC3温湿度传感器的库
OneButton 一个简单的按键库,通过绑定回调函数来实现多种操作:单击双击长按等,
非常方便,不用自己写判断式
Adafruit_SSD1306 Adafruit的OLED库
Adafruit_GFX Adafruit的图形库,类似于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-361 blinker的各种定义,详见程序
363-386 onebutton的回传函数
394-443 setup函数
445-454 loop函数
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

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

文档

ESP转接小板

在编辑器中打开

大板PCB_NEW

在编辑器中打开

触摸铜板

在编辑器中打开

原理图_NEW

在编辑器中打开

BOM

ID Designator Footprint Quantity
1 BUZZER BUZ-SMD_L4.0-W4.0-P3.50-L 1
2 Q1,Q2 SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR 2
3 R18 R2512 1
4 U3 SENSORM-SMD_4P-L2.0-W2.0-P1.00 1
5 KEY1 KEY-SMD_2P-L6.2-W3.6-LS8.0 1
6 K1 RELAY-TH_HK4100F-DC5V-SHG 1
7 U2 SOP-16_L10.0-W3.9-P1.27-LS6.0-BL 1
8 U1 ESP07侧焊 1
9 Q4 SOT-23_L2.9-W1.3-P0.95-LS2.4-BR 1
10 LED1,LED2,LED3,LED4 LED-SMD_4P-L3.5-W3.5-TL_WS2812B 4
11 U12 SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR 1
12 S1 220V插头铜片 1
13 C1,C11,C7,C4,C5,C6 C0603 6
14 J3 HDR-M-2.54_1X1 1
15 CT1 PT107 1
16 R15 R1206 1
17 CT2 CT103 1
18 J6 HDR-M-2.54_1X2 1
19 USBC1 USB-C_SMD-TYPE-C-31-M-12 1
20 C3 C0603 1
21 C2 C0603 1
22 R4,R5 R0603 2
23 PWR1 电源模块 1
24 C15,C16,C17 C0805 3
25 R13,R14,R16 R0805 3
26 R17 R1206 1
27 U4 SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BR 1
28 C9 C0603 1
29 C10 C0603 1
30 U5 SOP8_150 1
31 R2,R1,R3,R9,R7,R11 R0603 6
32 R10 R0603 1
33 R19,R20 R0603 2
34 D1 SOD-323_L1.8-W1.3-LS2.5-RD 1
35 R8,R6 R0603 2
36 J5 HDR-M-2.54_1X4 1
37 U6 CONN-TH_3P-P7.50_KF128-7.5-3P 1

展开

登录注册之后才可以进行评论操作
工程所有者当前已关闭评论
征集令发布者当前已关闭评论
全部评论 2

御坂0x1BF52号

HK4100的电流MAX才3A,控制插座真的够吗

2020-08-28 11:58:43
回复

pentiumxp

"自动下崽电路",这位攻城狮太幽默了 ……——……

2020-08-28 10:13:35
回复

  • 3 粉丝

服务时间

周一至周五 9:00~18:00
  • 0755 - 2382 4495
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 立创EDA微信号

    easyeda

  • QQ交流群

    664186054

  • 立创EDA公众号

    lceda-cn