-
2019-05-15 01:06:40
本文开发环境:
- MCU型号:ESP8266
- IDE环境 : Arduino IDE
本文内容:
- esp8266 连接路由器
简介
esp8266的应用比较多,本文先介绍非常简单的一个例子。esp8266 作为一个WiFi芯片,在Arduino 库的支持下,连接路由器非常的方便,而当我们连接上路由器以后,就可以进一步获取各个网站的接口函数,比如获取天气预报,时间日期等等操作。esp8266的联网程序主要用到了 “ESP8266WiFi.h。其详细信息可从官方完整进一步了解:点击这里访问官方资源。
示例程序
首先来看一段连接到路由器的代码示例:
// Libraries #include <ESP8266WiFi.h> // WiFi settings const char* ssid = "602"; //WiFi名为 602 const char* password = "602602602"; //密码为 602602602 void setup() { // 初始化串口 Serial.begin(115200); delay(10); // We start by connecting to a WiFi network Serial.print("Connecting to WIFI"); Serial.println(ssid); //启动wifi连接,ssid为wifi名字,password为密码 WiFi.begin(ssid, password); //轮询等待wifi连接完成 即 wifi.status() 状态为 WL_CONNECTED(表示已经连接上了) while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void loop() { Serial.print("."); delay(1000); }
串口输出
当我们下载并运行程序以后,可以从串口观察到esp8266的运行情况:
可以看到,串口助手已经显示连接成功,并打印出路由器给分配的IP地址:192.168.0.3路由器管理页查看
我们还可以登陆我们的路由器,来查看无线设备接入的情况,路由器通常IP地址为:192.168.0.1,本文使用的是360路由器,登陆路由器以后,点击“谁在上网”,可查询详情如下所示:
可以看到,有一个名为 ESP_9DE7D9 的设备连接上了,并且IP地址也和我们获取到的一样,这就是我们的模块了,或许你可以尝试拉黑这模块,看看连接时候,串口监视器会有什么提示。更多相关内容 -
ESP8266作为客户端通过路由器连接服务器的简单实现
2018-03-17 14:28:02ESP8266这个WiFi模块即可以作为服务器,发出WiFi供其他的客户端连接;也可以作为客户端连接服务器。 接下来就简单的演示ESP8266通过路由器连接服务器的实现,连接服务器时ESP8266使用到的指令: 将8266设置为STA...ESP8266这个WiFi模块即可以作为服务器,发出WiFi供其他的客户端连接;也可以作为客户端连接服务器。
接下来就简单的演示ESP8266通过路由器连接服务器的实现,连接服务器时ESP8266使用到的指令:
- 将8266设置为STA模式: AT+CWMODE=1
- 设置完之后重启: AT+RST
- 8266连接路由器发出的WiFi: AT+CWJAP=”WiFi名”,”WiFi密码”
- 启动多连接: AT+CIPMUX=1
- 建立server: AT+CIPSERVER=1
- 通过协议、IP和端口连接服务器: AT+CIPSTART=0,”TCP”,”192.168.2.176”,10012
- 发送数据的长度: AT+CIPSEND=0,8
- 发送数据: LayneYao
在电脑中用Java写一个简单的服务器程序:
import java.io.DataInputStream; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; /** * Created by Layne_Yao on 2018-4-23 上午9:41:59. * CSDN:http://blog.csdn.net/Jsagacity */ public class Service { public static void main(String[] args) throws Exception { // 创建服务端,指定端口为10012 ServerSocket server = new ServerSocket(10012); byte[] msg = new byte[50]; System.out.println("服务器准备就绪......."); // 接收连接该服务端的客户端对象 Socket client = server.accept(); //定义一个数据输入流,接收8266发送过来的消息 InputStream in = new DataInputStream(client.getInputStream()); //设置成死循环,可以无限接收8266发送的数据 boolean accept = true; while (accept) { //输入流读取数据 in.read(msg); System.out.println(new String(msg)); } in.close(); client.close(); server.close(); } }
服务器运行之后就进入线程阻塞,等待客户端的连接。接下来就操作8266进行连接服务器:
动态演示发送数据:
还可以无限的发送数据,不用重新连接IP和端口。这就是8266跟服务器的长连接简单实现,不过如果四分钟左右没有通信过,那么这个长连接就会断开,具体哪边断开没有进行测试过。如果要使用长连接的就要考虑如何保活了。
如果对智能家居实现还是懵懂,并且想学习的,接下来我开展一篇Chat:智能家居远程控制,实现APP与ESP8266远程通信
-
05.ESP8266连接网络
2021-11-25 20:44:25ESP8266物联网开发笔记05ESP8266既可以作为一个无线终端(STA模式),像手机一样连接路由器,也可以作为热点(AP模式),像路由器一样让手机、电脑来连接。本篇介绍ESP8266作为无线终端连接网络。
1. 连接网络
打开Arduino IDE,新建sketch,拷贝如下代码并保存。
/* * connect01 * ESP8266连接网络 */ #include <ESP8266WiFi.h> const char* ssid = "your-ssid";//连接WIFI名(SSID) const char* password = "your-password";//WIFI密码 void setup() { Serial.begin(115200); Serial.println(); Serial.println("--------------"); WiFi.begin(ssid,password);//启动网络连接 Serial.printf("Begin to Connect %s\r\n", ssid); while (WiFi.status() != WL_CONNECTED)//检测网络是否连接成功 { delay(500); Serial.print("."); } Serial.println(); Serial.print("Connected, IP address: "); Serial.println(WiFi.localIP());//返回ESP8266的IP地址 } void loop() {}
电脑连接开发板,在工具—开发板—端口中选择正确的端口号,点击上传,程序编译并上传。
上传完成后打开串口监视器,波特率设置115200,可以看到串口打印联网信息如下:
当成功连接网络后,ESP8266将获取到IP地址,在同一局域网下的电脑端,打开命令提示符,通过ping命令测试通讯正常。
2. 扫描多个热点连接
在ESP8266WiFiMulti库中,为我们提供了往ESP8266添加多个热点存储功能,ESP8266会在添加的多个热点中,自动搜索信号最强的那个连接,当开发板需要在多个地方使用时,可以非常方便的自动连接当前环境的热点。
/* * connect02 * ESP8266在多个热点中寻找信号最强的进行连接 */ #include <ESP8266WiFi.h> #include <ESP8266WiFiMulti.h> ESP8266WiFiMulti wifis;//建立ESP8266WiFiMulti对象 void setup() { Serial.begin(115200); Serial.println(); Serial.println("--------------"); //添加多个热点信息 wifis.addAP("TonyCode", "12345678"); wifis.addAP("TonyCode1","12123455"); wifis.addAP("TonyCode2","88888888"); wifis.addAP("TonyCode3","66666666"); Serial.println("Begin to Connect"); while (wifis.run() != WL_CONNECTED)//检测网络是否连接成功 { delay(500); Serial.print("."); } Serial.println(); Serial.printf("Connected %s, IP address: ", WiFi.SSID()); Serial.println(WiFi.localIP());//返回ESP8266的IP地址 } void loop() {}
通过addAP()函数,添加需要存储的热点SSID和密码,run()函数在当前环境中搜索存储的热点,寻找信号最强的进行连接。
关注公众号「TonyCode」。
-
ESP8266 Arduino开发之路(2)— 连接到无线WiFi路由器
2021-06-20 20:37:43ESP8266 Arduino开发之路(2)— 连接到无线WiFi路由器 一、前言 ESP8266可以通过WiFi连接到无线路由器,这种方式和手机通过WiFi连接无线路由器的模式是相同的,我们称该模式为无线终端模式(Wireless Station),即...ESP8266 Arduino开发之路(2)— 连接到无线WiFi路由器
一、前言
ESP8266可以通过WiFi连接到无线路由器,这种方式和手机通过WiFi连接无线路由器的模式是相同的,我们称该模式为无线终端模式(Wireless Station),即STA工作模式。
参考自:NodeMCU开发板的无线终端模式二、编写程序
编写程序如下所示
/* ESP8266-NodeMCU无线终端模式连接WiFi */ #include <ESP8266WiFi.h> // 本程序使用ESP8266WiFi库 const char* ssid = "SixLab"; // 需要连接到的WiFi名 const char* password = "sixlab123"; // 连接的WiFi密码 void setup() { Serial.begin(115200); // 初始化串口通讯波特率为115200 WiFi.mode(WIFI_STA); // 设置Wifi工作模式为STA,默认为AP+STA模式 WiFi.begin(ssid, password); // 通过wifi名和密码连接到Wifi Serial.print("\r\nConnecting to "); // 串口监视器输出网络连接信息 Serial.print(ssid); Serial.println(" ..."); // 显示NodeMCU正在尝试WiFi连接 int i = 0; // 检查WiFi是否连接成功 while (WiFi.status() != WL_CONNECTED) // WiFi.status()函数的返回值是由NodeMCU的WiFi连接状态所决定的。 { // 如果WiFi连接成功则返回值为WL_CONNECTED delay(1000); // 此处通过While循环让NodeMCU每隔一秒钟检查一次WiFi.status()函数返回值 Serial.print("waiting for "); Serial.print(i++); Serial.println("s..."); } Serial.println(""); // WiFi连接成功后 Serial.println("WiFi connected!"); // NodeMCU将通过串口监视器输出"连接成功"信息。 Serial.print("IP address: "); // 同时还将输出NodeMCU的IP地址。这一功能是通过调用 Serial.println(WiFi.localIP()); // WiFi.localIP()函数来实现的。该函数的返回值即NodeMCU的IP地址。 } void loop() { }
三、烧录实现
编译烧录到开发板,打开串口助手可以看到打印连接成功信息
然后我们可以尝试通过ping来检查esp8266确实连接到网络,如下所示,NodeMCU成功的对我们的ping指令做出应答,这样就可以确定当前NodeMCU已经成功连接WiFi了。
四、自动连接最强WiFi信号
我们可以通过编程让NodeMCU在它所处的网络环境里搜索预先存储好的WiFi,一旦找到预存的WiFi名称,NodeMCU将会使用预存的密码信息尝试连接该WiFi,如果同时找到多个预存WiFi,NodeMCU将会尝试连接信号最强的WiFi。编写程序如下所示
/* ESP8266-NodeMCU无线终端模式连接WiFi NodeMCU会使用预存的密码信息尝试连接WiFi, 如果同时找到多个预存WiFi,NodeMCU将会尝试连接信号最强的WiFi。 */ #include <ESP8266WiFi.h> // 本程序使用ESP8266WiFi库 #include <ESP8266WiFiMulti.h> // 预存多个WiFi需要使用 ESP8266WiFiMulti wifiMulti; // 新建ESP8266WiFiMulti对象,对象名称是'wifiMulti' void setup() { Serial.begin(115200); // 初始化串口通讯波特率为115200 /* 通过addAP函数添加需要存储的WiFi名称和密码 */ wifiMulti.addAP("SixLab", "sixlab123"); wifiMulti.addAP("SixLab1", "sixlab1234"); wifiMulti.addAP("SixLab2", "sixlab1235"); /* 可以添加更多的addAP函数来存储更多的WIFI连接信息 */ WiFi.mode(WIFI_STA); // 设置Wifi工作模式为STA,默认为AP+STA模式 Serial.println("\r\nConnecting to WiFi..."); // 串口监视器输出正在连接网络 int i = 0; // 检查WiFi是否连接成功 while (wifiMulti.run() != WL_CONNECTED) // 通过wifiMulti.run(),NodeMCU将会在当前环境中搜索addAP函数所存储的WiFi。 { // 如果搜到多个存储的WiFi那么NodeMCU将会连接信号最强的那一个WiFi信号。 delay(100); // 一旦连接WiFI成功,wifiMulti.run()将会返回“WL_CONNECTED”。 Serial.print("waiting for "); Serial.print(i++); Serial.println(" times..."); } Serial.println('\n'); // WiFi连接成功后 Serial.print("Connected to "); // NodeMCU通过串口监视器输出连接的WiFI名称 Serial.println(WiFi.SSID()); Serial.print("IP address:\t"); // NodeMCU的IP地址 Serial.println(WiFi.localIP()); } void loop() { }
编译烧录到开发板,运行如下所示
五、附录
上一篇:ESP8266 Arduino开发之路(1)— 搭建开发环境并点亮LED
下一篇:ESP8266 Arduino开发之路(3)— 作为TCP客户端连接到服务器 -
ESP8266 连接 MQTT
2022-05-18 22:34:54ESP8266 连接 MQTT 主控芯片:MM32F2377 (MB-039) WiFi 适配器:ESP8266 开发环境:IAR 7.80.4 MQTT 模拟服务器:MQTT.fx MQTT MQTT is an OASIS standard messaging protocol for the Internet of Things (IoT).... -
物联网项目设计(三)STM32配置ESP8266使用 STA TCP客户端模式初步
2021-01-06 12:35:15本部分内容介绍如何使用STM32配置ESP8266使用STA模式,这个是使用MQTT与上层服务器链接的必要前提,笔者也是第一次使用ESP8266,通过AT指令来配置,查找了很多资料与代码,借鉴了正点原子ESP8266库和例程,在其基础... -
ESP8266 连接 WIFI 路由器启用网络
2020-12-05 10:18:07之前,我已经将MicroPython固件烧写进了ESP8266的开发板中,现在给开发板供电后,通过手机搜索无线局域网,能够发现一个以MicroPython-xxxxxx(xxxxxx是你esp8266芯片的MAC地址)为名的WIFI热点,可以通过手机连接此... -
ESP8266的连接模式
2021-08-07 22:11:45连接到 Wi-Fi 由接入点 (AP) 提供,该接入点充当一个或多个站的枢纽。另一端的接入点连接到有线网络。接入点通常与路由器集成,以提供从 Wi-Fi 网络到互联网的访问。每个接入点都由 SSID(Service S和ID识别器)... -
ESP8266连接ONENET
2021-03-01 08:46:50选用ESP8266串口WIFI模块,通过AT指令控制WIFI模块接入互联网,依次完成与接入互联网、与OneNet服务器建立TCP连接、传输数据等操作,ESP8266串口WIFI模块硬件实物图如下: 与PC连接得实物图如下: 串口配置 ... -
2-STM32+ESP8266连接onenet并上传数据(HTTP)
2021-06-10 00:21:553、使用串口助手发送AT指令控制ESP8266连接onenet云平台,并上传数据(主要了解8266整个初始化及连接云端传输数据的过程及数据格式) 4、在原来已有的基础上(STM32可以在OLED上显示温湿度)尝试添加ESP8266部分代码... -
ESP8266-WiFi-HotSpot-Locater:ESP8266 Gizmo 连接到最强的开放热点
2021-06-29 01:50:06我的目标是创建一个简单的手持热点定位器,它会很快告诉我是否可以从任何给定位置连接到我们家周围的几个 WiFi 路由器之一。 如果这可行,那么我可以创建其他物联网小工具,自动寻找最强信号并自动连接到它们。 我的... -
ESP8266折腾之路(二) 连接WIFI路由器使能上网
2021-03-17 01:19:59之前,我已经将MicroPython固件烧写进了ESP8266的开发板中,现在给开发板供电后,通过手机搜索无线局域网,能够发现一个以MicroPython-xxxxxx(xxxxxx是你esp8266芯片的MAC地址)为名的WIFI热点,可以通过手机连接此... -
小白快速入门esp8266 连接wifi(一)
2020-12-20 18:53:42esp8266通过连接wifi可以访问互联网,实现更多好玩有意思的事情。 上代码!!! #include<ESP8266WiFi.h> const char *ssid = "wifi名称"; // 写入你需要连接的wifi名称 const char *password = "wifi密码"; // ... -
STM32F103C8T6+ATK-ESP8266连接原子云
2022-01-22 11:54:19但在博主的不懈努力下(其实愁坏了),最后找到了正点原子的这款ATK-ESP8266模块成功连接了原子云并实现了远程控制功能。 所以在这里呢也是给大家分享一下博主的连云过程,也算是记录一下,以免后来自己忘了怎么.. -
ESP8266连接手机
2020-02-16 13:53:041为Station 模式:ESP8266 模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。 2为AP 模式:ESP8266 模块作为热点,手机或电脑直接与模块连接,实现局域网无线控制。 3为STA+AP 模式:两种模式... -
基于STM32、LD3320和ESP8266的语音与远程控制系统-电路方案
2021-04-20 15:02:58添加了垃圾词汇,见虚拟U盘一图,xiao xing 对应多个垃圾词语,买家不要删除 唤醒词尽量避免了使用常见的短语 使用方法(见附件): 只通电,上电准备就绪后,喇叭播放 “系统正在运行中”语音; 先说唤醒词 “小星”... -
ESP8266介绍与连接第三方物联网平台
2021-11-30 14:22:45一、ESP8266连线方式 1、ESP8266引脚定义 ...ESP8266 模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。 AT+CWMODE=1 //1是Station模式 AT+RST //重新启动wifi模块 AT+CWJAP="所要连接的局域 -
ESP8266-使用浏览器动态连接路由器
2018-07-06 23:02:44ESP8266的开发环境有很多,在此我推荐使用arduino IDE for ESP8266。网上有很多的配置教程,不想找也可以打开以下链接,这是我转发的一个配置教程:https://blog.csdn.net/zhyulo/article/details/80946422配置好后... -
esp8266系列学习(二)——esp8266+手机端同处一个路由器下组成局域网进行tcp通信的工作模式设定方法
2019-04-25 17:59:21二、esp8266+手机端同处一个路由器下组成局域网进行 tcp通信的工作模式设定方法 前言:esp8266模块和手机通过路由器组建局域网进行tcp通信,esp8266模块设置为客户端,手机端设置为服务器端,路由器为网关,esp... -
stm32与esp8266连接,将数据上传到OneNet(MQTT)
2021-11-01 22:08:27文章目录前言一、所用器件(1)STM32F103C8T6(2)转串口模块(CH340)(3)esp8266-01s(4)气体检测模块_MQ二、代码分析(1)接线(2)代码三、OneNet创建一个设备(1)百度搜索onenet(2)进入官网(3)右上角:... -
五,ESP8266 TCP服务器多连接
2017-09-16 12:46:08对于TCP大家在玩AT指令的时候有没有发现客户端最多连接5个,,,再连接就不行了?? 所以在用AT指令开发的时候单片机程序一定要记得清除多余的连接 现在看用LUA语言怎么做 直接先上菜 Init.lua gpio.mode(4,gpio.... -
esp8266系列学习(四)——esp8266+手机端+路由器(路由可上网)组成物联网与广域网建立tcp通信的工作模式...
2019-04-25 18:31:24esp8266模块和手机同时接入在一个路由下,通过路由器建立二者之间的tcp通信,模块设置为客户端,手机设置为服务器端,路由器为网关,同时由于路由器能上网,所以8266模块可以通过路由器与广域网上的服务器进行远程长... -
ESP8266---单连接 TCP Client
2022-03-26 00:02:44ESP8266---单连接 TCP Client简介步骤注意 简介 使用ESP8266-01S + USB转TTL连接PC 建立简单的单连接 TCP Client 步骤 在串口配置AT指令 配置 WiFi 模式,输入AT指令 AT+CWMODE=3 // softAP+station 模式 连接路... -
ESP8266_AP模式、UDP的服务器or客户端
2022-05-21 22:09:13ESP8266工作在AP模式,创建一个WiFi局域网; ESP8266作为服务器,IP:192.168.4.1,端口:8266; 电脑连接此WiFi使用网络调试助手作为客户端,IP:192.168.4.2,端口:6666; 使用UDP连接,有数据直接发,不需要... -
ESP8266模组作为客户端连接到网络调试助手服务器
2022-03-15 23:03:54本文将展示如何以WiFi作为联网方式,ESP8266WiFi模组作为客户端,网络调试助手作为TCP服务器,以TCP协议为基础,使用AT指令连接到网络调试助手。 -
Html,该怎么内置网页控制设备,理清内置网页的实现过程,实现无需路由器手机也可以控制esp8266。...
2018-10-30 16:22:33这个月也快结束了,时间真快,我服务器知识自学依然在路途中,这几天听到热点网页配置`esp8266`连接路由器,那么我想这个不是很复杂,不过需要一些通讯协议的基础,以及对`esp8266`的`SDK`开发的熟悉,这几天撸了几... -
手机与ESP8266控制单片机,ESP8266相互通信(有代码)
2021-04-12 23:13:46通过手机与2个ESP8266控制单片机 一、材料 2个ESP8266,一台手机,2台51开发板(芯片为STC89C52) 二、实现手机控制单片机LED的亮灭 1)、首先ESP8266波特率一般为115200,而单片机的波特率跑不了那么高,所以改9600,... -
Arduino UNO与ESP8266串口连接
2019-04-14 06:14:15Arduino UNO与ESP8266串口连接1. ESP8266烧录AT固件1.1 烧录软件下载1.2 烧录AT固件2. ESP8266 AT指令3. Arduino UNO 串口连接方式4. Arduino UNO与ESP8266-12f串口连接5. 串口调试 1. ESP8266烧录AT固件 1.1 烧录... -
[ESP8266]刷MQTT固件以及连接服务器失败的问题解决
2022-05-11 16:34:24德飞莱ESP8266-12S刷MQTT固件,以及连接服务器失败:+MQTTDISCONNECTED:0 ERROR报错解决办法。