ESP8266在局域网和互联网下的使用

ESP8266在局域网和互联网下的使用

1, ESP8266资料准备

首先认识一些公司和网站平台,上海乐鑫、深圳安信可,物联网公司有电灯科技等等,还有各类云平台,onenet,腾讯云,阿里云,百度云等等,还有arduino官网、GitHub等等,去他们的官网可以找到一些相关文档和工具,上海乐鑫是做esp8266这个芯片的,而安信可是把这个芯片加上一些必要的外围电路做成一块开发板,也可以叫nodemcu。相当于乐鑫是卖cpu的,而安信可是卖手机的。
在这里插入图片描述

在这里插入图片描述

2,ESP8266开发环境的搭建

常见的esp8266可选的开发方式有以下几种(不止):

1,官方SDK开发:使用官方提供的软件开发包,在SDK的基础上进行二次开发。
2,AT指令开发:通过在 esp8266 中烧写对应的固件,使得esp8266可以通过串口AT指令和其他单片机,如STM32,51单片机等通信,通过串口发送数据来配置esp8266,进行开发。
3,Lua 脚本开发:nodemcu是一个含Lua解释器的固件,通过烧写该固件,可以使用Lua语言来开发esp8266。
4,Python 脚本开发:MicroPython for ESP8266 是一个含python解释器的估计,通过烧写该固件,可以使用Python来开发esp8266。
5,Arduino IDE 开发:arduino支持esp8266的开发,和其他单片机的开发方式相同,arduino IDE 高度封装了各种esp8266的外设驱动,提供了简明的API供程序员直接调用
6,安信可提供了一套开发软件供其开发,不用装虚拟机即可开发

小结:总的来分有两类开发方式:

一是:ESP8266是wifi芯片,其模组内有固件,厂家封装了wifi的协议栈,用户在使用的时候只需要把该模组当做一个透传模块就可以。通过串口和该模块发送AT指令即可操作WIFI。该模式需要用到一颗单片机,单片机和ESP8266模组通过UART来连接,单片机编写串口程序,单片机通过串口给模组发送AT指令,AT指令开发的优势是不需要实现协议栈,只是把模组当做一个串口模块即可,大大降低了开发难度,但是需要用一颗单片机,成本提高了。

二是:ESP8266本身就是一颗32位的单片机,SDK开发方式就是重新编程,根据自己所需要的功能实现相关的协议栈,需要对WIFI、TCP、UDP、MQTT等网络、通信协议有一定的知识,并能把他们用代码来实例化。换句话说,自己实现模组的固件。这样做的好处就是节省了一颗单片机,确定就是对编程能力、技术要求较高、门槛较高。

3,ESP8266的工作模式

模式1:串口无线 WIFI(COM-WIFI AP)模式,模块作为无线 WIFI 热点,允许其他WIFI 设备连接到本模块,实现串口与其他设备之间的无线(WIFI)数据转换互传。该模式下,根据应用场景的不同,可以设置 3 个子模式:TCP 服务器、TCP 客户端,UDP。

模式2:串口无线 STA(COM-WIFI STA)模式,模块作为无线 WIFI STA,用于连接到无线网络,实现串口与其他设备之间的无线(WIFI)数据转换互传。该模式下,根据应用场景的不同,可以设置 3 个子模式:TCP 服务器、TCP 客户端,UDP。

模式3:串口无线 AP+STA(COM-WIFI AP+STA)模式,模块既作无线 WIFI AP,又作无线 STA,其他 WIFI 设备可以连接到该模块,模块也可以连接到其他无线网络,实现串口与其他设备 之间的无线(WIFI)数据转换互传。该模式下,根据应用场景的不同,可以设置 9 个子模 式:(TCP 服务器、TCP 客户端,UDP)||(TCP 服务器、TCP 客户端,UDP)。

4,透传工作方式

这里我只对透传工作方式做详细介绍,也就是用AT指令操作ESP8266,该工作方式可以在局域网下透传串口数据到手机或者电脑,用于无线查看单片机串口数据,至于用SDK开发ESP8266本文不做过多介绍。这里我用的是ATK_ESP8266模块,该模块的使用指南明确说明,仅在 TCP Client 和 UDP,支持透传模式,原因稍后介绍。

