基于瑞萨RA MCU自制猫咪智能饮水机方案

描述

以下文章来源于立创商城,作者立创商城

项目功能介绍

开机通过WIFI自动受时。

每小时闹钟一次,开启水泵换水并根据温度(是否大于30度)控制打开时间,30s,60s。(闹钟每小时0分开启,已调通)

检测到猫咪经过,水泵自动开启一段时间。

自定义炫彩RGB。

检测水槽是否有水,若缺水蜂鸣器警报并关闭RGB灯光。

检测电池电压,若电池电量不足时蜂鸣器发出间歇警报并关闭RGB灯光。(效果和缺水类似,但是警报声不同)

可通过电池供电,也可以通过TYPE-C供电(同时也能给电池充电)。

板载串口调试接口,也可以通过SWD调试。

WiFi控制水泵开启。

可以扩展触摸按键开启水泵。

众所周知猫咪总是不喜欢喝自己碗里的水,就想给自己的猫咪做一个智能饮水机。网上上一搜发现智能猫咪饮水机价格普遍溢价太高,就想自己做一个。

于是便在网上找了个便宜的饮水机改造,非常便宜十来块拿下,此刻便拥有了水槽和USB水泵。正好借此次机会获得元器件,制作一个功能更强的智能饮水机。

项目结构

 

饮水机

实物外观

饮水机

电路板实物图

饮水机

温湿度、人体感应、OLED模块

饮水机

智能饮水机正面

饮水机

智能饮水机侧面(充电接口)

硬件电路

1.MCU核心电路

饮水机

饮水机

#R7FA2E1A72DFL芯片特性:

48MHz Arm Cortex-M23

64kB的闪存以及16kB SRAM

4kB数据闪存,提供与EEPROM类似的数据存储功能

1.6V-5.5V的宽工作电压范围

增强型电容式触摸感应单元(CTSU)

12位ADC,LPACMP,温度传感器

32位通用PWM定时器,16位通用PWM定时器,低功耗异步通用定时器

实时时钟

SCI(UART、简单SPI、简单I2C)

独立的SPI接口/I2C多主接口

安全功能

加密功能

2.WIFI电路(可换成蓝牙)

饮水机

ESP8266购买时最好买带有AT固件的,没有的话需要自己下载

饮水机

3.液位检测传感器、人体感应传感器、

温湿度传感器、OLED模块

饮水机

液位传感器

饮水机

人体感应传感器

饮水机

响应速度快、静态功耗小、灵敏度高、体积小巧简单安装,已装好透镜和焊接好排针,配上电源,无需调试。

#特点说明:

本产品输出的高电平时间可调,2.5秒到1小时,出厂时设定的输出时间是2.5秒,如需要更改,可更改一个贴片电阻

封锁时间,2秒,不可调节

出厂定义为可重复触发,无法变更

本模块的供电压是3.3V到15V,极限电压是2.8V到18V5模块输出时序是:上电后输出高电平2秒,然后变成低电平进入待机状态。若更改延时时间,模块上电输出高电平的时间会相应增长,可理解为上电后进入正常工作状态的启动时间会增长

装上光敏原价后,白天不工作,晚上工作,不装光敏元件,全天工作(默认是没有安装光敏元件的)

此模块很灵敏,注意安装位置,尽量避开热源辐射源(出风口/阳直)

本模块灵敏度可调,需更改一个贴片电阻

温湿度传感器(注意引脚顺序)

饮水机

湿度测量范围:0~100%RH

湿度测量精度:±3%RH

温度测量范围:-40~125℃

温度测量精度:±0.3℃

工作电压:2.4~5.5VDC(宽电压)

I2C接口输出

0.96寸OLED模块(注意引脚顺序)

饮水机

高分辨率:128*64

超广可视角度:大于160°

超低功耗:正常显示时0.06W

宽供电范围:直流3.3V-5V

工业级:工作温度范围-30C~70C

体积小:27mm*27mm*2mm

通信方式:IIC

亮度、对比度可以通过程序指令控制

使用寿命不少于16000小时

1OLED屏幕内部驱动芯片:SSD1306

4.水泵电路

饮水机

饮水机

P111输出高电平时,水泵开启(LED2亮):

左右滑动查看完整内容

 

R_IOPORT_PinWrite(&g_ioport_ctrl, WaterPump, BSP_IO_LEVEL_HIGH);//开启水泵
R_IOPORT_PinWrite(&g_ioport_ctrl, WaterPump, BSP_IO_LEVEL_LOW);//关闭水泵

 

5.蜂鸣器、RBG电路

饮水机

饮水机

P104输出高电平时,蜂鸣器发声:

左右滑动查看完整内容

 

R_IOPORT_PinWrite(&g_ioport_ctrl, Buzzer, BSP_IO_LEVEL_HIGH);//开启蜂鸣器
R_IOPORT_PinWrite(&g_ioport_ctrl, Buzzer, BSP_IO_LEVEL_LOW);//关闭蜂鸣器

 

WS2812b核心显示代码:

左右滑动查看完整内容

 

setPixelColor(i, green, red, blue);//第几个WS2812B 颜色值(通过SPI传输)

 

饮水机

饮水机

6.串口调试电路

饮水机

饮水机

饮水机

默认直接连接到RA MCU上,接上跳线可以用于烧录和调试ESP8266。

饮水机

Type-C接入可用于打印调试信息,如上图日期显示。

7.电池电量检测

饮水机

18650锂电池的上限和下限电压分别为4.2V和2.75V。

18650锂电池单节标称电压一般为:3.6V或3.7V。

18650锂电池最小放电终止电压一般为:2.75V ,低于这个电压容易导致电池容量严重下降乃至报废。大部分锂电池放电不能将空载电压放到3.2V以下的,否则过度放电会损害电池。

程序里我们设置电池电压小于3.6V时发出警报并关闭水泵和RGB。

8.电源电路(锂电池充放电保护,升压,LDO)

饮水机

饮水机

最好先焊接电源模块调试好5V输出后再焊接其他模块模块

最大充电电流:1000mA

充电截止电压:4.2V

电池过放保护电压:2.4V

最大输出电流:2A(建议1A内使用)

输出电压:4~12V

type-c电源输入,红灯常亮,说明在充电。充满电后蓝灯亮起。当输入端有电源时,从电源输入端获得电流,如果没有接电源,从电池获得电流,电池电压低于2.4V时,自动关闭输出。第一次接入电池时,可能无电压输出,需要在电源输入端上电激活保护电路。当使用手机充电器供电时,必须要能输出1A以上,否则可能会不能正常充电。

软件代码

※ copy工程的要注意更改WiFi账号和密码

 代码工程详情点击文末“阅读原文”查看。

饮水机

ESP8266初始化及相关代码在:

ESP8266.c与ESP8266.h

OLED初始化及相关代码在:

oled.c、oled.h、oledfont.h

SHT30初始化及相关代码在:

sht3x.c与sht3x.h

WS2812B初始化及相关代码在:

ws2812b.c与ws2812b.h

主程序在hal_entry.c中编写

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分