基于ESP8226的物联网实验箱设计
2020-08-06石宜金谭贵生王勇刚
石宜金 谭贵生 王勇刚
摘 要:采用ESP8226芯片设计一款物联网简易实验箱,并将实验箱应用到本科的物联网和电子专业实践教学中,让学生能够学习到电路设计、硬件驱动编程和上层APP编程,熟悉物联网系统开发.学生可以在这个物联网开发板上设计创新实验,制作物联网作品.
关键词:实验箱;物联网;ESP8226
[中图分类号]G642 [文献标志码]A
Abstract:The ESP8226 chip is used to design a simple experiment box for the Internet of Things,and the experiment box is applied to the practical teaching of the Internet of Things and electronics specialty of the undergraduate, so that students can learn circuit design,hardware-driven programming and upper-level APP programming,and are familiar with the Internet of Things system Development,students can design innovative experiments and make IoT works on this IoT development board.
Key words:experiment box;Internet of things;ESP8226
物联网系统[1]、智能家居系统随着5G时代的到来有了飞跃发展[2],给高校的教学尤其是实践教学带来了更多的机遇.笔者结合云南大学旅游文化学院物联网工程专业和电子信息工程专业的专业实践,设计一款简易物联网实验箱,并将实验箱应用到本科的物联网和电子专业实践教学中.
1 硬件设计
系统的整体硬件功能包括声光模块、温度湿度模块、无线通信模块、串口通信模块等.板载有LED灯、蜂鸣器、外接电源等.硬件核心板主要采用ESP8226控制,主要搭载7个GPIO接口,模拟输入输出,IIC总线接口和串口UART.所有的引腳都支持中断、PWM输出、单总线和I2C.核心板的电路制作采用Altium Designer16(简称AD16)完成.[3-4]
制作简洁的物联网最小系统板,其他外接模块可以轻松扩展和互联.网络组网采用WIFI进行连接.电路图见图1,为ASM117恒流源电路.设计J1-J14接口,主要包括GPIO接口、串口、板载蜂鸣器和LED等,接上ESP8226模块便可以进行组网,对外围电路进行控制.核心板主要起到控制和组网的功能,为了能够让板子具有丰富的外围设备,让核心板能够对外围进行控制,需要设计一些外围电路来进行控制,包括典型的蜂鸣器控制、温度湿度模块、声光控制模块等,这些外围设备可以由学生自行焊接,也可以购买分立元件进行组装,完成核心板外围的设计制作后,便可以进行上层上位机的软件开发.
2 软件设计
上位机软件开发是实现物联网智能连接的重要手段,采用手机APP进行控制.
空调控制模块 该模块采用外围电路,自行焊接.设计完成后书写驱动,通过触发手机终端界面的空调开关信号.开发板由GPIO接口向电机驱动电路输入高电平脉冲信号,驱动电机转动;再次触发输入低电平脉冲信号,则电机停止转动.
温度和湿度模块 由DHT11温度传感器模块实现,外部接收到温度信息后转换为二进制代码,再通过GPIO端口传入主控芯片,经代码处理,最终在手机界面上实时显示.
ESP8266串口WiFi模块 硬件系统和上层APP连接的关键硬件,是一款串口转无线模块,使用操作简易,内部带有固件,不需要编写时序信号,内置低功耗32位CPU,可以当作应用处理器使用.ESP8266Wi-Fi模块、USB接口、外接引脚组成尺寸为49 mm×24.5mm×13 mm一块较小的开发板.外置15个 2 mm×2.54 mm针接头,可以访问SPI,ADC, GPIO,UART和电源引脚.USB接口可用于连接电源、调试以及编程.
实验箱的设计基于ESP8266系统芯片扩展设计,ESP8266wifi模块与nodemcu 板兼容.可以在Mixly进行编程,通过micro USB线连接就可以进行程序烧写.部分引脚具有PWM功能,在手机App上配置引脚功能即可使用,通过热点可直接连接到移动端,获取信号或上传数据.
3 空调和温湿度模块控制设计
设计思路 使用移动手机应用程序(Blynk)由WIFI向开发板发送信号,驱动外围硬件电路或是硬件接收信号,控制芯片处理后手机上接收并在APP上显示.通过使用移动手机应用程序(Blynk)由WIFI向实验箱发送信号,驱动外围硬件电路.空调控制模块程序大致分为两部分,WIFI设备连接的信息配置和接受传感器温度,采用图形化编程和代码编程两种编程方式,包括配置、驱动实现和上传三个步骤.
用户配置代码 设置WIFI名为移动端热点名和热点密码,添加Blynk手机应用程序端授权码.连接WIFI授权关键代码为:
#define BLYNK_PRINT Serial
#include
#include
char auth[] = "DKFdYnRMX8nBiJfQjS4SshTbbyqyJF2Z";
char ssid[] = "syj";
char pass[] = "shiyijin";
void setup(){
Serial.begin(9600);
Blynk.begin(auth,ssid,pass,"blynk-cloud.com",8080);
}
接收温湿度代码 温湿度接收需调用DHT11传感器的接收函数,部分关键代码为:
∥author syj
#include
#include
#include
BlynkTimer timer;
U8G2_SSD13606_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,SCL,SDA,U8X8_PIN_NONE);
DTH dth2(2,11);
void mtTimerEvent2(){
Blynk.virtualErite(V0.dth2,readTemperature());
Blynk.virtualErite(V1.dth2,readHumidity());}
void page1(){
u8g2.setFont(u8g2_font_timR08_tr);
u8g2.setFontPosTop();
u8g2.setCursor(0,20);
u8g2.print("溫度");
u8g2.setCursor(60,20);
u8g2.print(dth2.readTemperature());}
移动端配置 开启手机热点,设置WLAN热点信息.设置网络名称和密码,在空调控制模块添加PWM滑块挂件、温湿度值显示挂件、温度图表显示挂件,相对应的硬件引脚为GP13(端口号D7),温湿度度值显示与温度图表供用虚拟引脚V0,V1/GP2(端口号D4).
程序烧写 使用microUSB连接线将CP2102开发板与PC机连接,在PC中打开Mixly,点击上传进行程序烧写.
硬件焊接和硬件调试 使用杜邦线将外接电路与实验箱相对应得端口连接,开发板连接外围电路USB插口(供电).开启手机热点,并与开发板连接.成功连接后,打开APP点选模块运行控件,实现智能控制.控制空调模块功能,滑动PWM滑块电机转动,转速与滑块相对应.
结语
采用ESP8226芯片设计一款物联网简易实验箱,并将实验箱应用到本科的物联网和电子专业实践教学中,让学生能够学习到电路设计、硬件驱动编程和上层APP编程,熟悉物联网系统开发,学生可以在这个物联网开发板上设计创新实验,制作物联网作品.
参考文献
[1]吕廷杰.物联网的由来与发展趋势[J].信息通信技术,2010:4-8.
[2]朱敏玲,李宁.智能家居发展现状及未来浅析[J]电视技术,2015,39(4):82-96.
[3]张秋波.基于Android手机和WiFi的网络定时开关的设计与实现[D].及吉林:吉林大学,2015.
[4]冯川放.基于zigBee模块设计的嵌入式系统教学开发平台的研究[J].牡丹江师范学院学报:自然科学版,2013(3):17-19.
[5]张小红.基于 Android 的无线智能家居系统设计与研究[D]成都:电子科技大学,2016.
[6]华清远见嵌入式培训中心.嵌入式 Linux 应用程序开发标准教程[M].北京:人民邮电出版社,2009:22-48.
[7]王田苗.嵌入式系统设计与实例开发—基于 ARM 微处理器与 uC/OS-II 实时操作系统[M].北京:清华大学出版社,2002:72-80.
[8]韦东山.嵌入式 Linux 应用开发完全手册[M].北京:人民邮电出版社,2008:204-13.
[9]倪天龙.单总线传感器DHT11在温湿度测控中的应用[J]单片机与嵌入式系统应用,2010(6):40-62.
[10]王雪艳.单片机系统接入Internet设计中Embedded Web Server的实现[J].牡丹江师范学院学报:自然科学版,2006(2):13-14.
编辑:吴楠