设置ESP8266为AP——TCP客户端在这里插入图片描述在这里插入图片描述

1.AT+CWMODE=2
2.AT+RST
3.AT+CWSAP=“ATK-ESP8266”,“12345678”,1,4
4.AT+CIPMUX=0
在发送了上述4条指令并且ESP8266模块返回正确的数据后,然后手机端连接"ALIENTEK"热点并使用手机端的网络调试助手配置手机为TCP Server端,并设置端口号为8086,手机这边可以查看手机连上8266模块后手机端的IP,该IP一般是192.168.4.xxx。测试时模块分配给手机的IP是192.168.4.2,所以需要将第五条指令中的IP地址改为192.168.4.2。一般来说,ESP8266的IP为192.168.4.1,则接入ESP8266的手机或电脑的IP为192.168.4.2
5.AT+CIPSTART=“TCP”,“192.168.4.2”,8086
6.AT+CIPMODE=1
7.AT+CIPSEND
即可透传串口数据

设置ESP8266为AP——TCP服务器在这里插入图片描述

1.AT+CWMODE=2
2.AT+RST
3.AT+CWSAP=“ATK-ESP8266”,“12345678”,1,4
4.AT+CIPMUX=1
5.AT+CIPSERVER=1,8086
在发送了上述5条指令,8266模块发回正确的数据后,然后手机端WIFI连接“ALIENTEK”热点并使用手机端的网络调试助手配置手机作为TCP Client,并配置IP为192.168.4.1,端口号为8086,然后再依次发送
6.AT+CIPSEND=0,25
7.012345678901234567890数字
需要说明的是8266模块每发送一次数据之前就需要发送AT+CIPSEND=0,25。

注意

1,若想如果需要模块上电自动连接到某个 IP 并进入透传模式,这个时候 需 要 在 模 块 连 接 到 路 wifi 热 点 之 后 ,发送指令,AT+SAVETRANSLINK=1,“192.168.1.xxx”,8086,“TCP”,设置模块为上电自动连接到 TCP Server : 192.168.1.xxx , 8086 , 并 进 入 透 传 模 式 。 当 发 送AT+SAVETRANSLINK 指令后,模块断电再上电会自动进入透传模式,此时发送 AT 指令模块是不会回复的(即使透传的服务器不存在,模块也会进入透传模式的)。模块要恢复到 AT 指令模式要先退出透传模式(不勾选发送新行,单独发送一组数据+++,即可退出透传模式),然后勾选发送新行,再发送==“AT+SAVETRANSLINK=0==”,这样上电模块就不会再上电进入透传了

2,发送AT指令可以借用开发板上面的板载CH340,开发板上面的地多,方便烧录时GPIO拉低进入烧录模式.I0-0:用于进入固件烧写模式,低电平是烧写模式(即DFU模式,用专门的烧录工具烧录固件),高电平是运行模式(默认状态),该模式下即AT指令配置、透传等等正常运行模式

3,PC机上用网络调试助手建立TCP服务器时,总是与客户端建立TCP连接失败,原因:防火墙没关闭,注意端口不用使用已经被用了的端口号,可用指令在cmd中查询
在这里插入图片描述

4,DHCP(Dynamic Host Configuration Protocol):动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。在路由器搭建起的局域网中,会动态分配IP地址,即设备每次连接局域网后的ip地址不固定

5,进行开发时,其实就是到处嫖各类驱动代码,然后一步一步移植、调试

6,透传模式需要设置为单连接,但是作为服务器不能设置为单连接,所以透传模式需要使得8266为客户端
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

7,TCP与UDP,可自行百度,TCP特点主要是稳,受损的数据会重发,而UDP是快,受损数据不重发

8,注意有些MicroUSB线不支持数据传输,智能充电

9,STA模式下的透传设置和AP模式差不多,只是需要WiFi密码和名称

10,该类WIFI、蓝牙模块的AT指令调试,最需要注意的是进入AT模式、烧录模式、正常模式等等方式,比如有个引脚要拉高或拉低还有发送是否要加上换行以及默认的波特率

下次介绍以下基于Arduino的esp8266开发

[参考资料]

