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

ESP8266在局域网和互联网下的使用相关推荐

  1. 【全真互联网下音视频技术创新应用】

    在过去的一年中,我们可以看到多媒体特别是音视频技术的能力在严峻的挑战下,为各行各业带来了巨大的变化.疫情过后,又会有哪些多媒体新技术.新实践呈现在大众的视野当中?为行业的发展与应用带来哪些新的趋势与机 ...

  2. 人工智能是互联网下一轮变革的核心

    3月24日消息,百度总裁张亚勤在2016年博鳌亚洲论坛IT领袖圆桌论坛上表示,一个明显的趋势是,互联网正在被扩展到三个维度.第一个维度是万物互联,第二个维度是"互联网+",第三个维 ...

  3. 《解密小米之互联网下的商业奇迹》

    解密小米 <解密小米之互联网下的商业奇迹> 磐石之心 清华大学出版社 2014/10/1 书籍:<非同凡响想,乔布斯启示录> 磐石之心:原名王斌,互联网IT资深预言家,第一个提 ...

  4. ESP8266学习笔记:实现ESP8266的局域网内通信

    ESP8266学习笔记:实现ESP8266的局域网内通信 现在就以实例入手.工程使用的是IOT_DEMO,据DEMO文档可以知道ESP8266初始工作模式为softAP+station共存的模式.于是 ...

  5. 移动互联网下一章(转载)

    移动互联网下一章(转载) 标签:  移动互联网  15小时前 距离iWatch的发布还遥遥无期,不过本土创业公司映趣科技开发的智能腕表inWatch却已经上市在即. 王小彬是深圳映趣科技的创始人.这家 ...

  6. 互联网下金融软件应采用大平台+微应用

    本文讲的是互联网下金融软件应采用大平台+微应用,"中国金融创新高峰论坛暨第十届中国金融CIO年会"在北京隆重召开.普元CTO焦烈焱受本届金融CIO年会组委会邀请,进行了<互联 ...

  7. 云授权重新定义互联网下的软件保护

    对软件加密时,一般要考虑三个纬度,1.加密安全强度:2加密开发工作量:3.加密后维护便捷性.在选用软件加密方案的时候,要综合考虑这三点. 1.加密安全强度 安全强度几个衡量标准: 加密技术:都用了哪些 ...

  8. 移动互联网下的服务转型――10086APP成长的探索

    APP是移动互联网下连接用户需求和企业发展的桥梁.10086APP是移动公司移动互联网转型的自有渠道,具有高效低成本特点,与公司战略发展契合,有较大战略发展意义.广东移动10086APP经过两年提升, ...

  9. 移动互联网下的创新创业思维

    2007年1月乔布斯的苹果公司发布第一款苹果手机,标志着全球移动互联网的开始,那年是全球移动互联网的元年.现如今10年风风雨雨转眼即逝,要想在移动互联网时代作出属于自己的成就,就要明白移动互联网的真正 ...

  10. 图情论文笔记 | 移动互联网下的高校图书馆服务

    文章目录 1. 前言 2. 移动互联网下如何开展阅读推广? 3. 移动互联网下图书馆服务体系如何转变? 参考文献 1. 前言   最近看了一下近三年的真题,发现2018年分析题考了云大物,2020年分 ...

最新文章

  1. 继清华之后,北邮成立人工智能研究院
  2. 紧跟大佬的步伐:关于我亲自动手复现了恺明新作MAE这件事
  3. 独家 | 2019 ICCV 收录论文:基于弱监督学习的病理影像分析框架
  4. 浅谈MES与SAP PP模块的集成应用
  5. SQL OVER用法
  6. 【渝粤教育】电大中专建设工程法规 (3)作业 题库
  7. emoji表情引发的JNI崩溃
  8. python按月分组_python-将行按两列分组并通过比较过滤值
  9. struts2 中 constant标签
  10. Log4j(三)——Log4j配置文件位置详解
  11. PCB学习笔记——0201 0402 0603 0805 1206焊盘封装尺寸
  12. 同一个二维码支持多种支付的实现思路
  13. SQL Server索引 (原理、存储)聚集索引、非聚集索引、堆 第一篇
  14. 演绎、归纳与前言结构——Leo鉴书83
  15. html 动态导航菜单,导航菜单,css3,javascript,响应式菜单,html,css
  16. 悦虎洛达1562M二代固件升级包最新V1.40更新日期2021.1.12(教程)
  17. 关键时刻不纠结的秘密:极简选择
  18. java类求圆的面积周长_java编程 1. 设计一个求圆的面积和周长的类,要求:1计算当半径r,JAVA编程题。编写一个应用程序计算圆的周长和面积,设圆的半...
  19. Markdown符号:整除、不整除、恰整除、不恰整除
  20. [论文阅读] (12)英文论文引言introduction如何撰写及精句摘抄——以入侵检测系统(IDS)为例

热门文章

  1. vue鼠标划过移入移出触发方法
  2. MATLAB机器人工具箱(二)机器人模型建立
  3. 股指期货真是个好东西
  4. Python爬取B站柯南弹幕+Gephi梳理主线剧情
  5. 计算机一级windows7操作,高校计算机一级考试指导书(Windows7+Office2010)
  6. python源文件的扩展名是什么_python程序文件的扩展名称是什么
  7. LM75温度传感器数据采集实验
  8. python求n的阶乘_python如何计算n的阶乘
  9. ue4风格化材质_在UE4中制作风格化场景:Bird House_资源库
  10. Latex 字体调整-斜体-下划线-加粗-罗马数字