APP下载

一种基于ESP-WROOM的物联网综合课程设计套件的设计与实现

2024-09-14王鹏步园明冯伟

电脑知识与技术 2024年23期

摘要:针对传统的物联网专业实验设备不能很好地适用于物联网综合课程设计等综合实践类课程的问题,设计并实现了一种基于ESP-WROOM的物联网综合课程设计套件,介绍了套件的设计思路、硬件设计、软件设计。套件包括核心板、功能板、创意板,板间采用电子积木的连接方式,保证了灵活性、开放性;套件涵盖了从硬件到云平台的物联网各方面知识,可以锻炼学生方案设计、器件选型、电路设计、电路焊接、程序编写等各方面能力;套件成本低廉,可以大面积推广。

关键词:ESP-WROOM;物联网;综合课程设计;电子积木;MicroPython

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2024)23-0010-04

开放科学(资源服务)标识码(OSID)

0 引言

随着科技的发展及互联网+、智能制造2025、工业4.0等概念的提出[1],企业对高校毕业生的专业技能要求越来越高,进而对高校培养方式的要求也提到了一个新的高度[2-4]。基于此原因,很多高校都设立了短学期,并开设了综合课程设计、创新创意课程、创新大作业等综合实践类课程,目是锻炼学生的实践动手能力、培养学生的创新思维,以满足企业的要求。

为加强物联网工程专业的综合实践教学环节,无锡职业技术学院利用物联网工程专业大三上学期末的小学期开设了物联网综合课程设计课程。在课程实施过程中,传统的专业课实验箱或实验平台因为设计目的不同,往往不能直接用于课程,极大地影响了课程的开设效果。例如,价格昂贵、数量有限,无法做到人手一套,不利于课程展开;集成度太高、资源开放度有限,无法进行二次开发,限制了学生思路的实现[1];专业侧重性太强、偏重某一方向,无法覆盖所有知识点;技术落伍,与实际应用脱节[5-6]。

针对上述问题,论文设计了一种物联网综合课程设计套件,它融合了多门物联网专业课程的知识,以实际物联网应用中常用的ESP-WROOM为硬件核心,可以编程采集传感器数据,并将数据通过Wi-Fi上传至开放物联网云平台;可以通过Web页面或手机App浏览数据、反向控制。

1 设计思路与系统方案

整个套件的设计思路如下:

1) 遵循“复杂始于简单,创新源于基础”的原则。套件立足于基础知识,将创意的空间留给学生完成。

2) 保证系统的开放性、可扩展性。套件采用电子积木的连接方式,分为核心板、功能板、创意板,方便学生根据自己思路进行扩展。

3) 软硬结合、全面兼顾。套件尽可能将各门相关课程打通,课程设置时从方案设计、器件选型、电路绘制、电路焊接、程序编写各方面均布置任务,全面锻炼学生动手实践能力。

4) 成本低廉,学生人手一套,保证了课程教学效果。

基于上述设计思路,整个套件系统可以分为硬件、云端、客户端,系统示意图如图1。

套件的硬件分为核心板、功能板、创意板,板间采用可灵活搭配的电子积木式连接方式。为了更真实地贴近实用,核心板采用智能家电、智能硬件领域广泛应用的可编程Wi-Fi模组ESP-WROOM作为主控模块。功能板分为显示功能板、控制功能板,分别完成套件的显示和控制功能。创意板是为培养学生的自主创新思维而设计的可以扩展不同传感器的电路板。

云端采用中移物联网的免费开放云平台OneNet。客户端分为Web浏览器端和手机App端。通过客户端可以查看硬件使用Wi-Fi上传至云端的传感器数据,也可以反向控制硬件动作。

物联网综合课程设计基于此套件采用项目化教学[6],教师布置预设的题目,题目主要为采集各种传感器数据上传至云平台。学生自由选题并根据选题的要求自行设计方案、绘制原理图、焊接电路板、编写程序。课程进行过程中,教师将主动权交给学生,只需在各环节给予适当指导即可。学生也可根据自己的创意自主设计功能板,只要接口与其他硬件板相同即可,保证了套件的开放性。

2 系统硬件的设计

套件的硬件各板采用可拔插的电子积木式连接方式,每个板都设计有2排统一数目的标准2.54 mm间距的插接件接口,选用8脚的加长排母即可实现板和板的任意组合,保证了套件的可扩展性。套件上较小的贴片元器件预先加工好,较大的器件和插接件则留给学生焊接,可以锻炼学生的动手能力。