【ESP8266模块在AP模式下设置为TCP服务器与手机进行通讯的方法(通过串口助手) 】http://www.openedv.com/forum.php?mod=viewthread&tid=291982&highlight=ESP8266%C4%A3%BF%E9%D4%DAAP%C4%A3%CA%BD%CF%C2%C9%E8%D6%C3%CE%AATCP

【ESP8266模块在AP模式下设置为TCP客户端与手机进行通讯的方法(通过串口助手) 】http://www.openedv.com/forum.php?mod=viewthread&tid=291982&highlight=ESP8266%C4%A3%BF%E9%D4%DAAP%C4%A3%CA%BD%CF%C2%C9%E8%D6%C3%CE%AATCP

ESP8266_AT指令集V2.1.0

ATK-ESP8266 WIFI用户手册_V1.5

ATK-ESP8266 WIFI模块使用说明(战舰V3&精英版)_AN1509A

### 回答1: STM32和ESP8266是两种常见的嵌入式系统开发板,常用于物联网设备的开发。 STM32是由意法半导体(STMicroelectronics)开发的32位单片机系列,具有较强的计算能力和丰富的外设接口。它可以通过编程实现各种功能,比如控制外设、处理数据等。在物联网设备的开发中,STM32通常作为主控芯片,收集各种传感器数据,控制各种执行器等。 而ESP8266是一款高度集成化的Wi-Fi模块,由国内厂商乐鑫(Espressif)开发。它内置了TCP/IP协议栈,能够通过Wi-Fi连接到网络,并通过串口与其他设备进行数据交互。ESP8266可以与各种微控制器(如STM32)配合使用,实现物联网设备与互联网的连接。 局域网APP则是指在局域网内通过手机或平板电脑等移动设备控制物联网设备的应用程序。这种应用程序通常通过Wi-Fi与物联网设备进行通信,实现用户对设备的远程控制。 在STM32和ESP8266局域网APP的开发中,首先需要使用STM32将各种传感器数据采集下来,并通过ESP8266模块将数据发送到局域网中。同时,需要将ESP8266模块设置为以STA模式连接到Wi-Fi网络,并与移动设备进行通信。同时在移动设备上开发一个APP,通过Wi-Fi与ESP8266模块通信,实现用户对物联网设备的远程操控。 总结起来,STM32负责物联网设备的数据采集和控制ESP8266负责数据传输和与移动设备的通信,而局域网APP提供了用户远程控制物联网设备的界面。通过这样的组合,可以实现物联网设备在局域网中的无线控制。 ### 回答2: STM32是一种32位的单片机微控制器,ESP8266是一种Wi-Fi模块,局域网APP是指在局域网中运行的应用程序。 在具体实现上,我们可以使用STM32来控制ESP8266模块连接到局域网,并实现与其它设备的通信。首先,我们需要在STM32上编写相应的代码,通过串口或者SPI接口控制ESP8266模块的通信,使其能够连接到局域网中的无线网络。 一旦连接成功,我们可以使用STM32与ESP8266模块进行数据的传输。例如,可以通过STM32发送指令给ESP8266模块,让其在局域网中搜索其它设备,并与之建立连接。同时,ESP8266模块也可以将接收到的数据传输给STM32进行处理和展示,或者将STM32要发送的数据传输给其它设备。 局域网APP可以通过与STM32和ESP8266模块的通信来远程控制和监控设备。我们可以在APP上编写相应的界面和逻辑代码,通过局域网与STM32和ESP8266模块进行通信。例如,可以通过APP发送指令给STM32,然后由STM32通过ESP8266模块将指令传输给要控制的设备,如智能家居中的灯光、电机等。 同时,APP也可以实时获取STM32和ESP8266模块传回的数据,然后将其展示在界面上。例如,可以通过ESP8266模块将环境温度、湿度等数据传输给STM32,然后由STM32将数据传输给APP,用户可以通过APP实时查看设备的状态和环境信息。 因此,通过将STM32和ESP8266模块连接到局域网,并与局域网APP进行通信,我们可以实现远程控制和监控设备的功能。 补充:以上所述是一种基于STM32和ESP8266模块的局域网APP实现方式,具体实施中可能还有其他选择和技术方案。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值