物联网系列之WIFI模块ESP8266一介绍

时间:2024-04-10 10:07:27

内容

Change history

内容

1        前言

1.1        目的

2        计划

2.1        测试环境

2.2        计划

3        行动

3.1        物联网

3.1.1        什么是物联网

3.1.2        挑战与机遇

3.1.3        物联网的尝试

3.2        需求

3.3        ESP8266

3.3.1        特点

3.3.2        ESP8266如何联网

3.3.3        AT指令

3.4        微信小程序

3.4.1        介绍

3.4.2        相比于Android、IOS、PC的APP的优势

3.4.3        在实践项目中,微信小程序的作用

3.5        测试

4        优化

4.1        成本优化

4.2        功能优化

 

1      前言

1.1    目的

对物联网行业的一次探索与实践。

物联网从0到1的实践。

做出一款具有实际应用价值的物联网产品。产品应用场景为学校空调控制系统,通过微信小程序控制WiFi转红外硬件设备来管理所有空调的开关。

2      计划

2.1    测试环境

类别

要求

电脑

Win10

底层硬件编译软件

keil  5.1

底层试验硬件平台

STM32F407开发板+ESP8266

底层硬件产品平台

STM32F0+ESP8266+红外发射管

WIFI模块

ESP8266

应用端

微信小程序

测试工具

网络调试助手、串口调试助手

 

2.2    计划

1.               实现微信小程序为STM32F407开发板+ESP8266配网;

2.               实现网络调试助手与STM32F407开发板+ESP8266之间建立UDP通信;

3.               实现微信小程序与STM32F407开发板+ESP8266之间建立UDP通信;

4.               实现微信小程序控制低成本的STM32F0平台+ESP8266实现红外发送控制空调开关与调温;

3      行动

3.1    物联网

3.1.1         什么是物联网

物联网系列之WIFI模块ESP8266一介绍                            

下面这段定义摘自百度百科:

物联网(The Internet of Things,简称IOT)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、无语人的泛在连接,实现对物品和过程的智能化感知、识别和管理。物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够独立寻址的普通物理对象形成互联互通的网络。

3.1.2         挑战与机遇

3.1.2.1     技术标准的统一与协调

目前,传统互联网的标准不适合物联网。物联网感知层的数据多源异构,不同的设备与不同的接口,不同的技术标准;网络层、应用层也由于使用的网络类型不同、行业的应用方向不同而存在不同的网络协议和体系结构。建立的统一的物联网体系架构,统一的技术标准是物联网现在正在面对的难题。

上面这段话摘自百度百科,从中不难看出,物联网行业并没有出现大统一的标准,相比于汽车行业,有更多的发展空间和活动空间,没有太多的各种标准限制。

一段关于行业生命周期分析的文字:

行业生命周期分为四个阶段:①形成期;②成长期;③成熟期;④衰退期;

物联网系列之WIFI模块ESP8266一介绍

 

(3)成熟期。进入成熟期后,一方面,行业的市场已趋于饱和,销售额已难以增长,在此阶段的后期甚至会开始下降;另一方面行业内部竞争异常激烈,企业间的合并、兼并大量出现,许多小企业退出,于是行业由分散走向集中,往往只留下少量的大企业。产品成本控制和市场营销的有效性成为企业成败的关键因素。

(2)成长期。进入成长期,行业的产品已较完善,顾客对产品已有认识,市场迅速扩大,企业的销售额和利润迅速增长。同时,有不少后续企业参加进来,行业的规模扩大,竞争日趋激烈,那些不成功的企业已开始退出。市场营销和生产管理(提高质量和降低成本)成为关键性职能。

(1)形成期。形成期是指某行业刚出现的阶段。在此阶段,有较多的小企业出现,因为企业刚建立或刚生产某种产品,忙于发展各自的技术能力而不能全力投入竞争,所以竞争压力较小。研究开发和工程技术是这个阶段的重要职能,在营销上则着重广告宣传,增进顾客对产品的了解。

观察近几年的汽车行业的发展,该行业处于成熟期是毋庸置疑的,而物联网处于成长期,价格和市场是竞争的关键。

3.1.3         物联网的尝试

最触手可及的网络即为WIFI,最触手可及的应用端程序为网页、Android、IOS、PC的APP和微信小程序。使用应用端的程序通过互联网控制一个硬件设备,这可以称作物联网。

3.2     需求

 

3.3     ESP8266

ESP8266系列无线模块是高性价比WIFI SOC模组,该系列模块支持标准的IEEE802.11b/g/n协议,内置完整的TCP/IP协议栈。用户可以使用该系列模块为现有的设备添加联网功能,也可以构建独立的网络控制器。

物联网系列之WIFI模块ESP8266一介绍

 

3.3.1         特点

·       体积超小的802.11b/g/n WiFi SOC模块

·       采用低功率32位CPU,可兼作应用处理器

·       主频最高可达160MHz

·       内置10bit高精度ADC

·       支持USART、GPIO、IIC、PWM、ADC、SPI等接口

·       支持多种休眠模式,深度睡眠电流低至20uA

·       内嵌LWIP协议栈

·       支持STA、AP、STA+AP工作模式

·       支持smart config、AirKiss一键配网

·       通用AT指令可快速上手

·       支持SDK二次开发

·       支持串口本地升级和远程固件升级(FOTA)

3.3.2         ESP8266如何联网

手机上连接WIFI的操作流程是先打开WIFI开关,然后选择WIFI网络,再然后输入密码即可。

对于物联网设备不会像手机这么有好的交互界面,否则成本会很高;

其次,设备数目巨大时,不可能每个每个设备单独的挨个输入账号和密码;

另外,我们希望WIFI模块适用在各种场合,那么就会有各种WIFI网络账号名和密码,密码也会不断更新,账号和密码就不能是固定的。

