esp8266-NodeMCU esp8266的数字引脚电压是3.3v,即其引脚输出高电平就是3.3v。
设置数字引脚为读取模式,其所连接的电压不能超过3.3v。
模拟引脚可以读取电压范围0-1v。
互联网协议 TCP/IP协议 以下内容的具体解释也可以在第2章 互联网知识基础 – 太极创客 (taichi-maker.com) 中找到更好的解释。
分层名称
TCP/IP 包含以下协议
应用层
HTTP,FTP,mDNS,WebSocket,OSC…..
传输层
TCP,UDP
网络层
IP
链路层(网络接口层)
Ethernet,Wi-Fi…
链路层 链路层的主要作用是实现设备之间的物理链接。
链路层的主要作用是实现设备之间的物理链接。举例来说,我们日常使用的WiFi就是链路层协议中的一种。
ESP8266利用WiFi联网时有三种工作模式。
接入点模式(esp8266自己当wifi)
无线终端模式(esp8266自己跟wifi进行连接,控制其他跟wifi连接后的设备)
混合模式
网络层
给设备提供地址功能
IP协议版本 查看电脑ip
命令提示符>>>ipconfig
网关相当于连接网络与网络之间的端口
wifi路由器会创建一个局域网,并给局域网内的每个设备分配一个ip地址,相对于互联网
传输层 TCP协议 特点:稳
保证所有数据都能被接收端接收
数据的传输顺序不会打乱
传输数据如有损坏则重发受损数据
TCP协议经常用于对数据稳定性要求比较高的领域
TCP协议应用领域:
UDP协议 特点:快
UDP比TCP速度快
不保证所有数据都能被接收端接收数数据一旦受损的,UDP协议将抛弃受损数据。
有数据损坏不会重发受损数据
UDP协议应用领域:
应用层 HTTP协议 由==请求==和==响应==进行工作的
HTTP请求 1 2 3 4 5 6 GET/HTTP/1.1 //请求行 Host:www.taichi-maker.com //请求头 User-Agent:Mozilla/5.0(Windows NT 10.0WOW64)Accept::text/html Accept-Language:zh-CN,zh;q=0.8 Accept-Encoding:gzip,deflate,sdch Connection:Keep-Alive
请求行
请求头 HTTP1.0定义了三种请求方法:GET,POST和HEAD方法。 、
HTTP响应
ESP8266物联网开发基础 安装esp8266的网址USB 至 UART 桥 VCP 驱动器 - 芯科科技 (silabs.com)
为开发板搭建开发环境 要想使用Arduino IDE来配合NodeMCU开发板使用,首先要对Arduino IDE进行设置工作。
3-1-2 为ESP8266-NodeMCU搭建Arduino IDE开发环境 – 太极创客 (taichi-maker.com)
如果开发板库中没有,可以去网盘盘里进行手动安装。
如果一切都正常安装,那么我们可以用如下一段代码测试,测试结果应为esp8266一个板载LED间断闪烁。
1 2 3 4 5 6 7 8 9 10 11 12 void setup () { pinMode(LED_BUILTIN, OUTPUT); } void loop () { digitalWrite(LED_BUILTIN, HIGH); delay(1000 ); digitalWrite(LED_BUILTIN, LOW); delay(1000 ); }
NodeMCU开发板的接入点模式 NodeMCU开发板可以建立WiFi网络供其它设备连接。当NodeMCU以此模式运行时,我们可以使用手机或者电脑搜索NodeMCU所发出的WiFi网络并进行连接。
3-1-3 NodeMCU开发板的接入点模式 – 太极创客 (taichi-maker.com)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 #include <ESP8266WiFi.h> const char *ssid = "taichi-maker" ; const char *password = "12345678" ; void setup () { Serial.begin(9600 ); WiFi.softAP(ssid, password); Serial.print("Access Point: " ); Serial.println(ssid); Serial.print("IP address: " ); Serial.println(WiFi.softAPIP()); } void loop () { }
运行如上代码,我们可以创建一个wifi
连接过后在命令提示符中输入>>ping 192.168.4.1
ping就是用来测试我们的电脑是不是已经与某个网络设备成功连接了
NodeMCU开发板的无线终端模式 NodeMCU通过WiFi连接无线路由器并访问互联网。
3-1-4 NodeMCU开发板的无线终端模式 – 太极创客 (taichi-maker.com)
以下示例程序用于演示如何使用NodeMCU以无线终端模式通过WiFi连接无线路由器。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 #include <ESP8266WiFi.h> const char * ssid = "taichi-maker" ; const char * password = "12345678" ; void setup () { Serial.begin(9600 ); WiFi.begin(ssid, password); Serial.print("Connecting to " ); Serial.print(ssid); Serial.println(" ..." ); int i = 0 ; while (WiFi.status() != WL_CONNECTED) { delay(1000 ); Serial.print(i++); Serial.print(' ' ); } Serial.println("" ); Serial.println("Connection established!" ); Serial.print("IP address: " ); Serial.println(WiFi.localIP()); } void loop () { }
当然也可以一次性添加很多wifi名称和密码,使nodemuc选择性添加最强信号的网络。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 #include <ESP8266WiFi.h> #include <ESP8266WiFiMulti.h> ESP8266WiFiMulti wifiMulti; void setup () { Serial.begin(9600 ); wifiMulti.addAP("taichi-maker" , "12345678" ); wifiMulti.addAP("taichi-maker2" , "87654321" ); wifiMulti.addAP("taichi-maker3" , "13572468" ); Serial.println("Connecting ..." ); int i = 0 ; while (wifiMulti.run() != WL_CONNECTED) { delay(1000 ); Serial.print('.' ); } Serial.println('\n' ); Serial.print("Connected to " ); Serial.println(WiFi.SSID()); Serial.print("IP address:\t" ); Serial.println(WiFi.localIP()); } void loop () { }