新国标五孔计量插座10A
简介
本插座使用新国标五孔外壳,相比老款外壳更容易布线.在保留老款特性(磁保持继电器、电能计量、OTA升级固件)的同时,也解决了最后的短板(电流计数不稳定、外壳无法完美贴合等).是计量插座的完全体.
简介:本插座使用新国标五孔外壳,相比老款外壳更容易布线.在保留老款特性(磁保持继电器、电能计量、OTA升级固件)的同时,也解决了最后的短板(电流计数不稳定、外壳无法完美贴合等).是计量插座的完全体.开源协议
:CC BY-NC-SA 3.0
描述
新国标五孔计量插座10A
本插座使用新国标五孔外壳,相比老款外壳更容易布线。在保留老款特性(磁保持继电器、电能计量、OTA升级固件)的同时,也解决了最后的短板(电流计数不稳定、外壳无法完美贴合等)。是计量插座的完全体。
免责声明:
本插座使用220V市电,DIY及使用时可能存在电击、高温烫伤等多种可能至人伤、残、死亡的风险。请严格按照安全规范操作并做好充足的保护,未成年人请在监护人的辅助下操作。使用本方案,表示你已经对安全风险有充足的认知,请确认自己有足够的知识储备再行操作。造成的任何损失和后果自负,本人不承担任何法律上的责任。
本人是软件方向,非电子硬件科班生,只是业余爱好者。因此可能很多基本的硬件常识都不知道,电路图上如有任何不妥,还望各位不吝赐教,拱手致谢。
硬件说明:
1.两种方案可选,电量计量芯片可使用方案1(BL0937)或者方案2(BL0942)。
2.之前使用的老版外壳,PCB布线上有诸多不便。插脚那里是直上直下直通电路板的,焊接时非常的不优雅。另外外壳上的凸起始终会被挡住,不太完美。所以更换了外壳,并解决了以上缺陷。
3.因为外壳尺寸限制,磁保持继电器只能选用超小型的,我只找到这一种适合而又不那么贵的(FH44L-1AT-L1-DC5V),有更合适的请在评论区留言(要求:磁保持继电器,耐压220V10A及以上,大概尺寸20x10x15mm)。
4.MCU部分需要单独打板,因此这个项目实际上需要打板2块,分别是(方案1或方案2的)插座主体和直插模块,2块PCB的厚度都是1mm。
5.方案1的计量芯片使用了BL0937,它的好处是便宜、外围电路简单。缺点是使用前需要校准,不过只用校准一次,问题不大。
6.方案2使用BL0942,它的好处是不需要校准,另外计量功能稍多一点。
7.没有使用隔离供电,220V市电L线直接连GND,因此整个PCB都带强电。调试时必须带外壳插在插板上测试,外壳在没有粘胶的情况下很容易被拔掉。请爱惜自己的生命。
8.如果在PCB打板过程中,厂家提示:中间铣槽连接位太小、会断板等,请回复:我已悉知并可接受此原因带来的风险,请直接按Gerber文件生产,谢谢!
软件说明:
1.编译环境为VScode+PlatformIO
2.使用开源的MQTT方案,不花一分钱就可以获得一个不限制设备数量和使用期限的云服务器。
3.实际使用中发现公共、免费的MQTT服务器虽然也能用,但延迟比较大。如果对实时性要求比较高的,建议在云服务器或者路由器上自建MQTT服务器(推荐软件EMQX,免费、性能强大)。
4.手机端不再使用MQTT dashboard_v0.4.5_apkpure.com.apk,这个APP已经很久没有升级过了,而且不能完整支持JSON ,没法用。改成附件里面的IoT MQTT Panel_0.45.18_Apkpure.apk,这个APP界面还行,使用也还方便,也完整的支持JSON,就是有广告这点不好。(有更合适的手机APP请在评论区留言)
软件主要功能:
1.支持网页配网
2.支持微信扫码配网(不推荐,不能100%成功)
3.支持网络对时NTP
4.支持MQTT,有助于更透彻的理解物联网工作机制。使用MQTT手机APP上的开关、倒计时器、定时器等方式开启或者关闭插座。
5.定时器程序是在插座本地实现的,非云端实现。只要提交参数上去保存好,哪怕后来断网了,插座还是可以定时开启或者关闭。所以用本插座物理重启光猫或者路由器,成为可能。
6.支持OTA在线升级固件,通过网络就可以升级固件。再不用痛苦的把板子拆下来重新刷固件了。
7.支持LittleFS文件系统,可以掉电保存各种参数。即使插座掉电重启,原先的参数还在。
8.支持电量计量,可显示实时电压V/电流mA/功率W,以及总功耗kWh。
9.网页配网页面,支持通过web上传固件及文件系统。用于刷固件变砖的恢复。
10.支持HomeAssistant MQTT自动发现,可以使用MQTT集成,方便的进行控制。
相关元件来源:
1.插座外壳(包括里面的220V10A公母一体插座)-> 上阿里巴巴一次买2个以上 便宜,电子按键就是普通的6x6x5侧按键,也可以自己单独买。
2.AC220V TO DC5V开关电源模块 右边的链接我都买过(注意:要买5V带脚的)-> 链接1 链接2 链接3
4.ESP-12S模块 可购买ESP12E/F/S,三种型号都是兼容的。F最便宜我经常 -> 买这个,不到5块钱还包邮。
5.磁保持继电器(注意:要买FH44L-1AT-L1-DC5V(5V4脚单线圈))-> 购买链接
6.磁保持继电器驱动芯片CN8023B(注意要买SOT-23,6脚的) ->购买链接
7.(可选方案1)电能计量芯片BL0937 SOP-8贴片 我买的是-> 这个购买链接, (可选方案2)BL0942 (注意要买SSOP10,10脚的) -> 购买链接
8.除此以外其他的元器件(包括电阻、电容、AMS1117、发光二极管LED等)我基本上都是在优信电子买的-> 优信电子淘宝店
9.ESP8266开发测试架/烧录器(初学者才需要),我买的是这个-> 购买链接
10.粘外壳用的,补鞋胶 ->链接
软硬件安装步骤:
1.先给ESP12S刷好固件,参考:https://oshwhub.com/article/ci-bao-chi-WIFIzhi-neng-cha-zuo-ruan-jian-gong-cheng-dao-ru-VSCODE-yi-ji-bian-yi-shuo-ming
2.给ESP12S配网设置好MQTT参数,参考:https://oshwhub.com/article/ci-bao-chi-WIFIzhi-neng-cha-zuo-ruan-jian-diao-shi-shuo-ming
3.在手机上安装MQTT APP,并设置好MQTT服务器参数。 教程: https://oshwhub.com/article/xin-guo-biao-wu-kong-ji-liang-cha-zuo-10A-pei-tao-shou-ji-APPan-zhuang-ji-she-zhi-shuo-ming
4.把刷好固件的ESP12S焊接到PCB上
5.焊接主体PCB步骤
6.上面大电流加焊那个地方,缺口那里一定不能焊的太高了,会挡住外壳。
7.焊好的各个角度图
8.装壳测试,******不要用胶水******先大致装起来,万一有问题还可以返工。(必须插在插板上测试,因为外壳没有粘胶,很容易被拔掉,请爱惜自己的生命)
9.等测试完没问题,最后再把外壳用胶水粘起来,要等24小时胶水干了才能使用。
(软硬件安装完成)
硬件更新说明:
2023/6/22
1.硬件更新(插座PCB BL0937 V1.1)
磁保持继电器驱动弃用场效应管,改用驱动芯片CN8023B。
在6月2日的更新中,场效应管虽然可以正确驱动磁保持继电器,不会出现上电瞬间抖动的问题。
但后续测试中发现,如果频繁打开、关闭插座开关,H桥有非常高的几率会直接将5V、GND短路。
预防短路的电路,我觉得比较复杂、元件多、不太优雅,所以重新找了一个驱动芯片,也就是CN8023B,不再使用场效应管驱动继电器。
2.增加了BL0942方案的插座PCB,该方案的优势是只要关键位置的测量电阻精度为1%,就基本不用校准。
2023/6/2
硬件更新(插座PCB V1.0,ESP12S双面直插模块2x6P V2.7)
1.弃用驱动芯片MD7620A,因继电器上电瞬间抖动的问题。
经过研究,发现这是继电器驱动芯片MD7620A的硬件BUG,跟IO抖动无关。
具体原因是因为ESP12S在初始化时会自动设置IO脚为输入模式,也就是IO输出置高电平,这个时间有100-300ms。
即使人工设置IO脚为低电平,但初始化IO为高已经发生,并且无法避免。
而MD7620A芯片,当2个输入都为高时,输出不确定(也就是继电器可能闭合也可能断开)。
外在表现就是:当设备上电时,继电器可能会吸合然后断开,也就是闪了一下。也可能不会发生,有一定的概率。
这是MD7620A芯片的硬件BUG。我的解决办法是换成4个场效应管组成H桥,驱动继电器。实测再无上电时继电器抖动。感谢@21568P @hlg123 的报错。
2.插座主体PCB,已增加底层的铜皮和过孔,开槽也向下扩展了。感谢@squarer的指点
3.直插模块PCB,已将2个电容挪到了VCC引脚的附近。感谢@squarer的指点
2023/2/15
1.硬件发布(插座PCB V0.7,直插模块右插脚 V2.4)
软件更新说明:
(请注意看源代码的更新时间,如BL0937的源代码时间是2023/9/6,那么它就不具备2023/9/6之后的软件更新功能)
2023/12/11
1.添加了HomeAssistant MQTT自动发现设备的能力(以前只能发现MQTT实体),使用更方便。感谢网友的解决方案和示例代码。
2023/11/27
1.添加了看门狗机制,超过10分钟未发布将自动重启。
2023/11/10
1.增强WiFi断网连重连的能力。
2023/10/19
1.上电启动时,当WIFI未初始化(用户名、密码为空),会在等待1秒后自动进入网页配网界面。
2.客户端ID与MAC地址关联,第一次初始化时,客户端ID自动设置为MAC地址。
2023/10/8
1.修正了频繁切换开关时,有一定几率会造成插座死机的问题。 感谢 @unanxtg 的报错。
2.增加了在网页配网及微信配网界面,也能使用按钮切换开关状态,以及按钮10秒重启插座的功能。
2023/9/30
1.插座初始化时(在连接wifi之前),根据上次开关状态设置本次开关状态。感谢 @star19997 的建议。
2.修正了按钮切换开关状态时,状态没有正确保存的逻辑问题。
2023/9/6
1.增加了电量累计的功能,针对插座断电和不断电重启都有对应的处理。感谢 @matrixwell 的建议。
2.增加了“开关反向”的选项,用于调试。
2023/8/5
1.根据 @star19997 的反馈,调制了MQTT发布数值的阈值。只有当数值变化超过5%(或者距离上次发布时间已有5秒),MQTT才会发布。
2023/7/17
1.根据 @star19997 的反馈,增加了对MQTT用户名、密码的支持。
已做好的插座如需更新此功能,除了升级固件,还需要在配网页面升级LittleFS文件系统。因此参数会重置,需要重新配置。
2023/6/2
1.网页配网页面,现已支持通过web上传固件及文件系统。用于刷固件变砖的恢复。
2.已支持HomeAssistant MQTT自动发现,可以使用MQTT集成,方便的控制本插座。
2023/2/23
1.修正了倒计时参数掉电以后不能保存的问题,感谢 @liang_work 的报错。
2023/2/21
1.增加了一个LED控制开关
APP面板:
复制 开关
名字:LED长亮
JsonPath: $.led
JSON pattern for publish: {"m":"led","v":""}
(说明:ON,LED随开关长亮,开关开LED亮,开关关则LED灭;OFF,限制LED点亮延续时间,LED最多只亮100秒,减少光污染。)
2023/2/16
1.使用MQTT遗愿参数设置了设备在线状态。(赞叹:很巧妙的方法)
2023/2/15
1.软件发布
附件:
工程附件里面的3个PCB layout文档非常有用。我以前计量插座布线总是干扰很大,看完文档简直如醐醍灌顶。
OTA步骤:
1.在VSCODE里面编译固件
1.是编译固件的按钮,2是编译出来的固件地址。
2.将编译好的固件上传到一个HTTP地址,可以是网站或者是你的本地路由器,地址类似于:http://x.x.x.x/data/esp12s.bin
上传好以后一定要打开浏览器实际测试一下,看看这个固件地址是不是能正常下载。
3.在 WEB配网 里面设置好OTA固件链接,就是那个网址类似于:http://x.x.x.x/data/esp12s.bin
4.在手机APP里面点 升级固件
OTA升级时,LED会随下载进度快速闪烁。
升级成功会自动重启。
致谢:
感谢嘉立创yyds,每个月都要被我薅羊毛打板PCB。
感谢:@tuobeiyang @engineergao @DongDuZhiLang @shayulei @therealkamisama @xywl98 @EHE @LZGD @Egbert @小菜比 @skcks @全幼儿园最帅的男人 @lingbm
以及其他在评论区留言的大佬。因为你们的意见和建议,让我得到很多启发、学习到了更多的知识。
非常感谢!
评论