物联网系列之WIFI模块ESP8266一介绍
内容
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 什么是物联网
下面这段定义摘自百度百科:
物联网(The Internet of Things,简称IOT)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、无语人的泛在连接,实现对物品和过程的智能化感知、识别和管理。物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够独立寻址的普通物理对象形成互联互通的网络。
3.1.2 挑战与机遇
3.1.2.1 技术标准的统一与协调
目前,传统互联网的标准不适合物联网。物联网感知层的数据多源异构,不同的设备与不同的接口,不同的技术标准;网络层、应用层也由于使用的网络类型不同、行业的应用方向不同而存在不同的网络协议和体系结构。建立的统一的物联网体系架构,统一的技术标准是物联网现在正在面对的难题。
上面这段话摘自百度百科,从中不难看出,物联网行业并没有出现大统一的标准,相比于汽车行业,有更多的发展空间和活动空间,没有太多的各种标准限制。
一段关于行业生命周期分析的文字:
行业生命周期分为四个阶段:①形成期;②成长期;③成熟期;④衰退期;
(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协议栈。用户可以使用该系列模块为现有的设备添加联网功能,也可以构建独立的网络控制器。
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网络,用户只需要在手机上进行简单操作即可实现智能配置。这个过程如下图所示:
由于设备在一开始并未连接至网路,手机端 App 无法直接向设备发送信息。通过通过smartconfig通信协议,具备WiFi网络接入能力的设备(例如智能手机)就可以向接入点(AP)发送一系列UDP包,其中每一包的长度(即Length字段)都按照smartconfig通信协议进行编码,SSID和密码就包含在Length字段中,随后设备便可以获得并解析出所需的信息。数据包结构如下图所示:
更多详细的内容可以到乐鑫官网查找:
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两个平台只需要开发一套程序);
- 具备缓存能力;
- 上手容易,开发逻辑较为简单;
- 开发环境很干净,无需安装任何除开发工具外的其他软件。
- 发布和部署流程非常简单,几乎是“傻瓜式”,点击几下就可以将应用发布到腾讯云;
- 小程序之所以在公布后引起了互联网圈儿和开发者们极高的关注度,原因并不在技术上,无数开发者、创业者看中的是微信天然的关系链与获客能力,这也是小程序最大的优势;
更多关于微信小程序的优缺点和其他知识点,可以查阅《微信小程序开发入门与实践》等其他书籍。
3.4.3 在实践项目中,微信小程序的作用
3.4.3.1 使用AirKiss给ESP8266配网
AirKiss是微信硬件平台提供的一种WiFi设备快速入网配置技术,要使用微信客户端的方式配置设备入网,需要设备支持AirKiss技术。
AirKiss主要在如下场景中使用:
待接入互联网的设备不具备输入输出能力,如空调、空气净化器、烟雾报警器等;
在此,我们暂时使用安信可小程序给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与网络助手通信。大致流程如下:
4 优化
4.1 成本优化
将程序都集成在一块ESP8266MCU上,本身ESP8266是一个32bit的微处理器,具备运算和控制能力,也提供编译开发环境和刷写工具,所以可以将所有控制逻辑在官方提供的编译开发环境中实现,并将烧录文件下载到ESP8266微控制器中,这样可以节省一块STM32F0系列的芯片,以及周边附属的电阻、电容、晶振等元器件,可以节省3到4元的成本。
4.2 功能优化
最终产品实现的功能是控制空调的开关,可以增加更多的功能,如升降温、设置空调模式这些几乎所有空调都具备的功能。
在这个还没被标准化的海洋里肆意的遨游。以实现功能和低成本在细分领域里觅食。
物联网系列之WIFI模块ESP8266一介绍相关推荐
- 物联网无线串口WiFi模块,智能生活无线应用,无线WiFi模组技术
随着5G商用步伐的加快,各个行业领域的物联网应用也呈现几何式增长.在成本可控的前提下,目前市场中主流的物联网无线模块还是以串口WiFi模块.串口蓝牙模块为主. 串口WiFi模块是基于UART接口的符合 ...
- WIFI模块选型的介绍
WIFI模块选型的介绍 随着WiFi技术的不断发展,各种封装尺寸的WiFi模块已经出现在我们日常生活中的电子产品上.至今各类应用WiFi模块的产品,主流的WiFi模块可分为WiFi4,WiFi5,Wi ...
- 什么是网关模块 工业物联网以太网网关WiFi模块的选型
在智能科技发展的时代,物联网产品在市场上也是满目琳琅,呈现出万物互联的景象,也给人们生活带来了便利.物联网由多种协议发挥各自优势共同构成.但是要实现网络连接,我们不得不提到的网关.为了方便研发生产,厂 ...
- 15单片机通过WIFI模块ESP8266实现手机远程监控可燃气体浓度
15单片机通过WIFI模块ESP8266实现手机远程监控可燃气体浓度 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 一,系统方案 1.方案描 ...
- 【上位机与下位机通信】使用WIFI模块ESP8266连接单片机与上位机通信
文章目录 前言 一.ESP8266模块与STM32连接 二.单片机代码 三.总结 前言 承接上文WIFI上位机部分:[上位机]通过WIFI上位机与网络调试助手通信绘制曲线,现阶段实现了STM32单片机 ...
- wifi模块esp8266的使用
引用自:[常用模块]ESP8266 WIFI串口通信模块使用详解(实例:附STM32详细代码)_Yngz_Miao的博客-CSDN博客_esp8266wifi.h 详解 现在市面上使用比较的ESP82 ...
- 1.WiFi模块ESP8266模块的使用(针对初学者)
虽然esp8266有很多种,但是对于我们初学者来说,只需要有RXD,TXD,VCC,GND四个引脚,简单入门足够了 1. 引脚说明: VCC连接正极(有些是3.3V,有些是5V,我的这个是5V),GN ...
- 【毕设调试一】WiFi模块esp8266的调试
硬件说明: 提示 :主控芯片STM32F103C8T6,与WiFi通信串口为串口二,打印串口为串口三(不使用串口一是当时设计时,方便pcb走线) 说明 :因为我是使用PCB画板的方式来走线的,并不是按 ...
- WIFI模块——ESP8266
1.ESP8266简介 ESP8266是一款高性能的WIFI串口模块,内部集成MCU能实现单片机之间串口通信,是目前使用最广泛的一种WIFI模块之一.可以简单理解为一个WIFI转串口的设备,不用知道太 ...
最新文章
- Spring Cloud Zuul网关 Filter、熔断、重试、高可用的使用方式
- 程序怎么跑着 就卡死,句柄泄漏,内存泄漏了
- curl命令java_上curl java 模拟http请求
- Vjios P1736 铺地毯【暴力,思维】
- csdn的blog后台程序的导航菜单的实现
- 同步与异步阻塞与非阻塞
- 当我们在谈论单测时我们在谈论什么
- 【机器人】关键问题:动捕原点坐标系到机械臂基坐标系的转换
- linux: 空指令(:)
- Hadoop大数据原理与应用实验教程
- CPU监控工具(CPU使用率及CPU温度监控)
- 机器狗病毒样本(穿透冰和点还原卡)
- Ubuntu安装USB无线网卡驱动
- 2.8数据-paddlepaddle数据集uci_housing
- win10网络诊断为DNS服务器未响应,Win10系统下电脑无法连接网络诊断提示DNS服务器未响应解决方法...
- iPhone麦田守望者》
- java 判断图片格式_Java判断上传图片格式的实例代码
- 双向链表(Doubly Linked List)
- SPP中Supersession与Item Sourcing Rule的关系
- 解决下载软件老是附带流氓软件的下载问题
热门文章
- 英伟达RTX 4070最新测评来了!光追效果更棒,但仅限于2k游戏
- 敬业签云便签提示“基础连接已关闭,发送时发生错误!”如何解决
- windows2012r2文件服务器部署,Windows server 2012部署和配置群集文件服务器
- 【脑洞大开】《西潮》及《走向世界丛书》
- Excel 下拉多选的设置
- 差异化地推手段,让营销效果翻十倍!
- vue 找回密码_找回密码的功能设计
- (已解决)微信小程序调查问卷所有题放在一个页面上
- 软考初级信息处理技术员基础知识考点(建议收藏)
- 如何扩展计算机c盘的控件,win7电脑怎么增加c盘空间 电脑增加c盘空间操作方法...