目前ESP8266的开发方式有这几种:
- AT指令方式 –烧录AT的固件包,使用AT指令与ESP8266交互,执行相应指令,需与单片机相连
- NodeMCU的lua开发 –烧录NodeMCU的固件包,使用Lua语言开发,使用ESP内部资源。
- Arduino IDE下的开发 –相当于直接编写固件,编译之后,烧录进ESP,使用ESP内部资源。
- Non-OS,就是传统单片机的while(1),大循环写法,可以充分利用资源
- RTOS,实时系统的编写法。占用硬件资源比较多,但是对于大项目有着天然的亲和性
各种方式的优缺点
- AT指令开发方式: 优点:开发简单,资料较多。只需知道AT指令集,以及它的通信方式即可。 缺点:浪费资源,需要MCU与其通信,不能独立完成某项功能。
- NodeMCU的lua开发:NodeMCU本质也是ESP8266,只是它的固件是与lua脚本语言交互。 优点:节省资源,开发简单,代码量少。 缺点:lua解释器执行效率较低,最终换成ArduinoIDE开发,就是因为读取传感器数据时,总是漏掉一个数据。前期准备比较麻烦。需要准备相应功能的固件,烧录进去,然后使用lua语言和工具与之调试。
- Arduino IDE下的开发方式: 优点:集编程和烧录一体,使用很方便。语言执行效率高,节省资源,库函数比较多,开发语言简单,能够很快上手。 缺点:Arduino IDE需要写较长的代码时,不是很方便,如果需要查看底层函数或者方法,非常费劲。可以使用VsCode
- Non-OS的开发:需要配置官方的烧写环境,需要不停的查找API去编写 最大的限度的控制芯片的各个功能,但是入门较难,没有嵌入式开发的经验较难上手。
- RTOS,比Non-OS编写稍易,但是需要学习过一种相关的RTOS才可以上手。也是区分水平的一种辨析方式~
普通ESP8266
- 如果是普通的ESP8266,开发版选择Generic ESP8266 Module!在上传烧写过程控制台没有打印信息。ESP8266也不会闪烁。没有任何反应,等待一会出现上传成功!拔掉跳线帽使GPIO0悬空,再次供电即可使用。
- 就是指普通的裸板,没有外围的器件
https://www.basemu.com/how_to_control_relay_for_nodemcu.html
继电器是可以简单理解为开关,它和普通开关的区别在于它可以判断输入量(也就是控制信号,可以是声、光、电、磁等)当其到达预设的阀值时,可以接通或断开电路。在智能家居的远程遥控开关灯等应用上多会用到它。在生活中,最常见的是电磁继电器,它是由铁芯、线圈、衔铁、触点、复位簧片等组成的。
如上图所示,当我们在线圈两端加入电压后,线圈就会产生电流,形成电磁效应,衔铁就会在电磁力的作用下克服复位弹簧的拉力被吸向铁芯,从而使衔铁与静触点吸合。当线圈断电后,铁芯的吸力消失,衔铁就会在弹簧拉力的作用下与静触点分开。这样继电器在电路中就可以导通或断开电路。怎么去区分继电器的常开和常闭”触点,当继电器线圈未接通电源时,衔铁与静触点分离与动触点结合,因此,静触点被称为常开触点,而动触点被称为“常闭触点”。
里面是这样的构造
核心思想就是隔离
ESP的连接图
其实如果是你要单独控制的话,不需要连接3V3和GND
你就管控制就好
代码语言:javascript复制/*
*描述:通过控制继电器的输入端高低电平来控制继电器的通断
*引脚连接:继电器输入端 D4/GPIO2
*/
int relayInput = 2; //定义继电器输入引脚为GPIO2,即D4
voidsetup(){
pinMode(relayInput, OUTPUT); //初始化relayInput,并设为输出针
}
voidloop(){
digitalWrite(relayInput, HIGH); //设置relayInput为高电平输出
delay(1000);
digitalWrite(relayInput, LOW); //设置relayInput为低电平输出
delay(1000);
}
嘤嘤嘤,我没有继电器。
我这边就是用一个万用表来显示这个过程。不停的发送高低电平
和你点灯没有什么区别
我发现我有个开发板,连接一个控制脚就可以了