
WIFI计量插座 - ESP8266 HLW8110
简介
实现电压、电流、有功功率、视在功率、有功电能等基础数据的计量、局域网WEB页面访问、查看实时计量数据 、配网 、OTA 、定时关闭输出、过载保护等。
简介:实现电压、电流、有功功率、视在功率、有功电能等基础数据的计量、局域网WEB页面访问、查看实时计量数据 、配网 、OTA 、定时关闭输出、过载保护等。开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
<font color=darkcyan>声明</font>
<font color=red size=5>本文/工程发布于立创开源广场,未经许可,不得转载。请尊重开源。</font>
<font color=darkcyan>功能介绍</font>
继电器 | 支持按键或者WEB页面控制。支持开机时恢复上一次的状态,若不使能恢复状态,可设定开机时默认导通或是断开 |
电能数据测量 | 单相电压、电流、有功功率、视在功率、功率因数、电网频率、有功电能 |
数据存储 | 支持ESP NVS存储和FRAM存储,频繁变化的数据如用电量存储到FRAM |
可清零电能 | 总电能/总用电量不支持清零,但有一个可清零电能,方便单次计量用电量 |
定时 | 倒计时关闭输出。可以单独使用也可以配合充满自动断电一起使用:当二者都开启时,定时任务结束,充满自动断电任务也会结束 |
充满自动断电 | 适合给电瓶车充电使用,低于一定功率一段时间表示充满,自动关闭输出 |
过载保护 | 有功功率高于设定值并持续一段时间将自动关闭输出 |
WEB页面交互 | 支持浏览器局域网访问,查看数据或对插座进行配置 |
WEB配网 | 用浏览器配置其要连接的WiFi,方便快捷 |
Hostname | 支持修改Hostname,即其在路由器上显示的名称,同时也显示在WEB主页和OLED上,方便区分多台设备 |
局域网FOTA | 装机后,可以在不拆机的情况下利用WiFi对其进行升级 |
AD五向按键 | 支持校准 |
<font color=darkcyan>注意</font>
<font color=red>该项目把玩的是强电,请谨慎。对强电保持敬畏之心,漏电防护必不可少。</font>
<font color=darkcyan>关于精度和本项目</font>
由于采用的是免校准的电能计量芯片,免校准的或许精度就是不够理想吧,又或许是电阻总是存在误差(可能我买的电阻精度虚标),使用出厂前进行校准的电阻才能达到宣传的精度。测试时,1700多瓦的功率比电表高了几十瓦,频率也低得不正常。不清楚其中缘由。
于是尝试以电表(或是市面上的功率计精度也是不错的)作为基准,对K值进行修正,结果令电压、电流、功率、频率都达到一个貌似还不错的精度,但还需要时间去检验。
继续摸索中。。。
PCB已有增加485收发器的版本,如果介意精度的话,我后面更新软件,加入对DLT645-2007电表的支持,花几十块钱买一个支持2007协议的1P电表接上去即可,但是即使1P电表足够小,应该也塞不进这个86盒里。
现时仅作DIY心得和资料分享,具体技术细节会分part发布到CSDN。
对于小白来说,可能配置开发环境和导入工程就够你折腾了,请务必有足够的耐心才去复刻。
该DIY项目于5月发布硬件图纸,10月才实现基本功能,对ESP不太熟悉、事情比较多加上本人做事拖拉,我一度以为这项目要难产。技术水平实在有限,对于ESP和电能计量我也是边学边做,WEB页面也是凭着大学课程的记忆以及百度去做出来的,效果就不能要求太多了。
先放一两张成品图
<center><font color=blue>局域网下访问WIFI计量插座的主页</font></center>
<center><font color=blue>暂未对86白板的按键和屏幕部分作开洞处理</font></center>
<font color=darkcyan>材料与硬件</font>
从上图可知,该项目成品的外观没什么美感可言,要塞入这些东西,找不到合适的公模外壳。
结构件、工具、线材、辅材等如下
部位 | |
---|---|
外壳 | 常见的86两位明盒 |
86面板 | 五孔面板,自己根据需求选择 |
PCB遮羞布 | 86空白板 |
接插端子 | 带2固定孔的品字插座,带3根短线 |
供电线 | 品字线,俗称电饭锅线 |
M4塑料螺丝螺母 | 将品字插座固定住,货还没到齐,图中的是临时固定的 |
低压供电模块 | 从手机充电头上拆的,5V1A的即可,或者tb优信电子买一个迷你开关电源,5V700mA。用过,没有炸机 |
热缩套管 | 将低压供电模块包住防止短路 |
小型手持切割机 | 切割底盒以将品字插座塞进去、给空白面板开孔 |
按键键帽 | 延长按键塑料部分,也有绝缘的作用 |
绝缘材料 | 将底盒的孔以及空白面板的孔封住,避免触电,其中空白面板的还要兼顾透明以及美观,还没找到合适材料 |
烙铁 | 零火线的焊接起码要用60W的电烙铁,最好是内热式的,30W的搞不定那大面积的铜皮 |
PCB设计
<font color=darkorange>注意:低压供电模块的负极需要和PCB上的GND接到一起的,不管是以火线还是零线作为GND,都不要去触碰低压供电模块!!!</font>
以火线还是零线作为GND,对测量精度不会有很大影响。
为什么电表火线作GND呢?我想应该是计费的需要,这样电流采样就在火线上,一定程度上能避免窃电。这里就没这个需求了,用零线作GND或许还能保你在不小心碰到PCB的时候是安全的。
这里用火线作GND的好处是显而易见的,和PCB相接的零线只作电压采样了,线径就没要求了,焊接也容易了一些。
CH340C和C口不是必需的,找一个CH340C或CH340G模块,将上面的TXD RXD RTS DTR这4根信号线与8266右上方的排针连接即可下载程序。后面的升级都用FOTA去完成。不差钱的话全部焊上去那就更方便美观了。
接线图
物料补充说明
排针 | 我这里连接上下层PCB的排针金属长度是25mm,再长2mm左右会更容易焊接 |
塑料柱子 | 连接两块板的是M3x20的双通,下板底下的是M3x6+6一头是母另一头是公,上板的螺丝是M3x10 |
ESP8266 | 用的是ESP8266-12E/12F,4Mflash,用更小闪存的版本不保证能正常烧录和工作 |
品字插座固定螺丝 | 可以是M3也可以是M4,取决于你买的品字座固定孔孔径,螺丝长度可以买10mm以上,宁长勿短,长了还能剪短。最好用塑料的 |
<font color=darkcyan>软件</font>
获取项目代码
[项目代码地址],或附件处获取。
安装开发环境以及烧录
> 按照文章去操作。
>
> 我在这文章底部放了工具的下载链接,按教程安装好IDE和工具链,然后导入附件的SDK以及工程。
>
> 执行一次编译和有线烧写之后,并按后续步骤配网成功以及配置好本地服务器和IP、端口后,ESP8266便支持FOTA。
>
> 本工程和文章中的不一样了,如果看不懂不会操作,我再演示一次导入如下图
<center><font color=blue>依次点击File>Import > C/C++ > Existing Code as Makefile Project > Next > Browse,选择解压出来的ESP8266_RTOS_SDK路径,并按照图中配置,点finish</font></center>
<center><font color=blue>左侧Project Explorer的ESP8266_RTOS_SDK上右键选择Properties,点击C/C++ Build,Build directory填入本工程的路径。这里是相对路径,你也可以像文章里的那样用绝对路径</font></center>
<center><font color=blue>点击Environment,添加一项IDF_PATH,路径为ESP8266_RTOS_SDK的路径。这里是声明IDF/SDK的路径,一般不需要改变的,如果要更改编译的工程,上一张图片的工程路径需要更改</font></center>
配网
> 1. 初次烧入固件/使用,如果默认的wifi ssid和你家的不同肯定是连接不上wifi的,稍等片刻会自动切换到AP模式,关掉手机数据网络,选取名为TyrionMon的WIFI进行连接,密码如下图
>
> 2. 连接上之后,浏览器(测试使用的浏览器是Via)输入192.168.4.1,登入内置WEB页面。
>
> 3. 进入设置页进行WIFI配置即输入要连接的2.4G WIFI的名称和密码,完成之后点击重启。
>
> 4. 复位之后,WIFI计量插座尝试连接WIFI,连接成功将会在OLED屏上显示192.xxx的IP地址,这时手机便可以在局域网下通过这个IP地址访问插座。
>
> 5. 有些路由器有IP租期的,需要将租期设置大一些,不然插座的IP经常变化就烦人。
FOTA
> 1. 先按照文章第三步安装本地服务器。
>
> 2. 将工程build目录下的wifi_socket.bin文件拷贝到本地服务器(nginx的html目录)并重命名为ota.bin。
>
> 3. 强烈建议电脑边一直放置一块ESP8266核心板,每次OTA前先烧录到核心板里确定这个版本的固件不会导致芯片不断复位,否则不断复位会导致下一次OTA无法进行。
>
> 4. 进入“其它配置”页面,如下图。输入你安装了本地服务器的电脑的IP和服务器端口,随后返回上一页,点击FOTA,将依次显示FOTA准备中、FOTA进度百分比、FOTA完成,随后点击重启。
校正K值
> 上面提到,对K值进行修正可以提高各计量值精度。
>
> 如果按照官方给出的电路参数去设计,理论上K值为1,但是电阻始终是存在误差的。
>
> 电压K值计算:先确保电压K值配置为1,插座显示值÷电表显示值,例如WIFI插座显示224.856V,电表显示221.1V,相除得1.016987788;
>
> 电流K值计算:先确保电流K值配置为1,接一个较稳定的负载,例如烧水壶。插座显示值÷电表显示值,例如WIFI插座显示8.271A,电表显示7.938A,相除得1.014195;
>
> 23年11月已更新为直接输入标准电压电流值(电表的数值),由ESP8266执行计算K值。
校正按键
> 采用五向按键,根据AD值判断按下的按键
>
> 校准方法:按下上键,看见当前值有变化,点击图中上键,当前值将更新到上键处,即完成上键校正
>
> 暂未使用按键
一些参数
> 调试时用到
WEB页面图标获取
> 网站链接
<font color=orange size=5>to be continue</font>
设计图

BOM


评论