基于STM32单片机的 IoT 智能加湿器配备了DHT11温湿度传感器、水位传感器和浊度传感器,数据通过单片机处理并显示在OLED屏幕上。
用户可通过按键模块设置阈值,并在检测值与设定值不符时自动关断或报警。设备支持手动、自动、定时和远程四种控制模式。系统程序在MKD5软件上开发并经过调试,现已稳定运行,提升了用户体验,并有进一步改进的潜力。
系统硬件设计
本系统采用模块化设计由stm32单片机控制单元、温湿度传感器、水位传感器、浊度传感器、蜂鸣器、按键模块、OLED显示、WIFI模块、雾化模块、电机驱动模块组成。其中单片机做核心与其他模块互相配合实现各类功能。雾化模块开关通过直流电机驱动模块直接控制单片机间接控制。
控制单元单片机具有高集成度、实时控制能力强、性价比高、易于扩展与开发且性能稳定等优点,因此本设计采用stm32f103c8t6作为核心控制枢纽,在芯片的输入和输出端均并联稳压电容以输出和输入稳定的3.3 V电压。
传感器模块
该设计使用单总线协议的DHT11温湿度传感器模块,拥有成本低、性能稳定、响应超快、抗干扰能力强、数字信号输出、精确校准等优点。DHT11温湿度传感器模块的串行数据线接4.7 KΩ上拉电阻后与单片机的PB14引脚相连。测量水位采用水位/水滴传感器,该传感器通过一排平行裸露导线线迹测量水滴/水量大小,实现水量到模拟信号的转换。
蜂鸣器报警电路
蜂鸣器采用无源蜂鸣器,在设计中加入了一个NPN型三极管,用以放大电流驱动蜂鸣器,三极管做开关用,由stm32单片机判断水位和浊度数据后对三极管基极发送脉冲信号,拉低或拉高基极电压,拉低时蜂鸣器断电拉高时通电。这样即可实现阈值报警功能。
Wi-Fi模块
本设计采用内置完整TCP/IP协议栈的ESP8266WIFI模块,支持标准的IEEE 802.11 b/g/n协议,可将单片机与机智云服务器连接,进行数据传输。模块的LRXD引脚和UTXD引脚分别与单片机串口TX(PB10)和RX(PB11)相连,实现两者之间的数据通信。
按键与显示模块
按键模块采用四位独立按键。显示模块采用0.96英寸OLED显示屏,其驱动芯片为SSD1306,由I2C总线驱动,该模块不需背光显示,每个像素可独立发光,且具有可视角度大,功耗低、反应快、适用温度范围广等特点,广泛应用于移动设备,本设计中为其提供3.3V电压用以显示检测到的温湿度等信息。
电机驱动与雾化模块
雾化片采用超声波雾化片,本质是一片压电陶瓷,工作时产生高频震荡使其接触到的水分子结构被打散,形成自然飘逸的水雾,使空气湿润并含有丰富的负氧离子。
按键与OLED显示模块
OLED屏幕每个像素与SSD1306显存点阵一一对应,所以单片机对SSD1306芯片写入数据或命令即可实现屏幕在相应点的显示。显示的汉字通过字模生成软件生成,把文字生成的代码放入OLED的字库里,因为汉字是16位长度,而SSD1306显存1页是8位长度,所以汉字分上下两部分,分别写入显存第一页和第二页,以此在主屏幕上拼出一个完整汉字。需要显示几个汉字就在字库中循环检索几次。
按键模块主要设计是,通过按键扫描函数KEY_Scan(),判断有无按键按下,当有按键按下延时10 ms去除抖动,之后识别哪个键按下,采集按键值保存于key_value中,根据key_value值寻找程序入口,执行程序,完成该次按键操作。按键设置支持连续按设置优先级k0>k1>k2>k3,所有按键设置弹起时为高电平,按下时为低电平。
k0配网按键:系统初始化后按下k0,ESP8266进入待连接状态。
k1模式切换按键:K1按下按键值为2模式切换,按压一次sys_mode值(模式值)加1,可切换四种模式(手动、自动、定时、远程模式,分别对应sys_mode的0、1、2、3超出范围后归0)。
k2浊度与水位显示按键:此页面可查看传感器采集到的浊度数据和水位数据。
k3阈值等设置按键:在浊度与水位按键k2按下后,再按下此按键进入时间与定时设定和阈值与单次按键增量设定选择界面,此时k2与k3分别为上换行键和下换行键,翻页到要选择的设置位置后k1为确认键,进入进行相应设置界面或退出此界面。
数据采集与报警
DHT11温湿度传感器代码设计包括初始化、延时越过不稳定状态、读取数据、校验数据等步骤。水位传感器代码设计涉及设置阈值、读取水位信号、判断水位状态等。浊度传感代码包括光电信号采集、数据处理和浊度值计算等。在主程序中通过对该部分外设函数的调用,可实现相应传感器采集数据的显示和超出预设安全范围的报警。也可通过数据值对输出占空比进行设置。
云端程序 & App
本设计所选用Wi Fi/移动网络方案,通信方式为WIFI,数据定长功耗低。创建好项目后根据设计需要创建数据点,选择读写类型和数据类型。包含远程开关、温度、湿度、加湿器,和浊度数据标识符及数据类型。
在设计时用机智云自动生成MCU开发中必要代码。设备接入云端服务器后,接收云端和APP端发来的数据点等信息,通过协议帧格式发送到MCU端,MCU端将数据存到缓冲区,每隔一段时间对缓冲区抓包,抓包正确进行解析,推送到数据事件处理,并根据数据点事件执行相应逻辑。
同样,单片机也通过协议栈帧格式将数据传给ESP8266模块后传至云端服务器,最后处理控制事件的相关代码。在本设计中创建了ctrol写等类型数据,根据这些类型数据完成相应的控制。
最后把gizwits串口协议移植到stm32单片机上,并通过固件烧录工具把固件库烧写入ESP8266模块中。移植烧写完成后验证设备端与Demo APP能否正常工作,将设备与手机处于同一局域网下,进入app选择一键配网(使用2.4 G频道WiFi网络配网),选择乐鑫模组,按下配网按键,配网完成后可通过手机看到测得的各数据,可选择远程控制的打开与关闭,打开时可滑动加湿器滑块控制加湿器功率。
总结
本款基于STM32单片机的智能加湿器经过多环境测试,能够自由切换工作模式,并通过传感器可靠采集温湿度和水位信息。其WIFI模块支持信息云端上传,用户可通过手机实现实时监控和远程控制。水位和浊度传感器配合蜂鸣器实现缺水和水污浊报警,避免了干烧、过度加湿及喷出污浊水汽的问题,提升了安全性。
如有需求,请联系小编。微信号: beacon0418
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...