基于瑞萨RA MCU自制猫咪智能饮水机方案
以下文章来源于立创商城,作者立创商城
项目功能介绍
开机通过WIFI自动受时。
每小时闹钟一次,开启水泵换水并根据温度(是否大于30度)控制打开时间,30s,60s。(闹钟每小时0分开启,已调通)
检测到猫咪经过,水泵自动开启一段时间。
自定义炫彩RGB。
检测水槽是否有水,若缺水蜂鸣器警报并关闭RGB灯光。
检测电池电压,若电池电量不足时蜂鸣器发出间歇警报并关闭RGB灯光。(效果和缺水类似,但是警报声不同)
可通过电池供电,也可以通过TYPE-C供电(同时也能给电池充电)。
板载串口调试接口,也可以通过SWD调试。
WiFi控制水泵开启。
可以扩展触摸按键开启水泵。
众所周知猫咪总是不喜欢喝自己碗里的水,就想给自己的猫咪做一个智能饮水机。网上上一搜发现智能猫咪饮水机价格普遍溢价太高,就想自己做一个。
于是便在网上找了个便宜的饮水机改造,非常便宜十来块拿下,此刻便拥有了水槽和USB水泵。正好借此次机会获得元器件,制作一个功能更强的智能饮水机。
项目结构

实物外观

电路板实物图

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

智能饮水机正面

智能饮水机侧面(充电接口)
硬件电路
1.MCU核心电路


#R7FA2E1A72DFL芯片特性:
48MHz ArmCortex-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中编写
