Arduino IDE for ESP8266 (0) 官方API
http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/readme.html
0 简单的连接到WIFI
#include <ESP8266WiFi.h> void setup()
{
Serial.begin(115200);
Serial.println(); WiFi.begin("network-name", "pass-to-network"); Serial.print("Connecting");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println(); Serial.print("Connected, IP address: ");
Serial.println(WiFi.localIP());
} void loop() {}
1AP+STA模式
ESP8266模块可以作为一个工作站,所以我们可以将它连接到Wi-Fi网络。它也可以作为软接入点(soft-AP)运行,建立自己的Wi-Fi网络。因此,我们可以将其他站连接到这样的ESP模块。ESP8266也可以在工作站和软接入点模式下工作。
2 STA 模式
站级有几个功能,以方便管理Wi-Fi连接。如果连接丢失,ESP8266将自动重新连接到上一次使用的接入点,一旦它再次可用。模块重启也会发生同样的情况。
测试(1)添加几个可供连接的WIFI,自动连接,切换
http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/station-examples.html
/*
* This sketch trys to Connect to the best AP based on a given list
*
*/ #include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h> ESP8266WiFiMulti wifiMulti; void setup() {
Serial.begin(115200);
Serial.setDebugOutput(true);
Serial.println();
delay(10); wifiMulti.addAP("dongdong", "dongdong");
wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2");
wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3"); Serial.println("Connecting Wifi...");
if(wifiMulti.run() == WL_CONNECTED) {
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
} void loop() {
if(wifiMulti.run() != WL_CONNECTED) {
Serial.println("WiFi not connected!");
delay(1000);
}
}
测试(二) STA文档
WiFi.begin(ssid, password)
- 默认情况下,只要断开连接,ESP将尝试重新连接到Wi-Fi网络。不需要单独的代码来处理这个问题。模拟断开的一个好方法是重置接入点。ESP将报告断开连接,然后尝试自动重新连接。
WiFi.begin(ssid, password, channel, bssid, connect)
参数的含义如下:
- *
ssid
- 一个包含我们想要连接的接入点的SSID的字符串,最多可以有32个字符 - *
password
到接入点,一个字符串应该最少8个字符长,而不是更长超过64个字符 - *
channel
AP的,如果我们喜欢使用特定信道来操作,否则这个参数也可以省略 - *
bssid
- AP的MAC地址,这个参数也是可选*connect
-一个boolean
参数,如果设置为false
,将指示模块只保存其他参数,而不实际建立到接入点的连接
配置
禁用DHCP客户端(动态主机配置协议),并将站点接口的IP配置设置为用户定义的任意值。该接口将是一个静态IP配置,而不是由DHCP提供的值。
WiFi.config(local_ip, gateway, subnet, dns1, dns2)
local_ip
- 在此输入你想分配ESP站接口的IP地址gateway
- 应包含网关(路由器)的IP地址来访问外部网络subnet
- 这是一个掩码,用于定义本地网络的IP地址范围dns1
,dns2
- 定义维护域名目录(如www.google.co.uk)的域名服务器(DNS)的IP地址的可选参数,并将它们转换为IP地址
示例代码:
#include <ESP8266WiFi.h>
const char* ssid = "dongdong";
const char* password = "dongdong";
String name="DD_Station_01";
IPAddress staticIP(192,168,1,22);
IPAddress gateway(192,168,1,9);
IPAddress subnet(255,255,255,0);
void setup(void)
{
Serial.begin(115200);
Serial.println();
Serial.printf("Connecting to %s\n", ssid);
WiFi.begin(ssid, password);
WiFi.config(staticIP, gateway, subnet);
// 修改主机名
WiFi.hostname(name);
Serial.printf("New hostname: %s\n", WiFi.hostname().c_str());
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Connected, IP address: ");
Serial.println(WiFi.localIP()); // 分配的动态地址&自己设置的静态地址
Serial.printf("SSID: %s\n", WiFi.SSID().c_str());// 连接的WIFI名
}
void loop() {}
请注意,静态IP配置的站点通常会更快地连接到网络。在上面的例子用了500ms左右(一个点。显示)。这是因为通过DHCP客户端获取IP配置需要时间,在这种情况下,跳过这一步。如果您将所有三个参数都作为0.0.0.0(local_ip,网关和子网)传递,它将重新启用DHCP。您需要重新连接设备以获取新的IP。
管理连接
重新连接
重新连接电台。这是通过从接入点断开然后发起连接返回到相同的AP来完成的。
WiFi.reconnect()
注意:
- 1.电台应该已经连接到接入点。如果不是这样,则函数将返回
false
不执行任何操作。 - 2.如果
true
返回,则意味着连接顺序已经成功启动。用户仍然应该检查连接状态,等待WL_CONNECTED
报告: WiFi.reconnect();
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
断开
将当前配置的SSID和密码设置为null
值,并将电台与接入点断开连接。
WiFi.disconnect(wifioff)
- 这
wifioff
是一个可选boolean
参数。如果设置为true
,则电台模式将被关闭。
已连接
true如果电台连接到接入点,或者false
没有连接,则返回。
WiFi.isConnected()
setAutoConnect
这autoConnect
是一个可选参数。如果设置为,false
则自动连接功能将被禁用。如果省略或设置为true
,则自动连接将被启用。
WiFi.setAutoConnect(autoConnect)
setAutoReconnect
设置模块是否尝试重新连接到接入点,以防断开连接。
WiFi.setAutoReconnect(autoReconnect)
- 如果参数
autoReconnect
设置为true
,则模块将尝试重新建立与AP的丢失连接。如果设置为,false
那么模块将保持断开连接。
主机名
Serial.printf("Default hostname: %s\n", WiFi.hostname().c_str());
WiFi.hostname("Station_Tester_02");
Serial.printf("New hostname: %s\n", WiFi.hostname().c_str());
状态
返回Wi-Fi连接的状态。
WiFi.status()
SSID
返回Wi-Fi网络的名称,正式称为服务集标识(SSID)。
Serial.printf("SSID: %s\n", WiFi.SSID().c_str());
软接入点AP
1 智能连接
ESP首先以软AP模式启动,所以我们可以使用笔记本电脑或手机连接到它。然后我们能够提供目标网络的凭据。一旦完成ESP切换到站模式,并可以连接到目标Wi-Fi。
2 作为网路节点。
软AP模式的另一个方便的应用是建立网状网络。ESP可以在软AP和站模式下运行,因此它可以作为网状网络的节点。
http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/server-examples.html
#include <ESP8266WiFi.h>
void setup() {
Serial.begin ( 115200 );
Serial.println("");
// 设置内网
IPAddress softLocal(192,168,128,1); // 1 设置内网WIFI IP地址
IPAddress softGateway(192,168,128,1);
IPAddress softSubnet(255,255,255,0);
WiFi.softAPConfig(softLocal, softGateway, softSubnet);
//String apName = ("ESP8266_"+(String)ESP.getChipId()); // 2 设置WIFI名称
String apName = "DD_ESP8266_AP_01";
const char *softAPName = apName.c_str();
WiFi.softAP(softAPName, "123456"); // 3创建wifi 名称 +密码 adminadmin
IPAddress myIP = WiFi.softAPIP(); // 4输出创建的WIFI IP地址
Serial.print("AP IP address: ");
Serial.println(myIP);
Serial.print("softAPName: "); // 5输出WIFI 名称
Serial.println(apName);
}
void loop()
{
Serial.printf("Stations connected = %d\n", WiFi.softAPgetStationNum());
delay(3000);
}
Arduino IDE for ESP8266 (0) 官方API的更多相关文章
- Arduino IDE for ESP8266教程(0)配置IDE
淘宝链接 https://detail.tmall.com/item.htm?id=540067174120&spm=a1z09.2.0.0.6f7c6509ujAvQs&_u=71q ...
- ESP8266开发之旅 进阶篇② 闲聊Arduino IDE For ESP8266烧录配置
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- Arduino IDE搭建ESP8266开发环境,文件下载过慢解决方法 | ESP-01制作WiFi开关教程,改造宿舍灯
1. Arduino IDE配置ESP8266环境 参考:https://www.jianshu.com/p/cb0274d612b5 首先从 Arduino 官网 下载最新版本的 Arduino I ...
- Arduino IDE for ESP8266 项目(4)HTTP客户端+服务端
Arduio for esp8266 官网API:http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/readme.html 很有 ...
- Arduino IDE for ESP8266 项目(1) 点亮灯+按键LED+pwm
官方文档 http://esp8266.github.io/Arduino/versions/2.1.0/doc/libraries.html 引脚口说明 http://yfrobot.com/thr ...
- Arduino IDE 安装esp8266 2.4.rc2的编译环境
2.4. 版本, 有一个我需要的功能, 串口缓存, 可以修改. Serial.setRxBufferSize(1024); //修改为1024个字节. 安装步骤: 1. 需要FQ. 推荐用" ...
- Arduino IDE for ESP8266 项目云盒子(2)一键自配置+网页服务器
https://item.taobao.com/item.htm?spm=a230r.1.14.20.eYblO3&id=521945102409&ns=1&abbucket= ...
- ESP8266 ESP-01制作B站粉丝计数器 | Arduino IDE开发ESP8266 | ESP8266存储读取用户数据
1.实物图 2.原理图 3.Arduino程序 在程序中修改自己的B站UID和自己家的WiFi名称及密码即可. /*B站粉丝计数器*/ /******************************* ...
- Arduino IDE for ESP8266 ()组网
多个esp8266连接在同一个 WIFI上,在局域网内部,相互传数据 #include <ESP8266WiFi.h> #define led 2 //发光二极管连接在8266的GPIO2 ...
随机推荐
- C# 中的集合(Array/ArrayList/List<T>/HashTable/Dictionary)
int [] numbers = new int[5]; // 长度为5,元素类型为 int.string[,] names = new string[5,4]; // 5*4 的二维数组byte[] ...
- ECMAScript typeof用法
typeof 返回变量的类型字符串值 .其中包括 “object”.“number”.“string”.“undefined”.“boolean”. 1.在变量只声明.却不初始化值 Or 在变量没 ...
- 网页三剑客:HTML+CSS+JavaScript 之 HTML的概述
HTML(超文本标记语言) 什么是HTML? HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言: HyperText Markup Language HTML 不是一种编程语言,而 ...
- Python全栈学习_day001知识点
今日大纲: . 变量. ***** . 常量.** . 注释.*** . 基础数据类型初识(int,str,bool). ***** . 用户输入 input ***** . 流程控制语句if. ** ...
- FormData对象的使用
一.概述 FormData类型是XMLHttpRequest 2级定义的,它是为序列化表以及创建与表单格式相同的数据提供便利. 作用:1.利用一些键值对来模拟一系列表单控件:即将form中的所有表单元 ...
- PHP7.27: MySqlhelper class
https://github.com/ThingEngineer/PHP-MySQLi-Database-Class https://github.com/wildantea/php-pdo-mysq ...
- 小tips:JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法. JSON.stringify(obj)将JSO ...
- 使用脚手架快速搭建React项目
create-react-app是Facebook官方推出的脚手架,基本可以零配置搭建基于webpack的React开发环境步骤: 打开控制台 进入你想要创建项目的目录文件下面 依次执行以下命令 np ...
- numpy库的常用方法
np.abs() 计算数组各元素的绝对值1 a= [0,1,2,3,4,-5,9,-3,12,-4] np.abs(a)out: array([ 0, 1, 2, 3, 4, 5, 9, 3, 12, ...
- UDP学习总结
1.UDP的优势是什么?有哪些典型的应用是使用UDP的?为什么? 2.