针对这些期望,ESP8266支持一种模式叫smartconfig,帮助用户将采用ESP8266EX和ESP32的设备连接至WiFi网络,用户只需要在手机上进行简单操作即可实现智能配置。这个过程如下图所示:

物联网系列之WIFI模块ESP8266一介绍

 

由于设备在一开始并未连接至网路,手机端 App 无法直接向设备发送信息。通过通过smartconfig通信协议,具备WiFi网络接入能力的设备(例如智能手机)就可以向接入点(AP)发送一系列UDP包,其中每一包的长度(即Length字段)都按照smartconfig通信协议进行编码,SSID和密码就包含在Length字段中,随后设备便可以获得并解析出所需的信息。数据包结构如下图所示:

物联网系列之WIFI模块ESP8266一介绍

 

 

更多详细的内容可以到乐鑫官网查找:

https://www.espressif.com/zh-hans/support/documents/technical-documents?keys=&field_type_tid%5B%5D=14

3.3.3         AT指令

ESP826支持AT指令,这个使用单独的MCU去控制ESP8266提供便利。

TCP/IP指令一览表

指令

实际响应

Actual Response

AT+CIPSTATUS

查询网络连接信息

AT+CIPDOMAIN

域名解析功能

AT+CIPDNS

自定义DNS服务器

AT+CIPSTAMAC

设置ESP32 Station的MAC地址

AT+CIPAPMAC

设置ESP32 SoftAP的MAC地址

AT+CIPSTA

设置ESP32 Station的IP地址

AT+CIPAP

设置ESP32 SoftAP的IP地址

AT+CIPSTART

建立TCP连接,UDP传输或者SSL连接

AT+CIPSEND

发送数据

AT+CIPSENDEX

发送数据,达到设置长度,或者遇到字符\0,则发送数据

AT+CIPCLOSE

关闭TCP/UDP/SSL传输

AT+CIFSR

查询本地IP地址

AT+CIPMUX

设置多连接模式

AT+CIPSERVER

设置TCP服务器

AT+CIPSERVERMAXCONN

设置TCP服务器允许的最大连接数

AT+CIPMODE

设置透传模式

AT+SAVETRANSLINK

保存透传连接到Flash

AT+CIPSTO

设置ESP32作为TCP服务器的超时时间

AT+CIUPDATE

通过Wi-Fi升级软件

AT+CIPSNTPCFG

设置时域和SNTP服务器

AT+PING

Ping功能

AT指令如何使用见下一篇文章。

3.4    微信小程序

3.4.1         介绍

什么是微信小程序:小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用,也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题,应用将无处不在,随时可用,但又无须安装卸载。

——张小龙

3.4.2         相比于Android、IOS、PC的APP的优势

-                  跨平台(对于IOS和Android两个平台只需要开发一套程序);

-                  具备缓存能力;

-                  上手容易,开发逻辑较为简单;

-                  开发环境很干净,无需安装任何除开发工具外的其他软件。

-                  发布和部署流程非常简单,几乎是“傻瓜式”,点击几下就可以将应用发布到腾讯云;

-                  小程序之所以在公布后引起了互联网圈儿和开发者们极高的关注度,原因并不在技术上,无数开发者、创业者看中的是微信天然的关系链与获客能力,这也是小程序最大的优势;

更多关于微信小程序的优缺点和其他知识点,可以查阅《微信小程序开发入门与实践》等其他书籍。

物联网系列之WIFI模块ESP8266一介绍

3.4.3         在实践项目中,微信小程序的作用

3.4.3.1     使用AirKiss给ESP8266配网

AirKiss是微信硬件平台提供的一种WiFi设备快速入网配置技术,要使用微信客户端的方式配置设备入网,需要设备支持AirKiss技术。

AirKiss主要在如下场景中使用:

  1. 待接入互联网的设备不具备输入输出能力,如空调、空气净化器、烟雾报警器等;

物联网系列之WIFI模块ESP8266一介绍

在此,我们暂时使用安信可小程序给ESP8266配网,配网界面如下:

物联网系列之WIFI模块ESP8266一介绍

手机连接WiFi后,在Wi-Fi密码处填写密码,然后点击连接即可。进入AirKiss smartconfig模式的Wifi模块在接收到小程序通过局域网发送的UDP报文后自动解析,并使用接收到的SSID和密码尝试连接WiFi。具体步骤见后续文章。

3.4.3.2     小程序在WIFI局域网内与硬件设备通信

在微信官方文档小程序中提供了网络接口,选取UDP作为微信小程序与硬件设备通信的通信协议。

https://developers.weixin.qq.com/miniprogram/dev/api/network/udp/wx.createUDPSocket.html

3.5     测试

使用STM32F407+ESP8266进行前期功能验证,实现STM32F407通过AT指令控制ESP8266与网络助手通信。大致流程如下:

物联网系列之WIFI模块ESP8266一介绍

物联网系列之WIFI模块ESP8266一介绍

4      优化

4.1     成本优化

将程序都集成在一块ESP8266MCU上,本身ESP8266是一个32bit的微处理器,具备运算和控制能力,也提供编译开发环境和刷写工具,所以可以将所有控制逻辑在官方提供的编译开发环境中实现,并将烧录文件下载到ESP8266微控制器中,这样可以节省一块STM32F0系列的芯片,以及周边附属的电阻、电容、晶振等元器件,可以节省3到4元的成本。

4.2     功能优化

最终产品实现的功能是控制空调的开关,可以增加更多的功能,如升降温、设置空调模式这些几乎所有空调都具备的功能。

在这个还没被标准化的海洋里肆意的遨游。以实现功能和低成本在细分领域里觅食。