0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于STM32的智能饮水机系统设计

DS小龙哥-嵌入式技术 来源:DS小龙哥-嵌入式技术 作者:DS小龙哥-嵌入式技 2023-05-23 09:13 次阅读

一、项目背景

随着智能化的迅速发展,人们对于生活中的各类设备也越来越有智能化的需求,其中智能饮水机是一种比较常见的设备。智能饮水机不仅可以提供饮用水,还可以通过智能化的技术满足人们对于水质、水温、出水量等方面的需求。因此,当前设计了一种基于STM32的智能饮水机系统,以满足人们对智能化饮水机的需求。

智能饮水机系统其主要功能包括:

【1】控制加热芯片:通过继电器模块控制加热芯片,在水烧开后自动断电。

【2】液位感应:使用液位传感器感应水箱水位,当水位过低时通过语音模块进行播报提示。

【3】移动端控制:Android手机端可以显示当前双水箱内的水温,设置出水温度及出水量,并且还可以控制出水操作。

【4】主控芯片:采用STM32F103RCT6主控芯片,这款芯片有着强劲的处理能力和丰富的外设资源,可以满足饮水机系统的控制需求。

【5】WIFI通信:选择ESP8266与手机端通信,可以实现远程控制。

【6】水温测量:采用DS18B20实现水温测量,能够准确地测量水温。

【7】出水开关控制:采用SG90电机实现出水开关控制,可以精准地控制出水量。

【8】本地有2个指示灯,绿色和红色灯。可以表示加热状态。

poYBAGRre0SAQmnSAASYabaNG5s119.png

二、系统硬件设计

【1】系统核心芯片选择

STM32F103RCT6作为本系统的主控芯片,其具有较高的计算速度和稳定性,在众多STM32系列中也是使用比较广泛的型号之一。

【2】温度测量模块

温度测量采用DS18B20数字温度传感器,通过单总线协议与主控芯片进行通信,实现对水温的精准测量。

【3】液位检测模块

液位检测采用液位传感器,通过测量水箱内水位来判断是否需要进行添加水操作。

【4】控制加热芯片模块

继电器模块负责控制加热芯片,当水烧开后自动断电,以确保水的安全。

【5】出水操作模块

出水操作通过SG90电机实现,其可以控制水龙头的开关,实现出水的自动控制。

【6】WIFI通信模块ESP8266作为WIFI模块,与手机端进行通信,实现了智能饮水机系统的远程操控和监测。

三、系统软件设计

【1】温度测量与显示模块

STM32芯片通过单总线协议与DS18B20传感器进行通信,获取当前水温数据,并将其通过LCD1602液晶显示屏展示在饮水机面板上。

【2】液位检测模块

液位传感器负责检测水箱内水位情况,并将水位数据传递给主控芯片。当水位过低时,系统会通过语音提示模块向用户发出添加水的提醒。

【3】控制加热芯片模块

主控芯片通过继电器模块控制加热芯片的开关,在水烧开后自动断电,以保证水的安全性。

【4】出水操作模块

出水操作通过SG90电机控制,实现了对饮水机出水的自动控制。同时,在Android手机端,用户可以设置出水温度和出水量,使得出水操作更加便捷。

【5】WIFI通信模块

系统通过ESP8266与Android手机端进行通信,实现了智能饮水机系统的远程操控和监测功能。用户可以通过手机端查看当前双水箱内的水温并进行相应的操作。

ESP8266配置成AP+TCP服务器模式,开启WIFI热点等待手机连接,手机连接之后使用TCP客户端模式连接饮水机完成数据通信。

四、核心代码

4.1 SG90控制代码

SG90电机是一种小型舵机,用于模型航空、船模、车模和机器人等小型机械装置中,可以控制舵、飞控等运动部件的转动角度。其最大扭矩为1.6kg/cm(4.8V时),转速为0.12秒/60度(4.8V时),工作电压为4.8V~6V。SG90电机采用三线接口,其中红色接VCC(正极)、棕色接GND(负极)、橙色接PWM信号线,可以通过控制器的PWM信号控制电机的角度。

