第一:【实验目的】
- 通过esp8266模块,单片机工作环境中所用到的任何传感器信息,如温湿度、光照强度、土壤湿度、水温等,过wifi上传到服务器。而且我们只需要登录服务器,我们就可以在家里或其他地方观察信息,实现单片机数据的上报。
- 通过esp8266模块,单片机能接收到我们在云端发送的数据,实现对单片机的远程控制功能。
第二:【实验原理】
外观尺寸
- 管脚定义
图二
- 应用电路
图三
- 通信原理
4.1建立wifi
ESP8266 WIFI 模块工作于SoftAP+Station 模式即建立了一个 WiFi 热点并建立一个TCP SEVER,IP 地址为:192.168.4.1,端口:5000。
安卓手机连接到 ESP8266 的热点后,通过网络调试软件,建立一个 TCP CLIENT与 ESP8266 的 TCP SEVER 进行通信。
注:简单的说TCP 协议的通信过程至少需要建立一个 TCP SEVER(TCP 服务器),然后 TCP CLIENT(TCP 客户端)与 TCP SEVER 建立连接后,即可进行数据通信。
4.2连接wifi(本实验重点)
ESP8266 WIFI 模块工作于Station 模式,在此模式下, 模块相当于一个客户端, 可以链接到其他路由器发出的 WIFI 信号。
常用指令:
1.查询指令:AT+CWMODE_CUR? 查询 ESP8266 当前 Wi-Fi 模式。
2. 设置指令:AT+CWJAP_CUR=,,[][,] 设置 ESP8266 Station 需连接的 AP
- 【实验步骤】
1.按图完成esp8266模块与单片机的接线
2.完成相应的固件烧录
2.1 固件下载
用浏览器打开安信可公司提供的AT固件汇总(下载需要的AT固件)
链接:AT固件汇总 | 安信可科技
烧录工具
用浏览器打开安信可公司提供的开发工具清单(下载烧录WIFI固件工具)
链接:开发工具清单 | 安信可科技
固件烧录
硬件连接成下载模式(接线方式见图二)
固件准备
下载、解压并执行 ESPFlashDownloadTool_vx.xx.xx.exe,将弹出如下界面。黑窗可以查看烧录过程的一些信息,另一个为登录界面,用来选择相应芯片的下载界面。
- 烧录
加入自己下载的固件,点击“START”按钮开始烧录:等待烧录完成。
固件烧写软件配置参数说明如下:
固件烧录完成,将接线接回运行模式
完成云平台的创建
创建产品
使用物联网平台的第一步:在控制台创建产品。产品是设备的集合,通常是一组具有相同功能定义的设备集合。例如:产品指同一个型号的产品,设备就是该型号下的某个设备。
步骤一:登录物联网平台设备
用浏览器打开阿里云首页:链接https://iot.console.aliyun.com/lk/summary/new
并点击右上方控制台。打开网页。
登录,使用自己淘宝账号登录即可
开通物联网平台并点击进去,如图3.1所示:
图3.1 开通物联网平台
步骤一:在左侧导航栏,选择设备管理 > 产品,单击创建产品。
步骤二:根据页面提示填写产品信息(如图3.2所示),然后单击保存。
图3.2 填写相关信息
页面参数设置如表3.1所示:
表3.1页面参数设置说明:
参数 |
描述 |
产品名称 |
为产品命名。产品名称在账号内具有唯一性。例如,可以填写为产品型号。支持中文、英文字母、数字、下划线(_)、连接号(-)、@符号和英文圆括号,长度限制4~30,一个中文汉字算2位。 |
产品创建成功后,页面自动跳转回产品列表页面。
产品物理模型自定义(功能定义)
物模型指将物理空间中的实体数字化,并在云端构建该实体的数据模型。在物联网平台中,定义物模型即定义产品功能。完成功能定义后,系统将自动生成该产品的物模型。物模型描述产品是什么,能做什么,可以对外提供哪些服务。
物模型,简称TSL,即Thing Specification Language。是一个JSON格式的文件。它是物理空间中的实体,如传感器、车载装置、楼宇、工厂等在云端的数字化表示,从属性、服务和事件三个维度,分别描述了该实体是什么,能做什么,可以对外提供哪些信息。定义了这三个维度,即完成了产品功能的定义。
物模型将产品功能类型分为三类:属性、服务、和事件。定义了这三类功能,即完成了物模型的定义。表3.2是对相关功能类型的说明:
表3.2 功能类型说明
功能类型 |
说明 |
属性(Property) |
一般用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度等。属性支持GET和SET请求方式。应用系统可发起对属性的读取和设置请求。 |
服务(Service) |
设备可被外部调用的能力或方法,可设置输入参数和输出参数。相比于属性,服务可通过一条指令实现更复杂的业务逻辑,如执行某项特定的任务。 |
事件(Event) |
设备运行时的事件。事件一般包含需要被外部感知和处理的通知信息,可包含多个输出参数。如,某项任务完成的信息,或者设备发生故障或告警时的温度等,事件可以被订阅和推送。 |