NodeMcu是在esp8266-12E的基础上封装好的开源IoT 开发板。
使用起来比较简单的模块 在学习esp模块的过程中调试很方便简单。

NodeMcu
是使用ESP-12E 模组 多了一些封装上
(只有NodeMCU V1 才是使用ESP-12
只要是NodeMCU V2 或V3 就是使用ESP-12E)


主要参数

引脚图(开发板上的引脚名不带GPIO对应的不是相应的GPIO需要查看下表)


ESP8266芯片有17个GPIO引脚(GPIO0~GPIO16)。这些引脚中的GPIO6~GPIO 11被用于连接开发板的闪存(Flash Memory)因此建议不要使用GPIO6~GPIO 11。
在这剩下的11个针脚中,又有2个针脚预留给串口RX和TX。
一些GPIO引脚同时兼备了其他功能,如RX, TX, SD2, SD3,这些引脚大多不作为GPIO使用,因为它们可用于其他进程。
因此,最后只剩下9个通用I/O引脚,即D0到D8。
需要注意的是,D0|GPIO16引脚只能作为GPIO读/写使用,不支持任何特殊功能

电压电流限制
NodeMCU开发板引脚的输入输出电压限制是3.3 V。如果向引脚施加3.6V以上的电压就有可能对芯片电路造成损坏。同时请注意,这些引脚的最大输出电流是12mA。
由于NodeMCU开发板的引脚允许电压和电流都是低于Arduino开发板的引脚,
特殊引脚
GPIO2引脚 在NodeMCU开发板启动时是不能连接低电平的。
GPIO15引脚在开发板运行中一直保持低电平状态。
GPIO0引脚在开发板运行中需要一直保持高电平状态。否则ESP8266将进入程序上传工作模式也就无法正常工作了
模拟输入
AD转换 将模拟量转换为数字量 只有一个引脚 A0,nodemcu上可以读取模拟输入0-3.3v的电压
通讯
串行端口(UART)TX(GPIO1)和RX(GPIO3)
以及 TX(GPIO2)和RX(GPIO8)
I2C
ESP8266只有软件模拟的I²C端口,没有硬件I²C端口。可以使用任意的两个GPIO引脚通过软件模拟来实现I²C通讯。ESP8266的数据表(datasheet)中,GPIO4(D2)标注为SDA,GPIO5(D1)标注为SCL。
SPI
ESP8266的SPI端口情况如下:
GPIO14 — CLK
GPIO12 — MISO
GPIO13 — MOSI
GPIO 15 — CS(SS)
安装驱动
需要安装驱动 才能通过usb连接NodeMcu 电脑才能识别到端口
Windows ch341驱动下载
(v1使用ch341驱动 V2 与V3 大部分使用cp210x驱动)
cp210x驱动下载
arduino开发
环境搭建
- 在项目 加载库 库管理中 搜索dht 下载DHT sensor by Adafruit (1.30)

2.打开工具 开发板 开发板管理器 搜索esp8266 下载esp8266 by ESP8266 Community (2.4.2)

3.选择NodeMcu开发板

4.使用示例

上传会看到灯一亮一灭
联合mqtt使用
打开示例 pubsubclient中的mqtt_esp8266

(如果没有这个库 可以到 项目–> 加载库 —> 管理库里面 进行下载)
else
基于NodeMcu的开发可以到这里 进行学习 http://niehen.cn/category/esp8266/
参考 https://blog.everlearn.tw/nodemcu/%E7%AC%AC%E4%B8%80%E6%AC%A1%E8%B3%BC%E8%B2%B7-nodemcu-%E5%B0%B1%E4%B8%8A%E6%89%8B
参考
esp8266ex技术规格书
太极创客
项目参考代码在下方
更多学习教程
ESP开发学习基础知识
基础知识包括对esp模块的认识与了解 mqtt协议的了解,arduino IDE运用代码编写等等。
- arduino基础学习
- esp系列模块的介绍
- mqtt协议的介绍与使用
- 利用mqtt esp模块 基于arduino IDE开发方法
- esp模块的AT指令 刷固件
- esp模块睡眠模式使用
- esp8266-01s介绍与使用
- esp8266-12f介绍与使用
- NodeMcu介绍与使用
esp开发IOT应用
基于esp8266的模块以及其他模块根据实际的应用场景与需求制作的物联网应用
- 基于FRID arduino 继电器 电磁锁开发的FRID门禁系统
- esp32-cam获取视频流图像处理
- 基于步进电机 esp8266 mqtt开发的自动窗帘控制
- 基于DHT11 Esp8266 mqtt获取室内温湿度
- 基于CCS811 esp8266 mqtt 获取室内空气质量
- 基于红外模块 esp8266 mqtt开发的智能遥控控制
- 基于ws2812 esp8266 mqtt开发的智能多级照明灯
- 基于ws2812 esp8266 mqtt开发的智能多模式氛围灯
- 基于mp3player esp8266 mqtt开发的智能语音播报系统
- IOT综合应用之智慧教室项目开发
如果以上内容对你有帮助或是对IOT开发感兴趣,欢迎关注我。
本人接下来一段时间承接人脸图像处理,IOT开发等相关项目(毕设 比赛等)
有需要可联系q:1639206518
如果文章有帮助到你,关注 点赞 收藏!
1.OSPF特殊区域特殊报文
在了解特殊区域之前,首先了解一下LSA 4和LSA 5
1.LSA 4
ASBR汇总LSA(ASBR SummaryLSA),也是由ABR路由器产生的,通告给骨干区域和标准区域不能进入 Stub 区域、Totally Stub 区域、NSSA 区域和 Totally NSSA 区域。
ASBR 汇总 LSA 除所通告的目的地是一个 ASBR 路由器而不是一个网络外,其他的与网络汇总LSA 是一样的,如图1.1所示。
![]()
图1.1
2.LSA5
自治系统外部LSA(AS ExteralLSA),始发于ASBR路由器,通告给骨干区域和标准区域,不能进入 Stub 区域、Totally Stub 区域、NSSA 区域和 Totally NSSA 区域。
自治系统外部 LSA 用来通告到达 OSPFAS 外部的目的地或到 OSPF AS 外部默认路由的 LSA如图1.2所示。
![]()
图1.2
注:特殊区域的作用在OSPF区域中一些区域出口很少,仅需要一条默认路由,为减少设备不必要的泛洪,末梢区域的限制,必须位于AS边缘,不可以是骨干区域,区域中不能有ASBR,且不能有虚链路穿过
2.特殊区域类别
1.Stub
末稍区域是一个不允许 AS 外部 LSA 在其内部进行泛洪的区域。如果在一个区域内没有学习到类型5的LSA,那么也无须类型4的LSA 了,这些LSA 将被阳塞。位于末梢区域边界的 ABR路由器将使用网络汇总 LSA 向这个区域通告一个简单的默认路由(目的地址是0.0.0.0)。在区域内部路由器上所有和域内或域间路由不能匹配的目的地址都将最终匹配这条默认路由。由于默认路由是由类型3的
LSA 传送的,所以它将不会被通告到这个区域的外部。由于在一个末梢区域中,路由器的链路状态数据库被减小了,所以这些路由器的性能将得到提高并且内存也得到节省。当然,在一个含有大量类型5的LSA的OSPF区域中,这种改进将更加显著
和所有的区域一样,一个末梢区域内部的所有路由器也必须拥有相同的链路状态数据库。为了确保满足这个条件,所有末梢区域内的路由器都会在 Hello 报文中设置一个标志 E-bit,并将其设置为0。这样,这些末梢区域路由器将不接收其他路由器发送的任何E-bit为1的 Hello报文,也就是末梢区域路由器将不能和其他非末梢区域的路由器建立邻接关系,
虚链路不能在一个末梢区域内进行配置,也不能穿过一个末梢区域。
末梢区域内的路由器不能是 ASBR路由器。这个限制条件是很容易直观地理解的,因为 ASBR路由器会产生类型5的LSA,而在一个末梢区域内不能存在类型5的LSA。
因为默认路由的原因,所以一个末梢区域只有1台ABR路由器,它是到达 ASBR 路由器的最优网关。
2.Totally Stub
如果通过阻塞类型5和类型4的LSA传播方法来减小路由表、节省内存,那么要是能够把类型3的LSA 也阻塞掉,不是可以节省更多的内存吗?对于这个问题,解决方案是使用完全未梢区域。无论到达其他 AS,还是到达其他 OSPF 区域,完全末梢区域只有唯一的一个出口,即 ABR。因此,完全末梢区域仅使用一条默认路由便可以到达这个区域外部的所有目的地址。同时,完全末区域的 ABR 将不仅阻塞自治系统外部相关的LSA(LSA4和LSA5)进入该区域,而且阻塞网络汇总 LSA(LSA3)进入该区域。
创建完全末梢区域的条件与创建末梢区域的条件相同。但在LSA的限制上,完全末梢区域更严格。末梢区域禁止 LSA4和LSA5 进入,完全末梢区域还禁止LSA3 进入。因此,完全末梢区域中只有 LSA1和 LSA2,可以进一步减少路由表的规模、降低路由器资源的消耗、提高路由的效率,其更适用于硬件配置较低的路由器。
注:与末梢区域相同,完全末梢区域的 ABR 也会始发一条LSA3 类型的默认路由通告到完全末梢区域内。除此以外,完全末梢区域的ABR 会阻止所有LSA3 进入该区域。
3.NSSA
NSSA(Not-So-Stubby Area),非纯末梢区域,顾名思义,是对Stub 区域的一种扩展,NSSA区域允许有多个 ABR,也允许有一个或多个ASBR。
LSA7名为 NSSALSA,报文格式与LSA5 相同,也都是通告外部自治系统的路由,但二者的始发路由器和泛洪区域不同:LSA5 由骨干区域和标准区域的 ASBR 始发,在整个 OSPF 骨干区域和标准区域内泛洪;而 LSA7是由 NSSA 区域的 ASBR始发的,仅在NSSA 区域内泛洪,然后LSA7在 ABR上被转换为LSA5,使骨干区域和标准区域也能学习到LSA7的外部自治系统路由。
在对LSA 的限制方面,NSSA 区域与 Stb 区域相同,NSSA 区域允许其他区域的 LSA3 进入本区域内泛洪,阻塞其他区域的LSA4 和 LSA5 进入本区域内泛洪。但阻塞了其他区域的LSA4和LSA5 就无法使 NSSA 区域内的路由器和与其他区域连接的外部自治系统进行通信,为了解决这个问题,NSSA也使用静态默认路由的方法,即 NSSA 区域的 ABR会向该区域内部泛洪一条指向自己的默认路由。
4.Totally NSSA
Totaly NSSA 区域与 NSSA 区域的区别是额外阻塞其他OSPF 区域的LSA3 进入本区域,ABR自动生成一条默认路由通告到 Totally NSSA 区域内,以代替被阻塞的其他 OSPF 区域的 LSA3。这点与Totally Sub 是一样的。
因此,在 Totally NSSA 区域内可能存在的LSA 类型只有 LSA1、LSA2 和 LSA7。
配置环节
在ASBR上进行配置末梢和非纯末梢区域
[R1-ospf-1-area-0.0.0.1]stub
配置Stub区域
[R1-ospf-1-area-0.0.0.1]stub no-summary
配置Totally Stub区域
[R1-ospf-1-area-0.0.0.1]nssa
配置NSSA区域
[R1-ospf-1-area-0.0.0.1]nssa no-summary
配置Totally NSSA区域
评论记录:
回复评论: