开发背景 随着显示器件的多样化,人机交互界面也在不断地进行着变更,如今在TFT显示屏上进行图标化的功能管理已成为一种趋势,为此以ART-Pi STM32H750开发板为硬件平台,来构建一个以图标界面进行功能管理的桌面式智能家居控制系统,该系统的主要功能如图1所示,整体构成如图2所示。 图1 功能结构图 图2 整体构成图 功能规划: RTC: 利用MCU内部的RTC实现电子时钟的计时功能,可用于定时控制固态继电器来驱动家用电器的开关。 ADC: 利用MCU内部的A/D转换器对外部的模拟量进行采集,并可绘制出数据波形图。在连接土壤湿度传感器的情况下,可对家庭养植的绿色植物进行补水控制,当然这需要小型水泵的配合。 PWM调光:利用MCU内部的定时器通过占空比的设置来控制光源的明亮程度,也可利用亮度强弱变化的呼吸灯效果来辅助睡眠。 环境温湿度检测: 使用数字式温湿度传感器DHT22对家居的温湿度状态进行检测,若配置2个DHT22的情况下,还可将2个DHT22分别放置在居室内外,以检测冬季供暖与墙体的保温性能。 环境光照度检测: 使用数字式光照度传感器BH1750对居室的日照状态进行检测,从而对日照采光情况提供一个可靠的依据。 乐曲播放: 利用MCU内部的UART向MP3功能模块来发送指令,从而对播放的乐曲加以选择。受板载按键只有一个的制约,这里只采用单键控制,若对按键加以扩展,则可实现双向的选择处理及音量的调控。 开关控制: 利用MCU的GPIO口,在连接固态继电器的情况下,可通过按键来控制家居的小电器进行开关控制,也可与RTC计时器相配合来进行定时控制电器的开关。 图像显示: 该功能要依托W25Q16之类的FLASH存储器件或是TF卡来辅助存储图片数据,受时间的制约该功能只预备了一个功能调用的接口,具体的功能实现有待于辅助存储功能的实现。 2.硬件设计 该系统的整体硬件结构如图3所示,主要由显示模块、语音模块、继电控制模块及传感器模块等组成。 图3 原理构成图 1)显示部分 显示部分是通过SPI接口的TFT屏来实现的,这样比较节省GPIO资源,其连接关系如图4所示。 图4 TFT显示电路原理图 2)音频播放部分 音频播放是通过MP3播放模块来实现,这样有利于节省MCU资源并可形成并行的处理关系。MP3播放模块是采用通讯方式来控制MP3播放模块。除连接5V电源外,只需将MP3播放模块的RX引脚与PA9连接。 图5 MP3播放模块引脚图 3)控制部分 为了进行电器的控制,使用带光隔的继电器模块以防止继电器对MCU的干扰,对稍大功率的电器,则使用固态继电器来控制。 4)传感器部分 为了进行物理信号的检测,可选取不同类型的传感器,例如对绿植的管控是采用土壤湿度传感器,属模拟量的传感器,相应的接口电路如图6和图7所示。此外,对数字式的传感器的使用,则可省去数值标度的麻烦,DHT22和BH1750就属于这一类型。 图6 土壤湿度检测模块接口 图7 土壤湿度传感器 5)按键部分 按键是人机交互的主要器件,为便于控制所用的是开发板上用户USER,若增添更多的处理,则需要自行扩展更多的按键。 3. 软件设计 1)界面设计 操作界面是人机交互的窗口,系统的主界面如图8所示,主要以图标的形式来标识功能,并通过文字的反显来指示待选的功能,主菜单下的相关界面如图8~图10所示。 图8 主界面 图9 RTC计时 图10 MP3播放选择 2)功能实现 在功能管理方面,是采用模块化的设计方法并通过功能函数调用来实现。在功能设计中,既涉及到外部功能模块的使用,也涉及到MCU内部的RTC、A/D、UART、GPIO等。 界面生成程序: void jm(void) { LCD_Clear(WHITE); show_tbh(20,240,0); showhanzi16h(80,280,3,1); showhanzi16h(80,264,4,1); show_tbh(20,180,1); show_tbh(20,120,2); show_tbh(20,60,3); showhanzi16h(80,100,5,1); showhanzi16h(80,84,6,1); show_tbh(120,60,4); show_tbh(120,120,5); show_tbh(120,180,6); show_tbh(120,240,7); showhanzi16h(180,280,13,1); showhanzi16h(180,264,14,1); showhanzi16h(180,220,11,1); showhanzi16h(180,204,12,1); showhanzi16h(180,160,9,1); showhanzi16h(180,144,10,1); showhanzi
- 1
- 粉丝: 7
- 资源: 919
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python编程的中国人口热力图设计源码
- 基于Java开发的动画效果丰富的NewTvWidget-UI设计源码
- 基于C++语言开发的ssar(SRE SAR)工具家族全新设计源码
- 基于Python实现的wanggejiaoyi网格交易策略设计源码
- 基于PaddlePaddle的Python声纹识别设计源码
- 基于Python、HTML、JavaScript、CSS的Bangwodai设计源码架构
- 基于Python技术的体育网站爬虫设计源码
- 基于JDK17+SpringBoot3.2.7+SpringSecurity3.2.7的JWT多策略认证与Redis黑名单管理设计源码
- 基于SpringBoot和Layui框架的Java投票系统设计源码
- 基于Java和Lua的多语言数学库设计源码