EEWORLD参考设计中心
腾讯云物联网智能插座,支持微信小程序远程控制,可查看电压、电流、功率、累计用电量等信息。
警告本项目包含强电电路,开发过程中请注意安全!
开源资料视频演示
https://www.bilibili.com/video/BV1qK4y1d7XK/
电路图与PCB
https://oshwhub.com/Code504/tencent-iot-smart-socket
工程代码
https://gitee.com/dma/tencent-cloud-iot-smart-socket
图片展示
插座正面
焊接完成后PCB正面
焊接完成后PCB背面
接线参考
参数说明
- 最高输入电压:250V
- 最大负载功率:1100w
- 待机功率:小于2w
功能特性
- 微信小程序远程控制
- 支持定时开关
- 可查看电压、电流、功率、累计用电量等信息
- 累计用电量超过10000度以后自动清零并重新开始计数
- 过载保护,负载电流超过5A强制断电并发送告警信息
- 呼吸灯直观指示负载功率
- 测量小功率用电器时(如待机的电视、小夜灯、没有连接手机的充电器等)误差较大,测量结果仅供参考
使用说明
- 智能插座接通电源,等待绿色指示灯亮起
- 打开微信,在主页面下拉,搜索“腾讯连连小程序”
- 点击加号添加设备,在电工照明中选择“插座”(或扫描二维码),按提示进行操作
- 长按智能插座的按键5秒后松开,蓝色指示灯闪烁,开始配网
- 配网完成后设备自动重启,小程序主页面可看到刚刚添加的设备
- 配网失败请重复第2、3、4步
- 进入设备主页面可控制开关、设置倒计时、查看电压、电流、功率、累计用电量等信息
- 设置倒计时,当倒计时减为0时开关的状态会翻转
- 负载电流超过5A智能插座会强制断电并推送告警信息,重新开关一次即可恢复正常
按键说明
- 单击控制开关
- 长按5秒配网
- 长按10秒恢复出厂设置,清空累计用电量等所有数据
指示灯说明
颜色 | 状态 |
---|---|
绿色长亮 | 设备工作正常,待机中,负载断电 |
七彩呼吸 | 设备工作正常,负载电源已接通 |
蓝色闪烁 | 网络连接中,配网中 |
白色闪烁 | 恢复出厂设置 |
红色闪烁 | 负载电流过大,强制断电 |
负载电源接通后指示灯变为七彩呼吸状态,指示灯颜色与负载功率相关,功率由小到大依次为蓝青绿黄红。 颜色与功率参考
功率 | 颜色 |
---|---|
0-100w | 蓝色 |
100-300w | 青色 |
300-500w | 绿色 |
500-800w | 黄色 |
800w以上 | 红色 |
原理图及PCB参见上方开源链接及doc目录内相关资料
元件选型:
- 我采用的是 STM32G070KBT6,不改动PCB的情况下可替换其他STM32G0系列的LQFP32封装的芯片,例如 STM32G030K8T6、STM32G071KBT6、STM32G081KBT6、STM32G431KBT6等,当然软件上需要有一些改动,在软件开发章节中会有详细说明。
- wifi芯片采用的是ESP-12F模组,由于空间有限,这里不得不采用转接板配合20mm长排针焊接在电源模块的上方。ESP的模组需要刷腾讯云固件,该固件要求Flash必须大于等于2MB,你可以选购其他Flash满足要求的ESP8266模组配合转接板使用。转接板的排针引脚与ESP-01模组完全兼容,如果打算使用ESP-01模组除了要更换长排针,还要确认Flash是否满足要求,据我所知ESP-01模组都是1MB的Flash,你需要自行更换2MB的Flash或购买加大Flash的型号。
- 继电器型号为 SRD-05VDC-SL-C,额定负载电流为5A,如需更大负载电流可更换其他型号,并同时更换电流互感器、修改PCB加粗相关线路。
- 电流互感器型号为 ZMCT103C,额定电流为5A,如需更大负载电流可更换其他型号,并同时更换继电器。
- 电量计芯片型号为 HLW8032,可更换 HLW8012、BL0937 等兼容芯片,另外的这几款芯片为PWM输出,PCB预留兼容设计,可以修改 SJ3 跳线并焊接 R14 电阻使用单片机的输入捕获引脚来接收信号。注意:其他几款芯片的程序没有开发,请自行适配!
排针说明:
ESP TR
其他说明:
- 火线、零线连接方式请参考前面的图片,输出火线一定要穿过电流互感器,如果将输入火线穿过电流互感器则智能插座自身的待机电流也会被同时测量。
- 复位键及其相关电阻、电容主要是为方便调试,可以省略。
- 为了使用方便指示灯采用的是WS2812,和外壳上预留的指示灯孔不匹配,这里最好用热熔胶、环氧胶之类的透光性比较好的胶封起来,就怕有人手贱拿东西乱捅,毕竟旁边就是高压电路,很危险!
以下为我采购时的价格,仅供参考
名称 | 型号 | 单价 |
---|---|---|
外壳与五金 | 无 | 5.50 |
电源模块 | HLK-PM01 | 11.00 |
主控 | STM32G070KBT6 | 12.50 |
电流互感器 | ZMCT103C | 2.72 |
ZMPT107-1 | 4.11 | |
电量计芯片 | HLW8032 | 3.6 |
继电器 | SRD-05VDC-SL-C | 2.36 |
WIFI模块 | ESP-12F | 8.83 |
PCB | 无 | 3.00 |
其他元件 | 电线、电容、电阻、排针、按键、LED等 | 10.00 |
共计63.62元 |
降本方案
以下降本方案仅提供思路,所有软硬件需自行开发。
- STM32G070KBT6 可以替换为 STM32G030K8T6,或者其他价格更便宜的单片机,但是代码上需要对内存大幅度优化
- 去掉单片机,直接在ESP8266上进行二次开发,这种方式的开发工作量最大,但降本幅度也是最大的
- 电源模块可以在某网站上找一找,最便宜的5V 3W电源模块甚至只要6元
- 采用单电源非隔离方案可以节省下电流互感器、电压互感器的成本,代价就是整个电路板带强电
- 采用双电源非隔离方案也可以节省下电流互感器、电压互感器的成本,但是节省下来的成本可能和添加一个非隔离电源差不多
新建项目与产品
- 在 腾讯云 官网注册开发者账号(已注册请略过)
- 登录 物联网开发平台,参考 项目管理 新建项目
- 参考 产品定义 新建产品并填写产品信息,其中【产品品类】选择【智慧生活】->【电工照明】->【插座】,【设备类型】选择【设备】,【认证方式】选择【密钥认证】,【通信方式】选择【Wi-Fi】,【数据协议】选择【数据模板】,创建完成后点击保存
数据模板
project智能插座.json
设备开发
- 在【设备开发】标签页下可以选择【基于OS开发】或跳过,不影响本项目后续开发流程
- 在【Topic列表】标签页下可以查看已有的Topic或添加自定义Topic,本项目不需要,可跳过
- 更多内容请参考官网文档 设备开发
交互开发
- 依次点击【交互开发】、【配置小程序】、【面板配置】
- 如图所示,这里可以配置小程序的页面,你可参考我的布局,或按自己喜欢的方式配置
- 依次点击【交互开发】、【配置小程序】、【配网引导】,在【选择配网方式】标签页下参照图片进行设置,【芯片方案选择 】设置为【乐鑫】,【首选配网方式】设置为【Smart Config】,【次选配网方式】设置为【Soft Ap】或【无】
- 更多内容请参考官网文档 交互开发
设备调试
- 设备端代码编译并下载后你可以在这里进行在线调试,
- 点击【设备信息】可以看到【设备名称】、【设备密钥】、【产品ID】,后续开发过程会用到这些信息
- 更多内容请参考官网文档 设备调试
批量投产
个人DIY玩家可以忽略,正式量产请参考官网文档 批量投产
数据开发
当智能插座检检测到负载电流过大时会强制断电并上报告警消息,下面进行相关功能设置
- 在左侧选择【数据开发】点击【新建数据流】,在弹出的串口内填入必要信息
- 拖入所需的功能模块并进行配置、连接
- 如图所示,在设备事件中选择你的智能插座产品,在【选择事件】中选择【DeviceStatus】,在【选择事件属性】中选择【Message】
- 如图所示。在【数据过滤】的【条件组合方式】选择【全部或】,过滤条件设置为【Message】、【等于】、【overcurrent】
- 如图所示。在【APP推送】或【公众号推送】中填入推送标题及推送内容
- 设置完成后点击【保存】、点击【启用】
- 更多内容请参考官网文档 数据开发
ESP8266模组烧录固件
flash_download_tool_v3.8.5.exe
单片机软件开发
前提条件:已安装Keil—MDK,至少有ST-Link、JLink等调试器之一
懒人版
适用条件:最纯粹的懒人方案,硬件方案完全照搬,仅修改一些不重要的元件,单片机、ESP8266模组、电量计芯片、电流互感器、电压互感器、采样电阻的参数必须完全一致
开发步骤:
projectqcloud-iot-sdk-tencent-at-basedincludeconfig.h#define DEBUG_DEV_INFO_USEDprojectqcloud-iot-sdk-tencent-at-basedporthal_os.c
projectMKD-ARMproject.uvprojxF7F8
进阶版
适用条件:想要了解本项目的更多软件细节,或出于降本等原因更换了不同型号的单片机,要求有一定软硬件开发经验
这里以将主控更换为 STM32F103C8T6 为例,假设你已经画好了新的原理图和PCB,软件开发过程大致如下:
projectTencentOS-tinyarcharmarm-v7mcortex-m0+armccprojectTencentOS-tinyarcharmarm-v7mcortex-m3armccprojectTencentOS-tiny os_config.hprojectSrcstm32g0xx_it.cvoid PendSV_Handler(void)__weakprojectSrcstm32g0xx_it.cvoid SysTick_Handler(void)
projectuser_codeuser_utils.hprojectqcloud-iot-sdk-tencent-at-basedusr_logicdata_template_usr_logic.c
量产
本工程带有简易量产方案,使用步骤如下
PVXXXXXXDN my_smart_socket_001 cyBXXXXXXXXXXXXXXXI/z5== PVXXXXXXDN my_smart_socket_002 yGhXXXXXXXXXXXXXXXBtZX== PVXXXXXXDN my_smart_socket_003 gdGXXXXXXXXXXXXXXXYWdl==
注意:设备信息不得重复烧录,如有两台及以上的设备烧录了相同的设备信息,使用过程中会出现两台设备互相踢对方下线的情况
Q&A
Q: Tencent OS Tiny的代码太大了,国内网络状况也不咋地,git clone总是失败怎么办?
A: 使用gitee新建一个仓库,选择导入已有仓库并填入 https://github.com/Tencent/TencentOS-tiny.git 待后台同步完成后就可以像github一样使用了,速度飞快。
Q: 隔离电源方案与非隔离电源方案有什么区别?
A: 请查阅doc目录下HLW8032资料
Q: 路由器重启后、或者断网后等情况设备就掉线了,有什么解决办法?
A: 官方ESP8266定制固件暂不支持wifi掉线自动重连,只能重启设备等待自动重连,或者重新上电。
Q: 外壳哪里买的?
A: 在国内著名电商网站上搜“智能插座外壳”,“智能插座外壳 含五金”之类的关键字就能找到。什么?你找不到同款?那大概是卖完下架了。
Q: 打算出成品吗?或者做小批量?
A: 个人精力有限,所有设计方案全部开源,有兴趣可以自己制作,觉得我的方案用着不爽欢迎自己改造。
Q: 能提供技术支持吗?
A: 个人精力有限,随缘吧!留言我尽量回复。
Q: 这个方案能商用吗?
A: 请遵守开源协议。
参考资料
腾讯云物联网开发平台文档 https://cloud.tencent.com/document/product/1081
腾讯云物联网控制台 https://console.cloud.tencent.com/iotexplorer
乐鑫官方AT固件列表 https://www.espressif.com/zh-hans/support/download/at
乐鑫Flash下载工具 https://www.espressif.com/sites/default/files/tools/flash_download_tool_v3.8.7_0.zip
乐鑫官方下载指导 https://docs.espressif.com/projects/esp-at/zh_CN/latest/Get_Started/Downloading_guide.html
AT命令集 https://docs.espressif.com/projects/esp-at/zh_CN/latest/AT_Command_Set/index.html
ESP8266腾讯云定制AT固件下载地址 http://download.espressif.com/esp_at/firmware/ESP8266/ESP8266-IDF-AT_V2.1.0.0.zip
ESP8266腾讯云定制AT固件开源地址 https://github.com/tencentyun/qcloud-iot-esp-wifi
腾讯云AT SDK https://github.com/tencentyun/qcloud-iot-sdk-tencent-at-based
Tencent OS Tiny https://github.com/Tencent/TencentOS-tiny
上一篇: 讯飞iFLYIoT智能物联网平台
下一篇: 物联网开发平台 产品管理