admin管理员组

文章数量:1572225

网络配置

1、模式设置

3种模式:

STA(station)模式:可以加入到网络中的设备(例如笔记本)

AP(Access Point)模式:无线的交换机,提供一个无线信号的发射功能(热点功能)

混合模式:以上两种的混合

WiFi.mode(WiFi_STA)

WiFi_STA

WiFi_AP

WiFi_AP_STA

WiFi_OFF

2、搜索网络

3、wifi连接

4、wifi网络参数设置

5、网络状态查询

例子

/*
  功能:
    1、获取室内温度
    2、连接到wifi
    3、连接计算机
    4、将温度获取到的数发送给一台计算机
*/
#include "ESP8266WiFi.h"
#include <dht11.h>

/************************** 创建对象 *********************************/
dht11 DHT11;//温度对象
WiFiClient client;//wifi对象

/*************************** 常量 ************************************/
#define DHT11PIN 2 //使用2引脚口作为OneWire接线引脚
/************************** 全局变量 *********************************/
const char *password = "12345678";//wifi密码WiFiClient
const char *ssid = "ABC";//wifi名称
const char *ipAddress = "192.168.43.128";
const int port = 8266;//端口


/*******************************初始化*******************************/
void setup() { 
  initData();//初始化一些数据
  contactNet();//连接wifi
  estConnect();//建立tcp连接 
}
/*******************************循环执行*******************************/
void loop() {
  keepStatus();//每次发送数据前都要判断连接状态,并保持这个连接
  sendDataToComputer();//向电脑发送数据
}
/*******************************其他函数*******************************/
//*************************************************************************************数据初始化
void initData(){
  Serial.begin(115200);//串口波特率的设置,使用这个来初始化串口
}
//*************************************************************************************获取温度
float getTemperature(){
  Serial.print("温度: ");
  Serial.println((float)DHT11.temperature, 2);//显示摄氏温度
  return (float)DHT11.temperature;
}

//*************************************************************************************连接wifi
void contactNet(){
  delay(2000);
  Serial.print("正在连接:");
  Serial.println(ssid);//要连接wifi的名字
  WiFi.begin(ssid,password);//开始连接
  while(WiFi.status() != WL_CONNECTED){
    delay(500);
    Serial.print(".");//连接没有成功就打印“.”  
  }
  Serial.println("");
  Serial.println("WiFi 连接成功");
  Serial.print("IP 地址:");
  Serial.println(WiFi.localIP());//wifi的IP地址
}
//*************************************************************************************建立tcp连接
void estConnect(){
  while(0 == client.connect(ipAddress,port)){
    Serial.print(".");//没有建立成功就打印“.”直到建立成功
    delay(1000);//每隔1秒重新建立一次连接
  }
  Serial.println("连接建立成功");
}
//*************************************************************************************保持连接状态
void keepStatus(){
  if(client.available() == true){     
      return;//连接状态良好,程序结束
    }else{
      Serial.println("连接断开,正在重新建立连接");
      estConnect();//连接断开,重新连接
    }  
}
//*************************************************************************************发送数据
void sendDataToComputer(){
  client.println(100);//将温度发送到服务器(测试)
  //client.println(getTemperature());//将温度发送到服务器
  delay(1000);//每隔1秒发送一次
}
//**************************************************************************************获取数据
void getDataFromComputer(){
  Serial.println(client.read());//打印获得的数据
  delay(1000);//每隔1秒获得一次
}

本文标签: 模块计算机ESP8266WiFi