基于STM32的智能语音识别饮水机系统设计

   功能描述

1、给饮水机设定称呼,喊出称呼,饮水机回答:我在
2、语音进行加热功能,说:请加热,加热片运行
3、饮水机水位检测,低于阈值播报“水量少,请换水”
4、检测饮水机水温,设置阈值温度,低于该温度进行加热
5、感应水杯是否对准出水口,对准出水,对不准不出水并提醒(水泵代替出水)
6、设置出水的时间,(水泵运行几秒钟代表出水几秒)

 电路图

PCB


源代码

#include <reg52.h>
#include <intrins.h>
#include <stdio.h>//printf串口输出头文件#define uchar unsigned char
#define ushort  unsigned int
#define uint  unsigned long#include "lcd1602.h"
#include "uart_trx.h"
#include "eeprom52.h"#define RATIO 800		//系数,建议选择800-1000sbit key1 = P1^0;//加键
sbit key2 = P1^1;//减键sbit beep = P2^0;//蜂鸣器
sbit Fan = P1^3;//风扇unsigned char pmBuf[7] = 0;//数据接收数组
uint PM25_Value = 0;     		//PM = ((pmBuf[1]<<8)+pmBuf[2])/1024*8*ratio
uint PM25_ValueMax = 200; //上限初始值void EEPROM_WRITE()//EEPROM写入
{SectorErase(0x2000);//擦除扇区byte_write(0x2001, (PM25_ValueMax>>8)&0xFF);//存储高8位byte_write(0x2002, (PM25_ValueMax>>0)&0xFF);//存储低8位byte_write(0x2009, 111);//存储校验值
}void EEPROM_READ()//EEPROM读出
{if(byte_read(0x2009)!=111)//开机检测单片机是不是第一次使用,如果不是第一次使用,则先把数据存储一遍,再读取,数据就不会乱码{EEPROM_WRITE();//存储delay_ms(100);}PM25_ValueMax = byte_read(0x2001)<<8 | byte_read(0x2002);//读取上限值
}void Get_PM(void)//读取PM2.5值,具体的数据帧意思,请自行查阅芯片手册
{char i = 0;char j = 0;char k = 0;COM.RX_Cnt = 0;if(COM.B_RX_OK == 1)//串口数据接收完成{for(i = 0; i<8; i++){if((RX_Buffer[i] == 0xAA)&&(RX_Buffer[i+6]==0xFF))//判断接收的数据是否正确{goto find2;}}goto end2;
find2:for(j = 0; j<7; j++){pmBuf[j] = RX_Buffer[i+j];//数据获取}PM25_Value = (unsigned int)((pmBuf[1]*256)+pmBuf[2])*5/2048.0*RATIO;//计算PM2.5值COM.B_RX_OK = 0;}
end2:return;
}void main(void)
{unsigned int test;EEPROM_READ();//开机读取存储值LCD_init();//1602初始化Uart_Init(2400);//串口初始化波特率2400LCD_write_string(0,0,"Pm2.5:    ug/m3 ");LCD_write_string(0,1,"PmMax:    ug/m3 ");//显示上限值LCD_write_char(7, 1, PM25_ValueMax % 1000 / 100 + 0x30);LCD_write_char(8, 1, PM25_ValueMax % 100 / 10 + 0x30);LCD_write_char(9, 1, PM25_ValueMax % 10 + 0x30);while(1){if (test ++ > 250)//大约250ms读取一次{test = 0 ;Get_PM();//获取PM2.5if(PM25_Value > 999)//限值,最大999PM25_Value = 999;//显示PM2.5LCD_write_char(7, 0, PM25_Value % 1000 / 100 + 0x30);LCD_write_char(8, 0, PM25_Value % 100 / 10 + 0x30);LCD_write_char(9, 0, PM25_Value % 10 + 0x30);if(PM25_Value >= PM25_ValueMax)//超过上限,蜂鸣器报警{beep = ~beep;Fan = 0;delay_ms(100);}else{beep = 1;Fan = 1;}}if(key1 == 0)//加键按下{delay_ms(10);//消抖if(key1 == 0){beep = 0;delay_ms(100);beep = 1;while(key1 == 0);if(PM25_ValueMax<999)PM25_ValueMax+=10;//上限最大到999,每次加10//显示LCD_write_char(7, 1, PM25_ValueMax % 1000 / 100 + 0x30);LCD_write_char(8, 1, PM25_ValueMax % 100 / 10 + 0x30);LCD_write_char(9, 1, PM25_ValueMax % 10 + 0x30);EEPROM_WRITE();//保存}}if(key2 == 0)//减键按下{delay_ms(10);if(key2 == 0){beep = 0;delay_ms(100);beep = 1;while(key2 == 0);if(PM25_ValueMax>=10)PM25_ValueMax-=10;//上限最小到0,每减10//显示LCD_write_char(7, 1, PM25_ValueMax % 1000 / 100 + 0x30);LCD_write_char(8, 1, PM25_ValueMax % 100 / 10 + 0x30);LCD_write_char(9, 1, PM25_ValueMax % 10 + 0x30);EEPROM_WRITE();//保存}}delay_ms(1);}
}

        本文只是简单介绍了实物功能的一种和在设计的过程的关键点,供大家参考学习,如需定制实物或者有错误和不明白的可以🛰biyezhan008

元器件清单

基于STM32的智能语音识别饮水机系统设计
名称型号数量
单片机STC89C521
IC座DIP401
万能板9*15cm1
晶振11.0592M1
电解电容10uF1
电解电容1000uf1
瓷片电容22pF2
电阻10K3
电阻1K4
电阻2K1
LED红5MM1
LED绿5MM1
蜂鸣器有源1
三极管S90121
按键5
显示屏LCD16021
排针16P1
排母16P1
人体红外模块HC-SR5011
排母3P1
温度传感器DS18B201
烟雾传感器MQ-21
模数转换器ADC08321
IC座8P1
GSM模块SIM800c1
电源座5MM1
电源线5V2A1
自锁开关1
继电器1
小水泵1
导线若干
焊锡丝若干

参考文献

参考文献
[1]王德保.GPS在城市控制网中的应用研究[D].山东:山东科技大学,2005.
[2]何立民.从现代计算机视角看嵌入式系统(4)嵌入式系统40年发展史[J].单片机与嵌入式系统应用,2016,16(04):77-79.
[3]康桂霞,刘达.FPGA应用技术教程[M].北京:人民邮电出版社:201306.229.
[4]朴德慧,衣英刚.液晶显示器驱动板MCU电路介绍(上)[J].家电检修技术,2012(11):53.
[5]段廷魁.全球卫星定位系统(GNSS)在工程测量中的实践运用探索0[J].科技创新与应用,2021(05):182-184.
[6]宋戈,黄鹤松.51单片机应用开发范例大全[M].北京:人民邮电出版社:国家信息技术紧缺人才培养工程系列丛书,201206.558.
[7]罗小青.单片机原理及应用教程[M].北京:人民邮电出版社,201409.180.
[8]沈庆阳.单片机实践与应用[M].北京:清华大学出版社,2002.
[9]杜深慧.温湿度检测装置的设计与实现[M].北京:机械工业出版社,2004.
[10]林嘉.基于89S52的LCD1602程序设计[J].电脑知识与技术,2012(26):6376-6378.
[11]刘光伟.基于单片机的温室温湿度监测系统设计与实现[D].秦皇岛市:燕山大学,2012.
[12]褚福强,董学仁.单片机的网络接入技术研究[J].仪器仪表用户,2006(05):4-5.
[13]陈英俊.基于单片机的温湿度监测和报警系统设计[J].广东石油化工学院学报,2013(04):42-46.
[14]廖丽媛.基于应变式扭矩传感器的测量系统的设计[D].上海市:东华大学,2013.
[15]刘九庆.温室环境工程技术[M].吉林:东北林业大学出版社,2002.
[16]王明喜,崔世茂.大棚型日光温室光照、温度及湿度等性能的初步研究[J].农业工程技术(温室园艺),2008(05):19-21.
[17]张迎辉.单片微型计算机键盘接口设计[J].信息技术,2004(07):68-69+91.
[18]张友德,赵志英.单片微型机原理应用与实验[M].上海市:复旦大学出版社,2003.
[19]赵芝芸.温室智能监控系统[D].江苏:江苏科技大学,2010.
[20]张宏伟.基于STM32的智能环境监测系统设计与实现[J].大庆师范学院学报,2020(05):32-35.
[21]王世伟,杨越.基于STM32的多型号舵机调试器设计[J].九江学院学报(自然科学版),2020,35(02):33-36.
[22]Pengcheng Zhao,Meijun Ni,Chao Chen,Chenxi Wang,PingpingYang,Xiahui Wang,Chunyan Li,Yixi Xie,Junjie Fei. A Novel Self-protection Hydroquinone Electrochemical Sensor Based on Thermo -sensitive Triblock Polymer PS-PNIPAm-PS[J].
[23]Jian Wang,Jing Chen,Xiaofu Xiong,Xiaofeng Lu,ZhengLiao,Xiaobo Chen.Temperature safety analysis and backup protectionscheme improvement for overhead transmission line in poweroscillation condition[T].Electric Power Systems Research,2019,166.
[24]Fuji Electric Co.Ltd.;Patent Issued for SeiconductorDevice And Method Of Outputting Temperature Alarm (USPTO10,164,626)[J].Electronics Newsweekly,2019.
[25]VERSID,INC;Patent Issued for Refrigeration UnitTemperature Alarm Using Thermal Properties of Food to Eliminate FalseAlarms (USPTO 9752810)[J].Computers,Networks &Communications,2017.
[26]Fuji Electric Co.Ltd;Patent Application Titled"Semiconductor Device and Method of Outputting Teperature Alarm"Published Online (USPTO 20170077919)[J]. Technology & BusinessJournal,2017.
[27]su Yuanping,Xu Lihong,Goodman Erik D.Multi-layerhierarchical optimisation of greenhouse climate setpoints for energyconservation and improvement of crop yield[J].Biosystems
[28]黄松茂.基于STM32的家庭环境监测系统的设计与实现[D].甘肃兰州.西北师范大学,2018.:23-30.
[29]李大琳.智能车内温度监测系统设计[J].山东工业技术,2014(12):80-81.
[30]郭雯,王海涛. 智能输液系统的发展与应用.医疗卫生装备,2012

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/60736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子应用产品设计方案-10:全自动智能门禁系统设计方案

一、系统概述 本全自动智能门禁系统旨在提供高效、安全、便捷的人员进出管理解决方案。通过融合先进的生物识别技术、传感器技术、网络通信技术和自动化控制技术&#xff0c;实现门禁的自动识别、授权、记录和管理。 二、系统组成 1. 前端识别设备 - 人脸识别模块&#xff1a;采…

聊聊Flink:Flink的分区机制

一、前言 flink任务在执行过程中&#xff0c;一个流&#xff08;stream&#xff09;包含一个或多个分区&#xff08;Stream partition&#xff09;。TaskManager中的一个slot的subtask就是一个stream partition&#xff08;流分区&#xff09;&#xff0c;一个Job的流&#xf…

IO流实用案例:用字节流--输入流(Inpustream)、输出流(OutputStream)写一个拷贝图片的案例--超简单!

案例背景&#xff1a; 我的电脑桌面有一张白敬亭的照片&#xff0c;我们需要把这张照片拷贝到我的电脑D:\学习软件\copyBJT目录下&#xff0c;当前我们这个目录是没有东西的。 代码演示以及注释&#xff1a; ublic class StreamCopy {public static void main(String[] args)…

ArkTS学习笔记:ArkTS起步

ArkTS是HarmonyOS的主力应用开发语言&#xff0c;基于TypeScript扩展&#xff0c;强化了静态检查和分析&#xff0c;旨在提升程序稳定性和性能。它采用静态类型&#xff0c;禁止运行时改变对象布局&#xff0c;并对UI开发框架能力进行扩展&#xff0c;支持声明式UI描述和自定义…

卡尔曼滤波:从理论到应用的简介

卡尔曼滤波&#xff08;Kalman Filter&#xff09;是一种递归算法&#xff0c;用于对一系列噪声观测数据进行动态系统状态估计。它广泛应用于导航、控制系统、信号处理、金融预测等多个领域。本文将介绍卡尔曼滤波的基本原理、核心公式和应用案例。 1. 什么是卡尔曼滤波&#x…

Mac解压包安装MongoDB8并设置launchd自启动

记录一下在mac上安装mongodb8过程&#xff0c;本机是M3芯片所以下载m芯片的安装包&#xff0c;intel芯片的类似操作。 首先下载安装程序包。 # M芯片下载地址 https://fastdl.mongodb.org/osx/mongodb-macos-arm64-8.0.3.tgz # intel芯片下载地址 https://fastdl.mongodb.org…

【已解决】git push一直提示输入用户名及密码、fatal: Could not read from remote repository的问题

问题描述&#xff1a; 在实操中&#xff0c;git push代码到github上一直提示输入用户名及密码&#xff0c;并且跳出的输入框输入用户名和密码后&#xff0c;报错找不到远程仓库 实际解决中&#xff0c;发现我环境有两个问题解决&#xff1a; git push一直提示输入用户名及密码…

【Rust 编程语言工具】rustup-init.exe 安装与使用指南

rustup-init.exe 是用于安装和管理 Rust 编程语言工具链的 Windows 可执行文件。Rust 是一种系统级编程语言&#xff0c;旨在提供安全、并发和高性能的功能。rustup-init.exe 是官方提供的安装器&#xff0c;用于将 Rust 安装到 Windows 操作系统中&#xff0c;并配置相关环境。…

mysql 示例验证demo

确保引入了正确的头文件&#xff1a; 在 MySQL C Connector 中&#xff0c;ResultSet 和 Statement 类型的声明需要包含相关的头文件。你需要包括 resultset.h 和 statement.h。 更新代码&#xff1a; 你需要确保程序正确地包含了这些头文件&#xff0c;并且按照正确的顺序使…

【5.线性表-链式表示-王道课后算法题】

王道数据结构-第二章-链式表示算法题 1.在带头结点的单链表L中&#xff0c;删除所有值为x的结点&#xff0c;并释放其空间&#xff0c;假设值为x的结点不唯一&#xff0c;试编写算法以实现上述操作。2. 试编写在带头结点的单链表L中删除一个最小值结点的高效算法(假设该结点唯一…

manjaro蓝牙鼠标无法连接问题解决

问题描述&#xff1a; 我这边出现的问题是使用图形Bluetooth Manager连接&#xff08;华为无线鼠标&#xff09;蓝牙鼠标&#xff0c;会出现连接成功&#xff0c;然后鼠标触发任何动作都会导致连接断开&#xff0c;过一会儿之后会一直出现连接、断开、连接、断开死循环 我的解决…

SSL 证书申请以及配置流程

SSL 证书申请以及配置流程 手动申请免费 SSL 证书的简明指南 如果你希望手动为你的网站申请免费的 SSL 证书&#xff0c;Let’s Encrypt 提供了一个很棒的免费服务。而 Certbot 则是官方推荐的工具&#xff0c;可以帮助你完成证书的申请和配置。以下是如何一步步完成的详细说…

Mac 使用mac 原生工具将mp4视频文件提取其中的 mp3 音频文件

简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖…已保研 学习经验:扎实基础 + 多做笔…

项目中用户数据获取遇到bug

项目跟练的时候 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘code’) at Proxy.userInfo (user.ts:57:17) 因此我想要用result接受信息的时候会出错&#xff0c;报错显示为result.code没有该值 导致我无法获取到相应的数据 解决如下 给…

