ESP8266-NodeMCU物联网开发之Arduino环境搭建

简介: ESP8266-NodeMCU物联网开发之Arduino环境搭建

1. ESP8266-NodeMCU

  • ESP8266-NodeMCU是一个开源硬件开发板,由于它支持WIFI功能,所以在物联网(IOT)领域,Arduino开发板最大的对手之一就是ESP8266-NodeMCU开发板。
  • ESP8266-NodeMCU尺寸与Nano类似,他并不是Arduino团队开发的,但是我们也可以使用Arduino IDE对他进行开发。而且他还有一颗地道的“中国芯”—ESP8266模块。

1.png

目前流行的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引脚功能

2.png

就是使用上图左边的引脚,不使用右边的引脚


可用引脚:

 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 ID

开发环境:

  win10家庭版(无需关注,本人记录而已)
  arduino版本: 1.8.15
  esp8266固件: 2.4.2  
  硬件:ESP8266-NodeMCU   
  • 第一步打开arduino,找到文件→首选项。在附加开发板管理中添加下面网址。
  • 1.png
http://arduino.esp8266.com/stable/package_esp8266com_index.json

2.png

  • 搜索esp8266 进行下载

3.png

方法二:首先关掉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开发板,然后点击对号√编译

image.png

然后选择端口上传

2.png

3.3 验证效果

可以打开串口监视器,会有debug打印,出现“Setup End”就实现了自动联网,板载蓝色LED交替闪烁。

4. 小结

  • 通过以上内容我们对ESP8266-NodeMCU模块有了初步了解。最终实现了自动联网,板载蓝色LED交替闪烁。
  • 在以后的博文中我们将学会用NodeMCU和arduino物联网交互使用,从而实现对外部世界进行感知,充分认识这个有机与无机的环境,科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。
相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
4月前
|
物联网 区块链 vr&ar
未来已来:探索区块链、物联网与虚拟现实技术的融合与应用安卓与iOS开发中的跨平台框架选择
【8月更文挑战第30天】在科技的巨轮下,新技术不断涌现,引领着社会进步。本文将聚焦于当前最前沿的技术——区块链、物联网和虚拟现实,探讨它们各自的发展趋势及其在未来可能的应用场景。我们将从这些技术的基本定义出发,逐步深入到它们的相互作用和集成应用,最后展望它们如何共同塑造一个全新的数字生态系统。
|
1月前
|
存储 安全 物联网
C语言物联网开发之设备安全与代码可靠性隐患
物联网设备的C语言代码安全与可靠性至关重要。一是防范代码安全漏洞,包括缓冲区溢出和代码注入风险,通过使用安全函数和严格输入验证来预防。二是提高代码跨平台兼容性,利用`stdint.h`定义统一的数据类型,并通过硬件接口抽象与适配减少平台间的差异,确保程序稳定运行。
|
26天前
|
传感器 存储 物联网
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点,广泛应用于嵌入式系统开发、通信协议实现及后端服务构建等领域,成为推动物联网技术进步的重要力量。
33 1
|
1月前
|
存储 网络协议 物联网
C 语言物联网开发之网络通信与数据传输难题
本文探讨了C语言在物联网开发中遇到的网络通信与数据传输挑战,分析了常见问题并提出了优化策略,旨在提高数据传输效率和系统稳定性。
|
3月前
|
物联网 C# C语言
物联网开发中C、C++和C#哪个更好用
在物联网(IoT)开发中,C、C++和C#各有优缺点,适用场景不同。C语言性能高、资源占用低,适合内存和计算能力有限的嵌入式系统,但开发复杂度高,易出错。C++支持面向对象编程,性能优秀,适用于复杂应用,但学习曲线陡峭,编译时间长。C#易于学习,与.NET框架结合紧密,适合快速开发Windows应用,但性能略低,平台支持有限。选择语言需根据具体项目需求、复杂性和团队技术栈综合考虑。
|
3月前
|
存储 传感器 物联网
结合物联网开发探讨C语言的变量
在物联网(IoT)开发中,C语言的变量起着至关重要的作用。由于物联网设备资源有限,C语言的高效性和对硬件的直接控制使其成为开发嵌入式系统的首选。
|
7月前
|
传感器 存储 安全
【物联网】Arduino 实验合集
【物联网】Arduino 实验合集
239 2
|
7月前
|
监控 物联网
LabVIEW开发基于物联网的多功能功率分析仪
LabVIEW开发基于物联网的多功能功率分析仪
56 2
|
7月前
|
传感器 机器学习/深度学习 算法
LabVIEW开发工业物联网状态监测
LabVIEW开发工业物联网状态监测
83 2
|
7月前
|
传感器 存储 物联网
【C 言专栏】基于 C 语言的物联网开发
【5月更文挑战第6天】C 语言在物联网发展中扮演关键角色,适用于开发嵌入式系统、通信协议及云平台后端服务。其高效、灵活、可移植的特性适应资源有限的环境,确保设备兼容性。尽管开发挑战较大,如代码可读性,但借助辅助工具可改善。随着物联网技术进步,C 语言将持续发挥重要作用,塑造智能未来。
152 0
【C 言专栏】基于 C 语言的物联网开发

相关产品

  • 物联网平台