宿舍灯的智能化改造方案
前言
鉴于每天晚上各室友都对宿舍关灯的体验不是太好,尤其是在冬天,下床去关灯实在是痛苦。所以,在多方考虑下,准备开始改造宿舍的灯控电路,让宿舍开始智能化。
【文章仍在更新中,尚未完成】
硬件方面
摘要
在硬件方面,采用了esp32的MCU,其实esp8266也完全够用。只是因为刚好手里有块esp32,就顺手拿来用了,感觉有点浪费esp32上面这么多的IO,还顺手去买了一个DTH11用来监测温度和一个PIR人体传感器模块用来做自动化。秉承着不要浪费IO的原则,后续还计划安装一个互感器来监测电流情况。可以实时查看寝室的用电情况。感觉离全寝室智能化又近了一步。
前置准备
- esp8266或esp32 开发版
- 一台NAS或者其他可以运行home assistant的设备
- 宿舍有Wi-Fi连接(可以购买破解路由器或者自己破解)
- 亿点点 导线(注意220V电路用的导线不能太细!)
- 2路继电器
- 两个一大一小的电阻(这里采用的是4K和47.8K的电阻)
- (可选)其他你想接入的传感器
开始
首先,为了尽最大可能保留原来电路的功能不被改变,需要将开关接入到单片机。让实体开关的开启和关闭产生高低电平信号,从而对单片机进行控制。所以需要首先搭建如下的电路。
搭建好了之后,将搭建好的电路接上单片机。然后连接继电器的IO引脚,以及其他继电器。记好每个设备所对应的IO接口,后续可以在软件中定义这些接口。最后连接好的成品应该是这个样子
然后拆开宿舍的开关面板,修改电路。
软件方面
概述
软件方面主要采用了esphome + homeassistant 的方案。这种方案胜在开源,稳定,简单。不用自己重复造轮子。
安装python环境
python环境的安装比较简单。但更建议的是使用python虚拟环境。最大的问题就是python不同的包之间会互相冲突。为了避免这种情况,我这里安装aconda用于管理虚拟环境。其他的虚拟环境也可使用。去官网下载安装好aconda后,在NAS上执行
conda create -n esphome python=3.7
conda create -n homeassistant python=3.8
conda activate esphome
pip install esphome
conda deactivate
conda activate homeassistant
pip install homeassistant
conda deactivate
安装并配置好环境。然后分别运行两个包
conda activate esphome
esphome dashbaord ~/esphome
conda activate homeassistant
hass -v
然后就可以访问http://{你的服务器IP}:6052打开esphome页面了。打开后根据提示选择你的芯片,并创建一个配置文件。
配置esphome
创建好后,在配置文件中添加如下的设备配置
switch:
- platform: gpio
name: "Light_1"
id: light_1
pin:
number: {继电器1接的IO口}
inverted: false
# 根据你继电器的控制方式确定是否反转信号
restore_mode: ALWAYS_OFF
- platform: gpio
id: light_2
name: "Light_2"
pin: {继电器2接的IO口}
restore_mode: ALWAYS_OFF
sensor:
- platform: gpio
pin:
number: {开关1接的IO口}
inverted: false
filters:
- delayed_on: 100ms
- delayed_off: 100ms
name: "Switch1"
on_press:
- switch.toggle: light_1
on_release:
- switch.toggle: light_1
- platform: gpio
pin:
number: {开关2接的IO口}
inverted: false
filters:
- delayed_on: 100ms
- delayed_off: 100ms
on_press:
- switch.toggle: light_2
on_release:
- switch.toggle: light_2
name: "Switch2"
- platform: gpio
pin:
number: GPIO13
filters:
- delayed_on: 10ms
- delayed_off: 10ms
具体的配置方法可以在esphome.io 网站上面查看。

配置homeassistant
访问http://{服务器IP}:8123,打开homeassistant,简单初始化后,你应该会进入到homeassistant的配置界面。

在配置-设备和集成里,点击添加-esphome,等待自动发现后点添加, 就大功告成了。后续就可以访问home assistant的地址来控制设备了。更多进阶的玩法可以去homeassistant的官网查看。
成品图
