ESP8266 C/C++应用(三)----NodeMCU的无线终端模式模式

无线终端模式(Station)

1. 连接WiFI

ESP8266可通过WiFi连接无线路由器,与手机通过WiFi连接无线路由器的模式相同。

 

NodeMCU以无线终端模式通过WiFi连接无线路由器

#include <ESP8266WiFi.h>        
const char* ssid     = "taichi-maker";         // 连接WiFi名
const char* password = "12345678";             // 连接WiFi密码(此处使用12345678为示例)
                                            
void setup() 
{
  Serial.begin(9600);                          // 启动串口通讯
  WiFi.begin(ssid, password);                  // 启动网络连接
  Serial.print("Connecting to ");              // 串口监视器输出网络连接信息
  Serial.print(ssid); Serial.println(" ...");  // 告知用户NodeMCU正在尝试WiFi连接
  int i = 0;                                   // 这一段程序语句用于检查WiFi是否连接成功
  while (WiFi.status() != WL_CONNECTED)        // WiFi.status()函数的返回值是由NodeMCU的WiFi连接状态所决定的。
  {       
      delay(1000);                             // 如果WiFi连接成功则返回值为WL_CONNECTED                       
      Serial.print(i++); Serial.print(' ');    // 此处通过While循环让NodeMCU每隔一秒钟检查一次WiFi.status()函数返回值
  }                                                                                         
  Serial.println("");                          // WiFi连接成功后
  Serial.println("Connection established!");   // NodeMCU将通过串口监视器输出"连接成功"信息。
  Serial.print("IP address:    ");             // 同时还将输出NodeMCU的IP地址。这一功能是通过调用
  Serial.println(WiFi.localIP());              // WiFi.localIP()函数来实现的。该函数的返回值即NodeMCU的IP地址。
}
 
void loop() 
{                                   
}

 

当网络连接成功后,您可以通过串口监视器看到如下信息,最后一行“IP Address”信息就是NodeMCU连接WiFi以后的IP地址

 

NodeMCU成功的对我们的ping指令做出应答,当前NodeMCU已经成功连接WiFi。电脑将会向NodeMCU所在的IP地址192.168.0.106发送多个数据包。如果NodeMCU成功接收到了这些数据包,那么它会同样回复几个数据包给电脑。于是在“命令提示符”窗口中,我们看到了这几条Reply from 192.168.0.106: bytes=32 ...

 

NodeMCU没有联网的话,在“命令提示符”窗口中将会看到Request timed out 信息。

 

2. 自动连接最强信号WiFi网络

NodeMCU只在一个地方使用,也就只需要知道一个WiFi网络的连接信息。但是如果NodeMCU需要在多个地方使用,这时候就需要它能存储多个地点的WiFi信息。通过以下示例程序,NodeMCU可以在它所处的网络环境里搜索预先存储好的WiFi。一旦找到预存的WiFi名称,NodeMCU将会使用预存的密码信息尝试连接该WiFi。如果同时找到多个预存WiFi,NodeMCU将会尝试连接信号最强的WiFi

#include <ESP8266WiFi.h>          
#include <ESP8266WiFiMulti.h>  
ESP8266WiFiMulti wifiMulti;                     // 建立ESP8266WiFiMulti对象,对象名称是'wifiMulti'
 
void setup() 
{
  Serial.begin(9600);                           // 启动串口通讯
 
  //通过addAp函数存储  WiFi名称       WiFi密码
  wifiMulti.addAP("taichi-maker", "12345678");  // 这三条语句通过调用函数addAP来记录3个不同的WiFi网络信息。
  wifiMulti.addAP("taichi-maker2", "87654321"); // 这3个WiFi网络名称分别是taichi-maker, taichi-maker2, taichi-maker3。
  wifiMulti.addAP("taichi-maker3", "13572468"); // 这3个网络的密码分别是123456789,87654321,13572468。
                                                
  Serial.println("Connecting ...");             // 通过串口监视器输出信息告知用户NodeMCU正在尝试连接WiFi
  int i = 0;                                 
  while (wifiMulti.run() != WL_CONNECTED) 
  {  
      delay(1000);                              // 环境中搜索addAP函数所存储的WiFi。如果搜到多个存储的WiFi那么NodeMCU
      Serial.print('.');                        // 将会连接信号最强的那一个WiFi信号。
  }                                             // 一旦连接WiFI成功,wifiMulti.run()将会返回“WL_CONNECTED”。

  Serial.println('\n');                         // WiFi连接成功后
  Serial.print("Connected to ");                // NodeMCU将通过串口监视器输出。
  Serial.println(WiFi.SSID());                  // 连接的WiFI名称
  Serial.print("IP address:\t");                
  Serial.println(WiFi.localIP());               // NodeMCU的IP地址
}
 
void loop() 
{ 
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值