腾讯云物联网智能插座,支持微信小程序远程控制,可查看电压、电流、功率、累计用电量等信息。
本项目包含强电电路,开发过程中请注意安全!
视频演示
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背面
接线参考
颜色 | 状态 |
---|---|
绿色长亮 | 设备工作正常,待机中,负载断电 |
七彩呼吸 | 设备工作正常,负载电源已接通 |
蓝色闪烁 | 网络连接中,配网中 |
白色闪烁 | 恢复出厂设置 |
红色闪烁 | 负载电流过大,强制断电 |
负载电源接通后指示灯变为七彩呼吸状态,指示灯颜色与负载功率相关,功率由小到大依次为蓝青绿黄红。 颜色与功率参考
功率 | 颜色 |
---|---|
0-100w | 蓝色 |
100-300w | 青色 |
300-500w | 绿色 |
500-800w | 黄色 |
800w以上 | 红色 |
原理图及PCB参见上方开源链接及doc目录内相关资料
ESP TR
丝印标记的两个排针上以下为我采购时的价格,仅供参考
名称 | 型号 | 单价 |
---|---|---|
外壳与五金 | 无 | 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元 |
以下降本方案仅提供思路,所有软硬件需自行开发。
project智能插座.json
的内容粘贴进去,完成后点击【保存】 个人DIY玩家可以忽略,正式量产请参考官网文档 批量投产
当智能插座检检测到负载电流过大时会强制断电并上报告警消息,下面进行相关功能设置
flash_download_tool_v3.8.5.exe
,依次点击【Developer Mode】、【ESP8266 DownloadTool】前提条件:已安装Keil—MDK,至少有ST-Link、JLink等调试器之一
适用条件:最纯粹的懒人方案,硬件方案完全照搬,仅修改一些不重要的元件,单片机、ESP8266模组、电量计芯片、电流互感器、电压互感器、采样电阻的参数必须完全一致
开发步骤:
projectqcloud-iot-sdk-tencent-at-basedincludeconfig.h
,开启 #define DEBUG_DEV_INFO_USED
宏projectqcloud-iot-sdk-tencent-at-basedporthal_os.c
中填入“后台开发”章节创建的 产品ID、设备名、设备密钥,代码如下#ifdef DEBUG_DEV_INFO_USED /* 产品名称, 与云端同步设备状态时需要 */ static const char sg_product_id[MAX_SIZE_OF_PRODUCT_ID + 1] = "在这里填你的产品ID"; /* 设备名称, 与云端同步设备状态时需要 */ static const char sg_device_name[MAX_SIZE_OF_DEVICE_NAME + 1] = "在这里填你的设备名"; /* 设备密钥, TLS PSK认证方式*/ static const char sg_device_secret[MAX_SIZE_OF_DEVICE_SERC + 1] = "在这里填你的设备密钥"; #endif
projectMKD-ARMproject.uvprojx
F7
编译,按F8
烧录适用条件:想要了解本项目的更多软件细节,或出于降本等原因更换了不同型号的单片机,要求有一定软硬件开发经验
这里以将主控更换为 STM32F103C8T6 为例,假设你已经画好了新的原理图和PCB,软件开发过程大致如下:
projectTencentOS-tinyarcharmarm-v7mcortex-m0+armcc
内的代码,STM32F103C8T6为cortex-m3内核需使用 projectTencentOS-tinyarcharmarm-v7mcortex-m3armcc
内的代码,请自行更换projectTencentOS-tiny os_config.h
,详细内容请参考官方文档projectSrcstm32g0xx_it.c
,该文件由 STM32CubeMX 自动生成,除了需要添加自己的逻辑代码以外,在 void PendSV_Handler(void)
前添加 __weak
关键字,因为Tencent OS Tiny已经实现该函数projectSrcstm32g0xx_it.c
,在 void SysTick_Handler(void)
内添加 Tencent OS Tiny 任务调度相关代码,如下所示void SysTick_Handler(void) { /* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); /* USER CODE BEGIN SysTick_IRQn 1 */ if(tos_knl_is_running()) { tos_knl_irq_enter(); tos_tick_handler(); tos_knl_irq_leave(); } /* USER CODE END SysTick_IRQn 1 */ }
projectuser_codeuser_utils.h
内相关设置 | 起始地址 | 结束地址 | 大小 | 说明 | | :--------- | :--------- | :---- | :--------- | | 0x08000000 | 0x0801afff | 108KB | 程序 | | 0x0801b000 | 0x0801bfff | 4KB | 设备信息 | | 0x0801c000 | 0x0801ffff | 16KB | 累计用电量 |projectqcloud-iot-sdk-tencent-at-basedusr_logicdata_template_usr_logic.c
本工程带有简易量产方案,使用步骤如下
toolsdevice_info.txt
,填入上一步生成的设备信息,格式为 PRODUCT_ID DEVICE_NAME DEVICE_SECRET
,每行一个,不得有任何多余空格、换行等,例如
PVXXXXXXDN my_smart_socket_001 cyBXXXXXXXXXXXXXXXI/z5== PVXXXXXXDN my_smart_socket_002 yGhXXXXXXXXXXXXXXXBtZX== PVXXXXXXDN my_smart_socket_003 gdGXXXXXXXXXXXXXXXYWdl==
device_info_hex_generate.py
脚本,在当前目录下会生成对应的 DEVICE_NAME.hex
文件project.hex
文件DEVICE_NAME.hex
文件STM32 ST-LINK Utility
为例,软件启动后点击 File->Open file,选择project.hex
,点击【Connect】进行连接,点击【Program & Verify】进行烧录,再次点击 File->Open file,选择DEVICE_NAME.hex
,点击【Program & Verify】进行烧录,完成后点击【Disconnect】断开连接 注意:设备信息不得重复烧录,如有两台及以上的设备烧录了相同的设备信息,使用过程中会出现两台设备互相踢对方下线的情况
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
!注意:请使用浏览器自带下载,迅雷等下载软件可能无法下载到有效资源。
欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeworld”及时沟通。
EEWorld Datasheet 技术支持