本帖最后由 nbxzl 于 2020-12-21 18:35 编辑
原ESP8266模块采用easyesp固件运行于domoticz平台。domoticz与天猫精灵控制授权中转服务,需要从domoticz论坛的热心坛主个人服务器走,从天猫发出控制语音到设备执行,反应速度有些慢。 在网友un123介绍下,决定更换成HomeAssistant平台,ESP8266刷入esphome固件。esphome固件还能联网OTA空中升级,非常方便测试及升级。天猫控制授权中转服务采用大神网友cnk700i的HAVCS插件之“模式一 http模式”,为了SSL证书,狠心把用了10多年3322免费域名(收费版也没法申请SSL)换成阿里云,直接包了五年CN域名,为此花费近200元。 刚接触ESP8266时,图省事,直接用其开发板加电源模块,用跳线方式连接,算是凑合用用。受网友un123影响,也参考了HomeAssistant论坛众多网友的设计,硬件分布上与网友TwoOne的智能开关Spark类似,原理图控制线路图部分与其不同。调试并多次改板后ESP8266三路控制板,测试非常稳定。
下面介绍下制作过程: 一、PCB设计: 作为一个非专业设计人员,设计时参考了《GJB 4057-2000 军用电子设备印制板设计要求》,部分截图如下
另外,通过其它资料进行比较,截图如下
导线宽度能通过电流的截图如下:
二、PCB设计尺寸: 控制开关设计尺寸为64mmx64mm,
三、控制板其它考虑: 1、 采用AC转DC模块化电源,按其数据手册设置保险、压敏电阻; 2、 8266模块为3V供电,继电器为5V,为其增加光耦进行隔离驱动; 3、 使用宏发16A继电器,PCB已经采用同线路双层敷设,以加大电流,若有必要还可加焊铜线; 4、 使用大电流输入接线端子; 5、 引出ESP8266全部可用引脚,方便后期升级改造; 6、 刷三防漆。控制器安装在86盒内,长时间运行会与外界产生温差,导致板上聚集湿气,缩短电气间隙距离,无论对控制或安全都不利。因此,在 PCB板上元件焊接完成并清理后,应给PCB板刷上三防漆,三防漆具有优越的绝缘、防潮、防漏电、防震、防尘、防腐蚀、防老化、耐电晕等性能。提高电气间隙与爬电距离,巩固PCB设计安全。
3D顶层图
3D底层图
能力有限,不足之处希望各位多提出宝贵意见,以提高自己。比如这回在PCB设计过程中把火零线引脚丝印改反了,只能下次注意修正。 为保证控制板长时间稳定使用,在嘉立创做板同时进行SMT焊接,而嘉立创SMT元件库分基础库和扩展库,基础库都包含在50元的工程费内,目前扩展库费用较贵,本次就没加入SMT。此外一些接插件等回来后补上就行。或许大家会问:为什么要SMT,难道焊接水平不行,元件也不多。我的回答:一是方便省事,二就是备料。一两个电阻电容的要按它10倍或百倍数量才能采购,用不了几次就放在那,想想这些年买的备料都是泪,看着好像有用,但会放上几年都不知道。嘉立创也经常给大家优惠,就像这次50元工程费就省了,哈哈!!! 嘉立创SMT价格:
ESP8266控制板元器件成本大概52元(不含PCB及SMT),清单如下:
上面表格深浅绿色行是已经SMT好。从中可以看出,除开几个LED、电容外,其它都是大元件,大大节省自己的时间。还想省钱就不安装10P插座、按键,可省10元左右。 从嘉立创下单PCB、SMT制作完成到发货,时间大概一周,如果在每天5点前、不在周六日提交,时间还能少一二天。 五块控制板的PCB+SMT费用:
发回的PCB板:
焊接好的成品,后期再刷三防漆:
ESP8266三路控制板原理图:
如果说硬件设计上还有些基础,软件则全是在HA论坛学习各位大神作品了。刚接触HA论坛,一眼望去好像什么都有全晕了,在里面转转逛逛,不是很系统,找不到学习重点,只能是需要什么找什么。还有坑的地方,HA更新较快,配置也随版本的升级可能需要调整,因此,别人运行正常的代码,自己就是无法使用。在这给大神一个建议,当你把代码分享给大家时,如果能把运行平台、HA版本等信息一起说明,将会大大方便后来的小白们。 简单介绍下我的ha平台: 本人是在黑群晖系统上以社群源的方式安装运行的Hassio,homeassistant运行在Docker容器下,目前HA平台版本为117.2
substitutions:
devicename: esp8266_3os ## 设备名称
#################################################################################
esphome:
name: $devicename ## 设备名称变量
platform: ESP8266 ## 模块平台
board: nodemcuv2 ## 模块类型
esp8266_restore_from_flash: yes ## 从闪存恢复
wifi: ## WiFi 设置
ssid: "TPLINK" ## WiFi SSID
password: "admin" ## WiFi 密码
use_address: 192.168.x.x ## 指定烧录固件时候目标设备IP,优先级高于静态IP(例如,如果您更改了静态IP并想将OTA刷新为先前配置的IP地址)
manual_ip: ##手动配置节点静态IP
static_ip: 192.168.x.x ## 固定IP
gateway: 192.168.x.x ## 网关
subnet: 255.255.255.0 ## 子网掩码
dns1: 192.168.x.x ## DNS1
dns2: 8.8.8.8 ## DNS2
ap: ##wifi连接失败时启用备用热点
ssid: "esp8266" ## WiFi SSID
password: "password" ## WiFi 密码
fast_connect: on ##如果启用,则直接连接到WiFi网络,而无需先进行全面扫描。这对于隐藏网络是必需的,并且可以大大缩短连接时间。默认为off。
captive_portal: ## 强制门户认证
#logger: ## 启用日志 #通过TTL看log信息,取消注释下面这行,读取接口为RX1,具体见模组接口说明图 #baud_rate: 0 #hardware_uart: UART1
api: ## 启用HomeAssistant API
password: "password" ## 密码
# reboot_timeout: 30min ## 断网重启时间
ota: ## OTA无线升级
password: "password" ## 密码
port: 8266 ## 端口
web_server: ## 启用网页调试模式
port: 80 ## 端口
#################################################################################
switch:
- platform: gpio #开关一
name: '${devicename}_s1' #设备控制名
id: relay1 #控制ID号
pin: #控制引脚
number: 12
inverted: yes
icon: "mdi:lightbulb" #图标
restore_mode: ALWAYS_OFF #恢复模式:关闭
- platform: gpio #开关二
name:'${devicename}_s2' #设备控制名
id: relay2 #控制ID号
pin: #控制引脚
number: 14
inverted: yes
icon: "mdi:lightbulb" #图标
restore_mode: ALWAYS_OFF #恢复模式:关闭
- platform: gpio #开关三
name: '${devicename}_s3' #设备控制名
id: relay3 #控制ID号
pin: #控制引脚
number: 16
inverted: yes
icon: "mdi:lightbulb" #图标
restore_mode: ALWAYS_OFF #恢复模式:关闭
|