概 述
ONPOWER树莓派UPS不间断电源扩展板是专为Raspberry Pi树莓派设计的电源管理设备,可以在外部断电的情况下持续为树莓派供电一定时间,避免因为突然断电导致的系统损坏,数据丢失等问题。
ONPOWER树莓派UPS扩展板板载一套专业的电源管理系统,支持USB TYPE-C QC2.0/3.0,华为FCP等多种输入快充协议,减小充电时间的同时亦可保持5V@3A的最大电源输出。一节3000mAh的18650电池可以保持3~4小时的系统正常运行时间,保证数据安全的同时,又能满足树莓派的日常使用。扩展板预留风扇安装孔,可安装风扇,保证设备运行温度,适用于各种移动应用场景,以及各种IoT边缘计算。
ONPOWER UPS扩展板板载RTC功能,可自设定时间,定时控制树莓派的电源通断。配合主板自身的上电自启动功能,实现软件定时开/关机控制。
ONPOWER UPS扩展板采用MAX17043专用电量检测芯片,兼容市面上大部分的锂电池。芯片自带算法,配合板载LED,可直接显示电池电量,也可通过串口指令,获取供电状态。
特性
- 支持USB TYPE-C QC2.0/3.0,华为FCP等多种输入快充协议
- 5V@3A最大电源输出,保证树莓派正常运行所需
- 板载主动散热风扇
- 支持18650、锂离子、聚合物锂电电池
- 板载RTC实时时钟模组,支持软件定时开/关机控制
- MAX17043专用电量检测芯片,支持LED电池电量显示及串口信息查询
技术规格
- 输入电压:5V/2A, 9V/2A,12V/1.5A充电头:QC2.0, QC3.0, 华为FCP等快充协议
- 供电接口:USB TYPE C
- 电池类型:3.7V锂电池、18650锂电池(建议选择3000mAh及以上规格)
- 输出电源:5V@3A(MAX)
- 待机功耗:<10mA
- 适配主板:Raspberry Pi B+/2B/2B+/3B/3B+/4B
- 通信接口:I2C通信
- 产品尺寸:65mm x 56mm x 13mm
引脚说明
注意:建议采用3.7V@3000mAh以上的电池
使用教程
安装图
- 风扇可以通过M3x12螺丝和M3螺母固定在UPS板下(风扇接口所在面)
- 将XH2.54 2x20P长排针排母从背面(风扇接口所在面)插入
- 将排母侧插入树莓派排针面,详见上图。
UPS RTC(实时时钟)教程
ONPOWER UPS HAT通过I2C接口与树莓派通信,用户可自定义设置/读取时间,设定闹钟,完成定时开/关机等功能。请先下载 DFRobot UPS Python 库,解压后放入树莓派桌面上。
打开树莓派I2C接口,通过终端,输入sudo raspi-config
选择Interfacing Options-> I2C->Enable
打开I2C接口后,RTC就可以与树莓派通信了!
更改目录到DFRobot UPS Python库所在位置:cd /home/pi/Desktop/DFRobot_raspberrypi_ups/python/examples/ups
输入Help指令,查询所有可用指令及注释: python ups.py -p help
Help指令集
举例:同步RTC时间至系统时间:python ups.py -p get_time
UPS指令众多,请多多尝试!
风扇使用教程
ONPOWER UPS HAT使用**BCM26(wiringPi编码GPIO25;物理引脚号37)**控制开关,控制风扇。
样例代码
打开树莓派自带的Thonny Python IDE,输入代码。当CPU温度高于55度时,风扇开启;当CPU温度低于48度后关闭。
from RPi import GPIO
from time import sleep
GPIO.setmode(GPIO.BCM) # 使用BCM引脚模式
channel = 26 # 使用BCM26(对应物理引脚号37)接口控制开关
start_temp = 55 # 启动风扇的温度阈值(℃)
end_temp = 48 # 关闭风扇的温度阈值(℃)
GPIO.setup(channel, GPIO.OUT, initial = GPIO.LOW) # 初始化控制引脚
is_high = GPIO.LOW # 用于标记风扇是否打开 避免频繁调用output
try:
while True:
# 获取当前SoC温度
temp = open('/sys/class/thermal/thermal_zone0/temp')
temp = int(temp.read()) / 1000
if temp > start_temp and not is_high: # 当SoC温度超过启动阈值且风扇处于关闭状态
GPIO.output(channel, GPIO.HIGH) # 打开风扇
is_high = GPIO.HIGH # 标记风扇状态为打开
elif temp < end_temp and is_high: # 当SoC温度低于关闭阈值且风扇处于打开状态
GPIO.output(channel, GPIO.LOW) # 关闭风扇
is_high = GPIO.LOW # 标记风扇状态为关闭
sleep(10) # 每隔10秒监控一次
except:
pass
# 退出时 重置该引脚
GPIO.cleanup(channel)