【ESP8266 快速入门】示例2:Arduino IDE配置无线终端模式(Station)+自动连接新号最强的WiFi(基于安信可NodeMCU、C/C++)

主题

示例1:Arduino IDE配置【ESP8266】无线终端模式(Station)

无线终端模式(Station, 也称 ST)
相当于一个设备,可以连接路由器的WiFi。
功能如下图所示。

在这里插入图片描述

开发环境

IDE
在这里插入图片描述
开发板
我用的NodeMCU ESP8266 安信可 ESP-12F开发板。
在这里插入图片描述

编程

这里要连接的WiFi是"hh",密码"12345678"。
注意:由于硬件限制,只能连接2.4ghz的频段WiFi。暂无路由器,可以使用手机热点,注意不要限制esp8266黑名单,或者限制连接设备个数。

/*
ESP8266开发板无线终端模式连接WiFi
本示例程序用于演示如何使用ESP8266开发板无线终端模式连接WiFi
*/
 
#include <ESP8266WiFi.h> // 本程序使用ESP8266WiFi库

const char *ssid = "hh";           // 连接WiFi名(此处使用hh为示例),请将需要连接的WiFi名填入引号中
const char *password = "12345678"; // 连接WiFi密码(此处使用12345678为示例)请将需要连接的WiFi密码填入引号中

void setup()
{
    Serial.begin(9600); // 启动串口通讯

    WiFi.begin(ssid, password); // 启动网络连接

    int i = 0;
    while (WiFi.status() != WL_CONNECTED) // 检查连接状态,函数是WiFi.status()。成功返回WL_CONNECTED
    {
        // 打印调试信息
        Serial.print(i++);
        Serial.print(" Connecting to ");
        Serial.print(ssid);
        Serial.println(" ...");
        delay(1000);
    }
    // WiFi连接成功后,输出调试信息
    Serial.println("");
    Serial.println("Connection OK!");
    Serial.print("IP address:    ");
    Serial.println(WiFi.localIP()); // WiFi.localIP()返回值即ESP8266开发板的IP地址。
}

void loop()
{
}

编译后上传到开发板。

实验结果

打开串口监视器
重启开发板。在WiFi可用的情况下,连接成功了。并打印出ip。192.168.1.111
在这里插入图片描述

电脑和esp8266处于局域网,即,均连接同一个路由器。
win+R输入cmd,打开命令行窗口.
输入ping +前面的ip
即:ping 192.168.1.111
在这里插入图片描述

至此说明实验成功。且可以通信。

实用功能举例

自动连接最强信号WiFi网络

代码

/*
ESP8266开发板无线终端模式连接WiFi-2
此程序将会控制ESP8266开发板在当前的网络环境里搜索预先存储好的WiFi。
一旦找到预存的WiFi名称,ESP8266开发板将会使用预存的密码信息尝试连接该WiFi。
如果同时找到多个预存WiFi,ESP8266开发板将会尝试连接信号最强的WiFi。

*/
 
#include <ESP8266WiFi.h>          // 本程序使用ESP8266WiFi库
#include <ESP8266WiFiMulti.h>   // 本程序使用ESP8266WiFiMulti库
 
ESP8266WiFiMulti wifiMulti;     // 建立ESP8266WiFiMulti对象,对象名称是'wifiMulti'
 
void setup() {
  Serial.begin(9600);            // 启动串口通讯
 
//通过addAp函数存储  WiFi名称       WiFi密码
  wifiMulti.addAP("hh", "12345678");  // 这三条语句通过调用函数addAP来记录3个不同的WiFi网络信息。
  wifiMulti.addAP("hh2", "87654321"); // 这3个WiFi网络名称分别是hh, hh2, hh3。
  wifiMulti.addAP("hh3", "13572468"); // 这3个网络的密码分别是12345678,87654321,13572468。
                                                // 此处WiFi信息只是示例,请在使用时将需要连接的WiFi信息填入相应位置。
                                                // 另外这里只存储了3个WiFi信息,您可以存储更多的WiFi信息在此处。
                                                
  Serial.println("Connecting ...");         // 通过串口监视器输出信息告知用户ESP8266开发板正在尝试连接WiFi
  int i= 0;
  while (WiFi.status() != WL_CONNECTED) // 检查连接状态,函数是WiFi.status()。成功返回WL_CONNECTED
    {
        // 打印调试信息
        Serial.print(i++);
        Serial.println(" ...");
        delay(1000);
    }
  
  Serial.println('\n');                     // WiFi连接成功后
  Serial.print("Connected to ");            // ESP8266开发板将通过串口监视器输出。
  Serial.println(WiFi.SSID());              // 连接的WiFI名称
  Serial.print("IP address:\t");            // 以及
  Serial.println(WiFi.localIP());           // ESP8266开发板的IP地址
}
 
void loop() { 
}
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值