名称介绍

概 述

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,可直接显示电池电量,也可通过串口指令,获取供电状态。

特性

技术规格

引脚说明

图片介绍

注意:建议采用3.7V@3000mAh以上的电池

使用教程

安装图

ONPOWER UPS Hat安装图
  1. 风扇可以通过M3x12螺丝和M3螺母固定在UPS板下(风扇接口所在面)
  2. 将XH2.54 2x20P长排针排母从背面(风扇接口所在面)插入
  3. 将排母侧插入树莓派排针面,详见上图。

UPS RTC(实时时钟)教程

ONPOWER UPS HAT通过I2C接口与树莓派通信,用户可自定义设置/读取时间,设定闹钟,完成定时开/关机等功能。请先下载 DFRobot UPS Python 库,解压后放入树莓派桌面上。

桌面显示

打开树莓派I2C接口,通过终端,输入sudo raspi-config

打开树莓派I2C

选择Interfacing Options-> I2C->Enable

Enable树莓派I2C

打开I2C接口后,RTC就可以与树莓派通信了!

更改目录到DFRobot UPS Python库所在位置:cd /home/pi/Desktop/DFRobot_raspberrypi_ups/python/examples/ups

更改树莓派目录

输入Help指令,查询所有可用指令及注释: python ups.py -p help

输入Help指令

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)

相关资料