以下是使用延时模拟PWM波形控制SG90电机旋转并封装成子函数的示例代码:

cCopy Code#include "stm32f10x.h"
​
#define SG90_PIN GPIO_Pin_5
#define SG90_PORT GPIOB
​
void SG90_rotate(uint8_t angle);
​
int main(void)
{
   // 初始化GPIOB时钟
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  
   // 配置PB5为推挽输出
   GPIO_InitTypeDef GPIO_InitStructure;
   GPIO_InitStructure.GPIO_Pin = SG90_PIN;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
   GPIO_Init(SG90_PORT, &GPIO_InitStructure);
  
   while (1)
   {
     SG90_rotate(0); // 转到0度
     delay_ms(1000);
    
     SG90_rotate(90); // 转到90度
     delay_ms(1000);
    
     SG90_rotate(180); // 转到180度
     delay_ms(1000);
   }
}
​
void SG90_rotate(uint8_t angle)
{
   // 计算PWM波形高电平持续时间
   uint32_t high_time = 500 + angle * 11.11;
  
   // 发送PWM波形
   GPIO_SetBits(SG90_PORT, SG90_PIN);
   delay_us(high_time);
   GPIO_ResetBits(SG90_PORT, SG90_PIN);
   delay_us(20000 - high_time);
}

在上面的代码中,将SG90电机控制引脚连接到了STM32F103的PB5口,并通过计算PWM波形高电平持续时间来控制电机旋转角度。使用了SG90_rotate子函数来实现控制过程。当调用SG90_rotate函数并传入目标旋转角度时,函数会自动计算出对应的PWM波形高电平持续时间,并发送PWM波形来控制电机旋转到指定角度。使用了delay_msdelay_us这两个函数来实现延时操作。

4.2 DS18B20温度传感器

DS18B20是一种数字温度传感器,它可以直接测量环境温度并转换为数字信号输出。DS18B20温度传感器采用一线式总线接口(也叫单总线接口),具有精度高、抗干扰能力强、可靠性高和使用方便等优点。

DS18B20温度传感器的测量范围为-55℃~+125℃,精度为±0.5℃。传感器内置了温度补偿电路,可以自动补偿温度影响导致的测量误差。

DS18B20温度传感器有多种封装形式,包括TO-92封装、SOIC封装和TO-263封装。其中TO-92封装是最常见的,也最容易使用,它的引脚分别为GND(负极)、DQ(数据线)和VDD(正极)。传感器可以通过单总线接口连接控制器,控制器通过发送指令读取传感器的数据。

以下是接口函数的代码示例:

