【训练营_进阶班】基于ESP-07的智能物联网功率计-带小夜灯 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

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

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

开源协议: GPL 3.0

(未经作者授权,禁止转载)

创建时间: 2020-08-07 21:27:18
更新时间: 2022-05-10 14:15:23
描述
##### 目录顺序  :(可能有点长,方便大家跳过) #### 图片 ( 啥也憋说,上图! #### 硬件 1. 简介(特色) 2. 原件选型 3. 设计说明 ##### 软件 1. 简介 2. 程序代码说明 #### 遇到的困难 ##### 演示 / 教程视频 \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-分割线\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- # 图片 ![image.png](//image.lceda.cn/pullimage/YmwPwdEC134wsnACMxGwe0OvUljBDtq5ZXeShDXs.png)![image.png](//image.lceda.cn/pullimage/zih8Y8FVinqcCkB3oU0AkKbo4Ca13YudI6QWKwl2.png)![image.png](//image.lceda.cn/pullimage/h6po4mjvyCE8KHqCXIqw28cpIQCm4DMPnP7gIeDc.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](//image.lceda.cn/pullimage/W08wS86mfSJeMdkgND4i9hlu59sfPC8PduyHwLZR.png) ### 这样很好的解决了ESP模块占用大面积的问题,并且也解决了信号被覆铜/走线挡住的问题 ![image.png](//image.lceda.cn/pullimage/n7MSPKmoqnbbYCq4VEVb5pW3ZKmBg82LdaqzJIYi.png) ![image.png](//image.lceda.cn/pullimage/HRbPteym9ZJpUNOua4AobU9xDTESxOT9olueyiDt.png) ### 温度传感器附近没有元器件,以减少其他元器件的发热对测量造成误差 ![image.png](//image.lceda.cn/pullimage/qDvqtA2Rz1eIIFTJSiaiPznocU0OaFpPTmxrUWDu.png) ### 每一颗WS2812旁边都有一颗0.1uf的电龙,进行滤波,保护灯珠 ![image.png](//image.lceda.cn/pullimage/g73Z6iEEEYtPsNXLW4sB6LACA1WnnSWfFjxOSey5.png) ### 采用的电源模块只有2x3x3cm,体积超小,并且带3,3v输出,不用在pcb上再搭5v到3,3v的降压电路 ![image.png](//image.lceda.cn/pullimage/I6JQN8Izb0TkQDGIOByG2yiDzVZjXKPoN7XV1iJd.png) ### 触摸电路采用的是SD8223LC, 具有自校准功能并且可以通过电阻设置不同工作模式,通过焊盘接线到覆铜小板来延伸操作距离 ### 覆铜小板 ↓ ( 5个孔是因为方便焊接 ![image.png](//image.lceda.cn/pullimage/DFudqjOfgPWKgAK7mwuEjGkpabdybzYO4vcjTCMP.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](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.lceda.cn/pullimage/9jQw6hUU5DwWe7yqt2KXNMafF7bZGLv5exgmc68h.jpeg) ![image.png](//image.lceda.cn/pullimage/yBnSc1kykBb0739qvBcoH8W890Sd2taYcPxEq4hq.png) # 方方不起床,没照片没视频 ,md
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程视频/附件
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP