丰富的线上&线下活动,深入探索云世界
做任务,得社区积分和周边
最真实的开发者用云体验
让每位学生受益于普惠算力
让创作激发创新
资深技术专家手把手带教
遇见技术追梦人
技术交流,直击现场
海量开发者使用工具、手册,免费下载
极速、全面、稳定、安全的开源镜像
开发手册、白皮书、案例集等实战精华
为开发者定制的Chrome浏览器插件
Abstract:Withthepeople'syearningforabetterlife,peoplepaymoreandmoreattentiontotheenvironment,theimpactoftheenvironmentonlifehasbecomeahotissue.ThisdesignusesSTM32asthecontrolanddataprocessingunit.Meanwhile,theAHT10,BH1750,BMP280sensorstomonitorthesurroundingenvironmentalparameters.DisplayofsensordataandrelatedinformationontheLCDscreen.Atthesametime,thewirelessmoduleandthesinglechipmicrocomputerareusedfordatainteraction.Whenthewirelesscommunicationmoduleissuccessfullyconnectedtothenetwork,andconnectedtotheInternetofThingscloudplatform.BylogintothebackgroundoftheInternetofThingscloudplatform.Userscanviewthedatareportedbythesensorandconductremotecontrol.Inthedesignprocess,Androidsoftwareapplicationisdevelopedtoenableuserstomonitorrelevantenvironmentalparameters.Displaytemperature,humidity,lightintensityandpressuredataontheAPP.Keywords:STM32;InternetofThings;EnvironmentalMonitoring
本次环境监测系统的设计过程中,需要使用显示模块进行显示。需要的显示的数据,主要包括传感器设备测量采集到的数据和系统的基本状态信息。在电子系统设计过程中,常使用的显示模块主要有以下两种,TFT彩屏和LCD1602两种。方案对比如下。方案一:TFT屏幕是以背透和反射相结合的方式工作的,通过点脉冲直接控制[10]。从而实现显示效果。查询资料了解到了一种1.8寸的TFT彩屏模块。在色彩显示上,TFT屏幕的效果较好,色彩丰富且具有对比度高特点。同时在使用该LCD显示模组时,需要用到的单片机的IO端口数量较少。方案二:LCD1602是一种字符型液晶显示模块,具有成本低等特点。但是缺点是在使用LCD1602需要较多的单片机的IO端口数量。而且需要通过调节变阻器的大小,才能改变屏幕的显示效果,不能直接得到显示效果。经过上述两个方案对比,由于需要对传感器数据的实际测量值进行显示,选择了显示内容更多和色彩效果更好的方案一,TFT显示模块实物图如图2-4所示。
环境监测系统选取了STM32F103ZET6芯片作为电路的核心控制和数据处理单元。该芯片支持UART、SPI、I2C接口,芯片内部集成了512KB闪存和64KBSRAM,可以存储更多的程序和数据。环境监测系统的主控电路设计如图3-1所示。STM32芯片正常运行所需要的电压范围为2.0~3.6V,实际运行时的电流只有几十毫安,因此芯片功耗非常低。芯片可对系统电路之中的电压进行检测,可与电源芯片相接一起完成开关电源调节。芯片正常运行时,需要一个外部时钟触发信号,为此将使用频率范围在4~16MHz之间的晶体振荡器。芯片内部存在一个自动校准的RTC振荡电路,其实际运行的频率能够达到32KHZ。在本次设计中,因为STM32系列拥有丰富的串口接口,因此可以实现与多个通讯模组通信。同时可以添加调试接口,利用串口软件实现调试功能,打印设备状态信息。
温湿度传感器模块核心是以AHT10芯片作为核心部分,还包括电平转换电路。AHT10芯片的产品特性如下,芯片的输入电压范围:2.3V至3.3V;具有低功耗的特点;芯片通讯方式采用标准的I2C接口通信。该温湿度传感器芯片的精度如下,湿度精度±3%RH,温度精度0.5℃。模块的参考设计电路如图3-2所示。
光强传感器模块核心是以BH1750芯片作为核心部分,还包括电平转换电路。BH1750芯片的产品特性如下,芯片的输入电压范围:3.0V至3.6V之间;其峰值灵敏度波长的典型值为560nm;输入的光照强度范围为1~65535Lx,其最小的分辨率为0.5Lx[11]。BH1750芯片采用的通讯方式是标准的I2C接口通信。模块的参考设计电路如图3-3所示。
气压传感器模块核心是以BMP280芯片作为核心部分,还包括电平转换电路。气压传感器的产品特性如下,芯片的输入电压范围:1.7~3.6V;芯片的气压工作范围为300hPa至1100hPa;芯片工作温度范围为-40℃至85℃;BMP280芯片支持标准的I2C接口通信和SPI通信;模块参考设计电路图如图3-4所示。
在本次的环境监测系统设计中,选择了1.8寸TFT彩色屏幕作为该系统的显示模块,LCD彩屏采用SPI接口通讯方式,驱动IC是ST7735S,其支持的显示的分辨率为128*160;支持16BitRGB范围65K色显示。该显示模块支字符,字符串,汉字,图片等效果显示。彩色TFT显示模块接口电路图如图3-5所示。
环境监测系统选择了ESP8266系列芯片作为无线通讯部分。ESP8266系列芯片,其CPU时钟速率最高可以达到160MHz,同时具有丰富的外设接口;经典的WIFI模式支持三种类型,包括Station客户端模式、SoftAP服务端模式和SoftAP+Station混合模式[12];该无线模组支持TCP、HTTP、MQTT等基本网络协议。无线通信模块参考电路设计如图3-6所示。
在电源供电方式选择过程中,可以采用的是连接USB接口进行供电。由于大部分的传感器设备模块的输入电压范围在3.3V左右,所以需要设计电平转换电路。该部分主要由电源线引入5V/1A的电源给系统供电,经KIA1117芯片降压为3.3V,给STM32主控系统和传感器设备供电。电源接口电路图如图3-8所示。
对于光照强度数据的采集,使用BH1750传感器。计算BH1750采集结果,单片机通过I2C协议读取的第一个字节是BH1750寄存器的高8位,第二字节为寄存器的低8位数据,高8位数据左移8位再加上低8位数据[13],利用公式去计算最终的光照强度数值。测量步骤如图4-3所示。
在读取数据时,需要进行滤波操作使结果的更加稳定。BMP280传感器获取气压数值的底层驱动代码如图4-5所示。