#include "stm32f103xb.h"
#include 
​
#define DS18B20_GPIO_Port GPIOB
#define DS18B20_GPIO_Pin  GPIO_PIN_6
​
void delay_us(uint16_t us)
{
   uint16_t i;
   for(i=0; i

调用方式:

DS18B20_Init(); // 初始化
float temperature = DS18B20_ReadTemperature(); // 读取温度值

五、总结

本项目是基于STM32的智能饮水机系统设计,实现了自动断电、液位感应、语音提示、手机远程控制等功能。其中,STM32主控芯片选择STM32F103RCT6,WIFI选择ESP8266与手机端通信,水温测量采用DS18B20,出水开关控制采用SG90电机实现。

通过继电器模块控制加热芯片,在水烧开后自动断电,避免了过度烧水和安全隐患。同时,利用液位传感器感应水箱水位,当水位过低时通过语音模块进行播报提示,提醒用户及时加水。

在Android手机端,用户可以方便地查看当前双水箱内的水温,设置出水温度及出水量,并控制出水操作。这极大地提高了用户的使用体验和方便性。

本项目具有实用性和创新性,不仅满足了用户对智能化、便捷化的需求,也展示了STM32等技术在智能家居领域的应用前景。



审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3851

    浏览量

    125642
  • STM32
    +关注

    关注

    2240

    文章

    10674

    浏览量

    348806
  • WIFI
    +关注

    关注

    81

    文章

    5162

    浏览量

    199444
  • 饮水机
    +关注

    关注

    0

    文章

    37

    浏览量

    13769
  • 单片机
    +关注

    关注

    0

    文章

    168

    浏览量

    16658
收藏 人收藏

    评论

    相关推荐

    从传统饮水机智能即热饮水机

    ,再到如今的智能即热饮水机饮水机的技术与形态都在发生着不小的改变。   饮水机的发展历程   作为一种家用电器,饮水机的主要功能便是通过过
    的头像 发表于 08-22 01:12 1633次阅读

    维修饮水机

    维修饮水机 家里饮水机用久了不加热线路好的 检查溫控管好的.加热胆坏了 网上购买一个换上 指示灯恢复加热 修复成功
    发表于 02-27 15:55

    【卓越团队】多功能节能饮水机

    日益提高,越来越追求健康时尚的背景下,饮用水的健康问题受到越来越多关注,健康的饮用水是今后饮用水市场的趋势。在当前饮水机普及情况下,饮水机蓄水用水是现在大多是家庭的用水模式。自然健康的饮水机也是今后发展
    发表于 12-30 15:54

    智能家居——多功能饮水机的设计与实现

    ,结合各种传感器,对传统饮水机的各个弊病加于改善处理,集短信控制、自动提醒送水、自动放满一杯水、节能和人性化设计于一体,可靠性、实用性、稳定性高,可实现家居智能化。如图1所示,该控制系统包括控制芯片,以及
    发表于 05-22 10:42

    一款饮水机的节电措施电子资料

    一般饮水机只要接通电源开关后,加热桶内的纯水就被长时间地反复加热,这不但不利于饮用卫生,而且还浪费电能。其实只要给饮水机加装一个简单的节电开关电路,就能解决这个问题。
    发表于 04-21 06:27

    红外无线遥控饮水机相关资料分享

    使用时用遥控器对准饮水机按任意键.饮水机就接通电路开始工作,不用时,再按遥控器任意键饮水机就停止工作,使用非常方便,原理简单,并有指示灯指示,是一个实用的电路。
    发表于 04-27 07:41

    如何自制节能的饮水机

    如何自制节能的饮水机
    发表于 05-06 08:01

    请问怎样去设计一种基于单片智能饮水机控制系统

    基于单片智能饮水机控制系统是由哪些部分组成的?怎样去设计一种基于单片智能
    发表于 07-15 10:27

    如何利用单片实现智能饮水机控制系统设计?

    如何利用单片实现智能饮水机控制系统设计?
    发表于 11-02 06:27

    基于单片智能饮水机功能设计

    文章目录1 简介2 绪论2.1 课题背景与目的3 系统设计3.1 智能饮水机功能设计3.1.1 智能饮水机的按键功能:3.1.2
    发表于 11-19 08:33

    饮水机低液位提醒功能是如何实现的

    传感器检测到。 当光电液位传感器检测到光线的变化时,它会向饮水机的控制系统发送信号。控制系统会根据接收到的信号判断饮水机的液位是否低于设定的阈值。如果液位低于阈值,控制
    发表于 08-15 14:11

    基于单片饮水机温度控制系统设计

    本次设计为一个基于单片饮水机的温度控制系统,该系统可以实时检测饮水机水箱的水温,并且可以通过数码管显示
    发表于 09-26 07:25

    智能化饮水机的优点有哪些_智能化饮水机工作原理

    本文开始介绍了什么是智能饮水机智能饮水机的特点,其次介绍了智能饮水机的工作原理和
    的头像 发表于 03-02 08:44 5325次阅读

    智能饮水机的使用方法详细介绍

    目前智能饮水机已经得到普遍运用。本文介绍了智能开始饮水机的特点,其次阐述了智能饮水机的使用方法或
    的头像 发表于 03-02 09:02 4.9w次阅读

    智能饮水机功能介绍_智能饮水机的特点及价格

    本文开始阐述了智能饮水机的特点与工作原理,其次阐述了智能饮水机的功能,最后介绍了智能饮水机的价格
    的头像 发表于 03-02 09:16 1.4w次阅读