【视觉SLAM】1-概述

读书笔记 文章目录 1. 经典视觉SLAM框架2. 数学表述2.1 运动方程2.2 观测方程2.3 问题抽象 1. 经典视觉SLAM框架 传感器信息读取&#xff1a;相机图像、IMU等多源数据&#xff1b;前端视觉里程计&#xff08;Visual Odometry&#xff0c;VO&#xff09;&#xff1a;估计相机的相…

vue3 中,字段必须在 onShow 前定义?

在Vue 3中&#xff0c;如果你在组件的 setup() 函数中使用了生命周期钩子&#xff0c;比如 onShow&#xff0c;你可能遇到了一个错误&#xff0c;提示你在 onShow 前定义了某个字段。这个错误通常意味着你尝试在组件的 setup() 函数中访问了一个在 onShow 钩子函数被调用之前尚…

Isaac Sim+SKRL机器人并行强化学习

目录 Isaac Sim介绍 OmniIssacGymEnvs安装 SKRL安装与测试 基于UR5的机械臂Reach强化学习测评 机器人控制 OMNI GYM环境编写 SKRL运行文件 训练结果与速度对比 结果分析 运行体验与建议 Isaac Sim介绍 Isaac Sim是英伟达出的一款机器人仿真平台&#xff0c;适用于做机…

图像处理技术椒盐噪声

椒盐噪声&#xff0c;也称为脉冲噪声&#xff0c;是图像中经常见到的一种噪声。它是一种随机出现的白点或者黑点&#xff0c;可能是亮的区域有黑色像素或是在暗的区域有白色像素&#xff08;或是两者皆有&#xff09;。这些白点和黑点会在图像中随机分布&#xff0c;导致图像中…

前端数据可视化库介绍Echarts、D3.js、Plotly、Matplotlib

目录 一、Echarts 1. 简介 2. 优点 3. 缺点 4. 代码示例 二、D3.js 1. 简介 2. 优点 3.缺点 4. 代码示例 三、Plotly 1.简介 2.优点 3.缺点 四、Matplotlib 1.简介 2.优点 3.缺点 一、Echarts 1. 简介 Echarts 是一个由百度开源的数据可视化库&#xff0c;它…

Python学习------第八天

函数 函数的传入参数 掌握函数返回值的作用 掌握函数返回值的定义语法 函数的嵌套调用&#xff1a; 函数的局部变量和全局变量 局部变量的作用&#xff1a;在函数体内部&#xff0c;临时保存数据&#xff0c;即当函数调用完成后&#xff0c;则销毁局部变量。 money 5000000 n…