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

物联网从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主要在如下场景中使用:

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

在此,我们暂时使用安信可小程序给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     功能优化

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

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

内容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.3ESP82663.3.1特点3.3.2ESP...
随着互联网的日益发展,智能家居的观念也逐渐深入人心。想要玩转智能家居,就离不开互联网,今天给大家 介绍 一款模块—— ESP8266 。小编将手把手教大家利用8266实现家电的控制。 ESP8266 可以用来做串口透传,PWM 调控,远程控制开关:控制插座、开关、电器等。该模块有三种工作模式,大家可以根据自己的具体情况来选择: STA 模式: ESP8266 模块通过路由器连接互联网,手机或电脑通过互联网...
一、 ESP8266 WIFI模块 介绍 ESP8266 是曾经缔造了以低成本引爆 物联网 是换成那个的佳话, ESP8266 模块是单核32位mcu wifi 芯片为主。其特点是拥有高性能无线soc,是一个完整且自成体系的 wifi 网络方案,能够独立运行,也可以作为slave搭载其他host运行。 二、 ESP8266 的指令 介绍 AT指令可以细分四种类型: 1.测试指令:AT+=? 该命令用于查询设置指令的参数以及取值的范围 2.查询指令:AT+? 该命令用于返回参数的当前值 3.设置指令:AT+=<’’’>
ESP8266 是一款 wifi 芯片,体积小,功耗低,引脚丰富,blablabla….. 物联网 中,各种普通的电器如何接入网络是一个关键的问题,我自己总共使用过三款 wifi 芯片。 第一款是海凌科的型号为RM04的一款芯片,如下图: 这款芯片使用5V直流电源,提供串口透传功能,有点是相对便宜些,但缺点也明显,功耗大,不稳定,时常有丢包的现象。 第二款是山东有人科技的一款芯片,如下图: 这款芯片使用了3.3
刚买一块 ESP8266 ,琢磨一天才弄明白怎么使用,小白第一次弄这个确实不太友好,这里记录一下,怕以后自己用到又忘了,在 物联网 这一方面 ESP8266 还是特别实用的。 淘宝,拼多多都有, ESP8266 (10元),下载器(19元) 1. ESP8266 2.下载器(用usb转ttl也可以,我被坑了) 3.串口调试助手 4.网络调试助手(PC端) 5.网络调试助手手机端(华为的直接去应用商店里搜NeTorch 网络调试工具,有的话就不用了,看个人喜好,没有的话留下邮箱我发给你) 刚拿到 esp8266
文章目录 ESP8266 模块使用开发方式硬件模块配置环境连接网络简单连接 WIFI 连接 wifi 后作为服务器使用作为热点使用作为客户端与服务器进行通信NodeMCU开发板数字引脚使用做一个网页控制的开关 ESP8266 模块使用 8266片上集成 wifi +MCU,使用的是一个M0的内核,成本很低,因为片上有 wifi 和MCU,所以作为网络终端非常的方便,当然,因为是 wifi ,所以低功耗较高。 说白了, esp8266 也是一个单片机,上电还是得从0地址开始跑,平时我们使用单片机,一般都是使用keil等软件编程,然后下载,
1、 ESP8266 简介(无线通信模块 WIFI模块 ESP8266 系列 模组是安信可(Ai-thinker)公司采用乐鑫 ESP8266 芯片开发的一 系列 wifi 模组模块。 2、 ESP8266 相关功能 1.将客户端发来的数据转发到串口; 2.串口数据转发给所有客户端 3.可连接4个客户端 4.可设置静态IP地址 5.指示灯闪烁表示无客户端连接,灯亮代表有客户端连接 参考文档:https://...
ESP8266 WiFi模块 是一种非常流行的 物联网 设备,它可以通过 WiFi 连接到互联网,并与其他设备进行通信。有许多教程可以帮助您学习如何使用 ESP8266 模块,例如Arduino IDE和MicroPython等开发环境。您可以在网上找到许多教程和示例代码,以帮助您开始使用 ESP8266 。 另外,您可以使用App来控制 ESP8266 模块。有许多应用程序可以帮助您实现这一点,例如Blynk和MQTT Dash等应用程序。这些应用程序可以让您通过手机或平板电脑控制 ESP8266 模块,并监视其状态。您可以在应用商店中找到这些应用程序,并按照说明进行设置和使用。
Yihuabanchen: hello作者,请教一个问题,我看test failed(bit0),由1→0的条件除了OEM特殊reset和清除故障外,主要为test passed, 但是在你提供的图例中,上下电或者在test result为no result时,test failed的状态为就能从1→0,这对吗? AUTOSAR之DEM(四)——Event Memory zzzzzzffff: great!!! AUTOSAR之DEM(四)——Event Memory zhxadd: