简介:使用磁保持继电器的WIFI智能插座。
节电性能优良,整体功耗只有0.65W左右。可长期使用不会造成继电器线圈发热。还支持MQTT和OTA在线升级固件。本文以WIFI智能插座为主题,讲述ESP12S、ESP8266 硬件等的使用技巧……并完成智能插座的制作!
下文为软件、硬件安装步骤,超级详细,可以一步一步跟着做~
安装步骤导航(7步):给ESP12S刷固件(3)、配网设置MQTT参数等(5)、安装MQTT APP并设置参数(4)、焊接、测试、最后的焊接、装壳。
安装步骤
1.先给ESP12S刷好固件1.软件工程导入
1.安装Visual Studio Code(vscode),免费软件,请自行百度安装教程。
2.在vscode里面安装PlatformIO插件,请自行百度。
3.将工程《磁保持WIFI智能插座》附件中的《VSCODE源代码》。
解压缩以后用VSCODE打开里面的文件夹,就等于打开了这个软件项目。下载附件解压缩,可以看到里面有一个文件夹WIFI_PLUG_ESP12S_HF3F 。文件夹根里面有一个platformio.ini。如果不清楚,请私信我【701固件】。这里无法上传文件……
4.在vscode 菜单->文件->打开文件夹->到上一步解压缩的WIFI_PLUG_ESP12S_HF3F 文件夹->选择文件夹。
5.这样软件工程就导入完成了。
2.编译并上传固件(烧录固件)
1.把ESP12S卡在ESP8266开发测试架/烧录器上,插入到电脑上的USB口,可能需要自己装驱动。
根据USB口不同,可能还需要修改一下platformio.ini文件里面的COM5,改成你自己的COM口。
怎么看COM口?我的电脑->设备管理器->端口
2.将ESP8266开发测试架/烧录器打开电源,在vscode里面打开文件 src/main.cpp,并点击PlatformIO:Upload。
3.因本软件使用了LittleFS文件系统,因此还需要给ESP12S安装文件系统。依次点击如下1、2、3、4按钮:
文件系统安装完成。
3.软件运行:
1.依次点击如下1、2按钮。
2.按一下ESP8266开发测试架/烧录器上的RST复位按钮,重启ESP12S。
3.在vscode界面看到这串输出,就表示软件在正常运行了。
1.设备启动流程
插电启动:LED快速闪烁3次以后,闪3次以后才能按钮,否则设备无法正常启动
按住2秒以后放手,进入了WEB配网程序(此时LED快速闪烁)。按住6秒以后放手,进入微信扫码配网(此时LED慢速闪烁)启动没按钮就进入自动WIFI连网,此时LED每秒闪2次。连网成功,就通过NTP初始化时间,还有自动连接MQTT服务器,开始正常运行(此时LED常亮3分钟后熄灭)。本设备只支持2.4G WIFI,不支持5G WIFI。
WEB配网或微信扫码都可以配置WIFI密码,但WEB配网可同时设置MQTT等参数,而微信扫码设置不了MQTT参数。
设备初次启动设置初始参数:(建议按照以下顺序)
插电启动(LED快闪3次)->按钮6秒放手->微信扫码配网->自动重启(LED快闪3次)->按钮2秒放手->WEB配网->自动重启(LED快闪3次)->正常使用。
2.微信扫码配网
用手机微信扫描附件里的配网码,进入微信配网小程序。找到上网用的WIFI以后,填写WIFI密码,就可以通过手机传WIFI ssid和密码给设备。设备配网成功以后会自动重启,进入启动流程。
3.WEB配网
此时设备会生成一个配网用的软件AP热点,参数如下:
IP:192.168.4.1ssid:qwerpassword:asdfghjkl
用手机连上这个WIFI以后,在手机浏览器输入 http://192.168.4.1进入配网的网页设置上网WIFI的ssid和password,还有MQTT服务器的参数。MQTT服务器参数示例:
host:broker-cn.emqx.io (有很多免费的MQTT服务器,可以自行百度)port:1883topic:oldfox126/esp12s/hf3f/{randid} (设备初始化时会自动生成唯一的{randid},一般不用修改)
OTA固件链接:http://x.x.x.x/data/esp12s.bin
你可以把固件编译好以后上传到自己的服务器,供设备升级。
也可以直接用我这个现成的固件链接:http://47.242.57.107/data/esp12s_hf3f.bin
OTA链接使用IP地址比使用域名更稳定。
设置好以后,设备自动重启,再次进入启动流程。
4.按钮操作
设备启动并且联网以后正常运行时:
a)每短按一下按钮切换插座通电状态,开->短按->关,或者 “关”->短按->开c)按住按钮10秒以上则重启设备。5.OTA在线升级
OTA升级时,LED会随下载进度快速闪烁。
升级成功后会自动重启。
3.在手机上安装MQTT APP,并设置好服务器等参数。1.APP安装
从《磁保持WIFI智能插座》项目的工程附件中下载
安卓手机APP-MQTT dashboard_v0.4.5_apkpure.com.apk.zip
解压并传到安卓手机上安装APP。
我为什么要使用这个APP,因为好多同类型的MQTT APP,界面就是黑乎乎的一坨(懂的自然懂)。
而这个APP的界面,包括字体、大小、颜色、图标、背景色、位置等好多选项可以自定义。
最终呈现的效果可以很漂亮(颜值既正义),它就是众多黑乎乎的MQTT APP中的一股清流。这是该APP自带的示例:
虽然很漂亮,但以上界面不太适合我们这个《磁保持WIFI智能插座》项目。
我们最终设置好的界面类似于这样:
2.设置MQTT服务器
进APP以后默认是这个界面,首先点一下右上角。
点MQTT connections。
点开第一个服务器进去操作。
点编辑。
在服务器参数设置界面,红框的位置输入:broker-cn.emqx.io ,其他地方都保持默认。填好以后点右上角的√保存。
到这里MQTT服务器参数就设置好了。
3.新增一个仪表盘
进入这个界面以后点击左上角进入菜单。
在菜单里面选择Dashboards。
点右上角的 号新建一个仪表盘。
输入你想要的名字(比如磁保持WIFI插座),然后点右上角的√保存。
4.给仪表盘增加装置
在仪表盘列表,点击刚新增的仪表盘(磁保持WIFI插座)。
在插座这个界面点击右上角的 号增加一个装置。
装置类型选择Toggle(切换开关,在ON/OFF两种状态间切换)。
填写切换开关的参数:
Name:开关MQTT enable:打开MQTT connection:选择 broker-cn.emqx.ioSubscribe to topic:oldfox126/esp12s/hf3f/s4QEJYlo/stat/relayQos(Qos for subscribe/Qos for publish):2Topic for publish:oldfox126/esp12s/hf3f/s4QEJYlo/relay/in
上面这个加粗黑体字的部分,实际上是:《配网操作说明》 中的topic参数:oldfox126/esp12s/hf3f/s4QEJYlo 。
所以只要在配网的时候把topic参数保存在手机微信或者记事本,需要用的时候直接复制出来就好。
ps:以下所有设置中的 oldfox126/esp12s/hf3f/s4QEJYlo 都应该替换成你自己的topic参数。全部填好以后,点击界面右上角的√保存。保存好以后界面是这样的,再点击右上角的 号增加一个装置。
这次装置类型选择Text(文本)。
填写文本装置相应的参数并点右上角的√保存:
Name:当前时间MQTT enable:打开connection:broker-cn.emqx.ioSubscribe: oldfox126/esp12s/hf3f/s4QEJYlo/stat/timeQos:0 publish:无
QOS是质量、优先级。
取值0-2,0最低,2最高。
这里的当前时间值因为每秒钟都要接收,不太重要所以取值为0;上面的开关值比较重要所以Oos取值2。到这里仪表盘装置已经开始运行了(时间在走)。
但是很奇怪,时间后面有一个单位℃,要修改一下:
在当前时间4个字上按住不放,出来的菜单里面选择Edit在编辑界面依次点击 Design(设计) -> Unit(单位) -> Show unit(显示单位) -> 关闭显示,然后点右上角的√保存。好了时间显示终于正常了。
但是显示的地方太窄了,我想拉宽一点,点这里修改界面。
可以更改装置的上下左右位置以及装置大小。
当前时间这个装置的右下角这里按住不放,往右边拖到边,放手。
把当前时间拉到足够的宽度以后,点右上角的√保存。
最终效果:
其他的仪表盘装置设置请自行完成,必须的参数列在下面(没错,我就是懒):
一共七项,更多请查看文章最后的截图。
4.焊接将ESP12S焊接到模块上:
在PCB_插座主体上焊接,安装元器件。将ESP12S模块焊到主体PCB上。焊到这个程度就可以了,公母一体插座(红色圈圈的部分)先不要焊。另外在蓝色箭头指示位置,5V(红色)/GND(黑色)分别焊接2根杜邦线公头。在ESP8266开发测试架/烧录器上取电:
5V(红色)/GND(黑色)分别插上2根杜邦线母头;将上一步骤的2根公头插上。开电测试:
看看MQTT APP上是否能正常显示跳动的时间(说明ESP12S模块焊接好,连接WIFI正常,并连上了MQTT服务器);开关是否反应正常(LED会随开关亮灭);用万用表测量继电器的输出是否能被MQTT APP的开关控制,正常通断。以上测试都通过以后,说明插座软硬件功能正常。
可以关电把2根杜邦线焊下来,焊接公母一体的插座。
全部焊接好,可以装壳了。
原理图
PCB
如果你认为有用就点赞、收藏、关注一下八~