ESP8266-NodeMCU物联网开发之Arduino环境搭建
- 1. ESP8266-NodeMCU
- 1.1 主要技术参数
- 1.2 NodeMCU引脚功能
- 1.3 特殊引脚情况说明
- 1.4 串行端口
- 2. arduino开发环境
- 3. 配置测试
- 3.1 移植代码
- 3.2 编译上传
- 3.3 验证效果
- 4. 小结
1. ESP8266-NodeMCU
- ESP8266-NodeMCU是一个开源硬件开发板,由于它支持WIFI功能,所以在物联网(IOT)领域,Arduino开发板最大的对手之一就是ESP8266-NodeMCU开发板。
- ESP8266-NodeMCU尺寸与Nano类似,他并不是Arduino团队开发的,但是我们也可以使用Arduino IDE对他进行开发。而且他还有一颗地道的“中国芯”—ESP8266模块。
目前流行的ESP8266-NodeMCU有两块,他们只是串口烧写芯片有所不同,因此在开发之前需要安装对应板子的串口驱动,分别是CH340和CP2102驱动,然后直接用安卓数据线连接电脑。
1.1 主要技术参数
这里我们参考乐鑫公司技术参数
项目 | Value |
核心模块 | ESP8266 |
工作电压(VIN) | 5V |
输入电压(推荐) | 5V |
输入电压(极限) | 4.5 ~ 10 V |
数字输入输出引脚 | 10个(全部可以作为PWM引脚) |
PWM引脚 | 10个 |
模拟输入引脚 | 1个 |
WIFI标准 | 802.11 b / g / n |
工作模式 | STA / AP / STA + AP |
重量 | 7g |
1.2 NodeMCU引脚功能
就是使用上图左边的引脚,不使用右边的引脚
可用引脚:
ESP8266芯片有17个GPIO引脚(GPIO0~GPIO16)。这些引脚中的GPIO6~GPIO 11被用于连接开发板的闪存(Flash Memory)。如果在实验电路中使用GPIO6~GPIO11,NodeMCU开发板将无法正常工作。因此建议您不要使用GPIO6~GPIO 11。
1.3 特殊引脚情况说明
- GPIO 2 引脚 在NodeMCU开发板启动时是不能连接低电平的。
- GPIO 15 引脚在开发板运行中一直保持低电平状态。因此请不要使用GPIO15引脚来读取开关状态或进行I²C通讯。
- GPIO 0 引脚在开发板运行中需要一直保持高电平状态。否则ESP8266将进入程序上传工作模式也就无法正常工作了。您无需对GPIO 0 引脚进行额外操作,因为NodeMCU的内置电路可以确保GPIO 0 引脚在工作时连接高电平而在上传程序时连接低电平。
1.4 串行端口
ESP8266有2个硬件串行端口(UART):
- 串行端口0(UART0)使用GPIO1和GPIO3引脚。其中GPIO1引脚是TX0,GPIO3是RX0。
- 串行端口1(UART1)使用GPIO2和GPIO8引脚。其中GPIO2引脚是TX1,GPIO8是RX1。请注意,由于GPIO8被用于连接闪存芯片,串行端口1只能使用GPIO2来向外发送串行数据。
2. arduino开发环境
首先我们需要安装Arduino IDE 开发环境:
win10家庭版(无需关注,本人记录而已)
arduino版本: 1.8.15
esp8266固件: 2.4.2
硬件:ESP8266-NodeMCU
- 第一步打开arduino,找到文件→首选项。在附加开发板管理中添加下面网址。
http://arduino.esp8266.com/stable/package_esp8266com_index.json
- 搜索esp8266 进行下载
方法二:首先关掉Arduino IDE,直接下载8266_package安装包,直接安装exe即可。
3. 配置测试
移植代码,然后编译下载,验证实验效果!
3.1 移植代码
- 新建项目,然后复制以下代码,也可以打开示例选择ESP8266WiFi中的案例blinker点灯
- 本代码实现one_wifi自动配网,在statin模式下,创建一个连接到可接入wifi热点,方便以后直接接入网络,连接成功后下次自动连接并且打印IP地址,板载灯会交替闪烁。
/**
* The blue LED on the ESP-01 module is connected to GPIO2(D4)
one_wifi自动配网:
statin模式下,创建一个连接到可接入wifi热点,方便以后直接接入网络,连接成功后下次自动连接并且打印IP地址,板载灯会交替闪烁
@author 234vor参考单片机菜鸟
@date 2021/10/30
*/
#include <ESP8266WiFi.h>
#define AP_SSID "J09 502" //这里改成你的wifi名字
#define AP_PSW "qwertyuiop111"//这里改成你的wifi密码
void setup()
{
//设置串口波特率,以便打印信息
Serial.begin(115200);
//延时2s 为了演示效果
delay(2000);
Serial.println("Setup start");
//启动STA模式,并连接到wifi网络
WiFi.begin(AP_SSID, AP_PSW);
Serial.print(String("Connecting to ") + AP_SSID);
//判断网络状态是否连接上,没连接上就延时200ms,并且打出一个点,模拟连接过程
while (WiFi.status() != WL_CONNECTED) {
delay(200);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected, IP address: ");
//输出station IP地址,这里的IP地址由DHCP分配
Serial.println(WiFi.localIP());
Serial.println("Setup End");
pinMode(D4, OUTPUT); // 初始化D4引脚为输出引脚
}
void loop()
{
digitalWrite(D4, LOW); // 亮灯
delay(1000); // 延时1s
digitalWrite(D4, HIGH);// 灭灯
delay(1000); // 延时1s
}
3.2 编译上传
先选择NodeMCU 1.0开发板,然后点击对号√编译
然后选择端口上传
3.3 验证效果
可以打开串口监视器,会有debug打印,出现“Setup End”就实现了自动联网,板载蓝色LED交替闪烁。
4. 小结
- 通过以上内容我们对ESP8266-NodeMCU模块有了初步了解。最终实现了自动联网,板载蓝色LED交替闪烁。
- 在以后的博文中我们将学会用NodeMCU和arduino物联网交互使用,从而实现对外部世界进行感知,充分认识这个有机与无机的环境,科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。