2.1 核心板的设计

核心板是整个套件的主控部分,其主要器件为ESP-WROOM模组。它集程序下载、程序运行、Wi-Fi通信于一体。

ESP-WROOM模组是基于ESP8266EX芯片设计开发的可编程物联网无线模组,它集成了TCP/IP 网络协议栈、32位低功耗MCU、10位精度ADC,并带有HSPI、UART、PWM、I2C和I2S等接口[7-9]。它支持的编程语言有Arduino、MicroPython,目前的最新型号是ESP-WROOM-02。ESP-WROOM模组的最小系统如图2所示。

核心板集成了程序下载功能,无需专用仿真器即可将编译好的程序烧写进ESP-WROOM中运行。程序下载部分的电路图如图3所示。电路的主芯片为CH340C,它是一款常用的国产USB转TTL芯片。USB1为USB接口,它为整个套件提供电源和程序烧写接口。U2为低压差LDO,它提供套件所需的直流3.3V电源。使用这个电路,可以通过计算机上的编程IDE将编译好的程序进行一键下载,非常方便。

2.2 显示功能板的设计

显示功能板用于本地显示传感器的数据,它主要由按键和数码管驱动芯片TM1650控制,最多可以同时驱动28个按键和4位8段共阴极数码管。它和核心板的通信接口为IIC。在显示功能板上设置了4个按键,可以实现简单的参数设置。原理图如图4所示。

2.3 控制功能板的设计

控制功能板用来实现简单的本地控制或者由云平台远程控制。它的主要电路是一个继电器控制电路。如图5所示,K1为电磁继电器;Q3为NPN三极管,用于驱动继电器;D1为续流二极管,可以保护继电器线圈。

2.4 创意板的设计

核心板、显示功能板、控制功能板上较小的贴片器件均为预先SMT加工完成,学生使用时,只需手动焊接较大的元器件和插接件。这种方式可以胜任培养学生动手实践能力,但是在培养学生自主创新意识方面发挥的作用有限。

为了弥补这个缺陷,我们特意设计了一个创意板。它是一块与套件的其他电路板尺寸相同、接口相同的2.54 mm洞洞板,上面不具有任何器件和电路,主要用于扩展各种传感器。课程实施时,此板的器件选型、电路设计、电路焊接全部都由学生自主完成,可以更加全面地培养学生的能力。

3 系统软件的设计

系统软件设计涉及两部分:硬件端软件和云端软件。

3.1 硬件端软件设计

硬件端软件设计基于核心板上的ESP-WROOM模块实现。它支持2种编程语言,一种是Arduino,另一种是MicroPython。采用何种语言由学生自主选择。不论采用哪种编程语言,软件的核心部分是硬件与OneNET云平台之间数据传输协议的实现。

Arduino融合了C及C++,基础是C语言,有专用的Arduino IDE,可以在其官网下载。目前Arduino已经成为一款在全球影响力巨大的开源软硬件平台[10-11]。Arduino语言的数据传输协议实现代码如下:

String postdata = String("")+"{\"Temperature\":"+TEM+"}";

String url = "/devices/29417548/datapoints?type=3";

String host ="http://api.heclouds.com";

client.connect(host, httpPort) ;

client.print(String("POST")+ url + "HTTP/1.1\r\n"+

"api-key:aHQcpQ=v70PglKLwM1h8FPhQ6fw=\r\n"+

"Host:" + host + "\r\n" +

"Content-Length:"+postdata.length()+"\r\n"+

postdata+"\r\n");

代码作用是将套件采集到的温度传感器数据通过HTTP协议以POST请求方法、JSON格式上传至OneNET云平台。其中“Temperature”是需要在云平台上定义的数据流名称;“url”中的“29417548”是云平台上定义的设备ID;“api-key”是云平台上定义的设备API-KEY值。数据流、设备ID、API-KEY是上传数据至OneNET云平台所必需的三要素。

MicroPython是Python3的精简实现,是运行在嵌入式微控制器上的Pyhton版本,它是剑桥大学数学中心的Damien p. George开发的[12-13]。在课程实施时,它给了学生除C语言之外的另一个选择。它的开发无需专用IDE,只需要将程序文件保存为.py格式,下载至核心板中即可运行。基于MicroPython语言的数据传输协议实现代码为:

import urequests

import network

import json

DEVICE_ID='29417548'

API_Key='aHQcpQ=v70PglKLwM1h8FPhQ6fw='

……

def http_put_data(data):

apiurl = 'http://api.heclouds.com/devices/'+DEVICE_ID+'/datapoints'

apiheaders = {'api-key':API_Key}

datas = {'datastreams': [{"id": "Temperature", "datapoints": [{"value": data}]}]}

jdata = json.dumps(datas)

r = urequests.post(apiurl,data=jdata,headers=apiheaders)

return r

代码的作用同样是将套件采集的温度数据通过HTTP协议以POST方法、JSON数据格式上传至云平台。DEVICE_ID、API_Key、Temperature是云平台所定义的三要素。

3.2 云平台端软件设计

OneNET是中移物联网有限公司的免费开放物联网云平台,它支持常见的多种物联网通信协议,可以降低设备上云难度[14]。将OneNET云平台引入课程,可以降低课程难度,减少课程投入。

OneNET云平台采用图形化拖拽式编程,通过拖动系统提供的图形控件可以很快地编辑出Web页面,将控件与云平台三要素之一的数据流绑定后即可在Web页面上看到套件上传的传感器数据。手机App可以直接在OneNET主页下载登录账号即可查看数据。

4 应用效果

套件以极低的成本、最简单的方式,使学生全面了解了物联网的相关知识及实现方式,尽可能全面地培养了学生各方面的能力。目前套件已经连续多年成功应用于我院物联网工程专业的综合课程设计并取得了很好的教学效果。套件还在我院的其他课程、各类大学生创新创业竞赛、各级大创项目中得到了应用。套件实物图如图6所示,云平台的界面如图7所示。

5 结束语

基于ESP-WROOM的物联网综合课程设计套件解决了传统专业物联网实验设备无法适用于物联网综合课程设计等综合实践类课程的问题。它选用了目前智能家居、智能硬件中广泛应用的ESP-WROOM为主控模块,采用了电子积木的连接方式,实用性、扩展性得到了保证;它覆盖了从硬件到云平台的物联网各方面知识,锻炼了学生方案设计、器件选型、电路设计、电路焊接、程序编写等各方面的能力;它成本低廉,可以保证每生一套,可以大面积推广。

参考文献:

[1] 朱向庆,何昌毅,朱万鸿,等.基于STM32单片机的通信技术实验系统设计[J].实验技术与管理,2019,36(8):81-84.

[2] 吕淑平,王冲.自动避障实验小车教学系统设计[J].实验室研究与探索,2019,38(8):204-208.

[3] 张红英,庄君明,刘璐,等.设计思维指导下的创新型课程设计研究[J].现代教育技术,2019,29(10):100-107.

[4] 魏建军,刘乃安,李晓辉,等.虚实一体无线通信综合实验系统[J].实验技术与管理,2019,36(11):68-70,93.

[5] 苏海涛,胡鸿志,徐翠锋,等.新工科人才培养下DSP课程教学改革设计[J].实验技术与管理,2019,36(9):222-225.

[6] 余萍,韩东升,李然,等.案例式“通信电子电路” 模块化实验方案设计与实践[J].实验技术与管理,2019,36(12):174-177.

[7] 高军,王仲逸,汪砚铖,等.基于Wi-Fi嗅探技术的实验室管理系统设计[J].实验技术与管理,2019,36(2):165-167.

[8] 亓相涛,马凯凯,王卫国.基于ESP8266的智能灯光控制系统硬件设计[J].物联网技术,2024,14(1):90-92,97.

[9] 胡浩鸣,张胜利,赵思,等.基于ESP8266的地窖环境监测系统设计[J].现代信息科技,2023,7(22):150-155.

[10] 刘文杰,朱明,覃振权.基于Arduino的物联网温控实验设计[J].实验技术与管理,2017,34(1):150-152.

[11] 胡代弟.基于Arduino套件的传感器原理课程教学改革探索[J].电子测试,2019(21):138-140.

[12] 史蓓蕾,余恒.基于MicroPython的微机原理与接口技术实验教学改革研究[J].电脑知识与技术,2023,19(18):147-149.

[13] 董俊杰,彭亚斌.MicroPython软件开发平台的ESP32-C3通信性能测试[J].单片机与嵌入式系统应用,2023,23(2):57-60,65.

[14] 中移物联网有限公司.公开协议产品指南[EB/OL].[2017]. https://open.iot.10086.cn/doc/art246.html#68.

【通联编辑:王 力】