本期主角
淘宝上常见的使用ESP-01的继电器
一、MOS管驱动款↓
二、光耦隔离款↓
使用模块
很久之前买ESP-01的时候顺便买了一块第一款的继电器,也就是老款的。
前段时间想做个ESP01的继电器。发现老款模块上的三极管给击穿了。
于是就在学长指导下又焊了一块三极管驱动继电器的的板子,用的PNP三极管,低电平触发,但存在一个问题就是继电器是5V的但ESP01的引脚电平为3.3V的。当ESP01的GPIO0拉高的时候,不足以让继电器断开(没学过模电也不知道怎么改= =)然后就没有再用了,。
问题出现
后来在淘宝看见有光耦隔离款的ESP01继电器,一下子就买了五个。回来也顺利调通了程序。但发现在上电时,继电器会闭合一下(这样的闪断在日常使用中很有可能会造成电器损坏),将触发引脚飞线至GPIO2也无法解决。后来经过查询资料,发现ESP01系列的模块在上电时部分IO口会发生抖动,而ESP01上的GPIO0和2都是会抖动的。
在网上搜索到以下解决方案:
都采用了外部电路来进行消抖,但这样还是治标不治本。于是偶然想起以前前ESP01接入DHT11的时候不是将TX、RX当作GPIO用了吗。于是想试试这两个引脚上电时会不会抖动。
在国外问答社区得到了RX、TX与IO口的对应关系
Using ESP-01 RX and TX pins as additional GPIO pins
Add this to your code at the beginning of set void setup():
//********** CHANGE PIN FUNCTION TO GPIO ********** //GPIO 1 (TX)swap the pin to a GPIO. pinMode(1, FUNCTION_3); //GPIO 3 (RX) swap the pin to a GPIO. pinMode(3, FUNCTION_3); //************************************************** ```
RX为接收口,在WIFI控制继电器过程中基本不会使用
于是便将继电器触发引脚飞线至RX(GPIO3)并切断其原与GPIO0的的连接
上电测试。
果然上电时不会触发继电器,wifi控制功能正常,串口打印功能正常。
大功告成。
总结
这个继电器模块的设计存在一定程度的问题,之后我也会尝试自己设计一块ESP8266的继电器模块,后续可以关注我的博客qwq。
通过ESP8266控制继电器的项目研究过许久了。ESP01给我的感觉就是很不靠谱,不管是其稳定性,还是调试的难度,都让我感觉浪费了大量时间。
在使用ESP-12的过程中就没有这些问题 ,在拆解了市面上常见的一些WIFI插座后发现其基本使用的都是ESP-12的主控,况且现在ESP-12的贴片价格甚至比ESP01模块的价格要低 ,所以ESP-12是更好的选择。
建议
建议可以抛弃ESP01去使用ESP-12了,会节省大量的时间。
学习ESP8266、IOT的话建议买一块Nodemcu,不到20块。
包含了基本的电源驱动部分,和自动烧录电路,可用micropython、Arduino IDE进行编程,超级容易上手,主要是不会有ESP01那些阴间问题。后期再学习一下简单PCB绘制,就可以很容易的做出一个IOT小项目了。