• 注册
  • 综合讨论 综合讨论 关注:22 内容:75

    树莓派断电安全关机简易UPS

  • 查看作者
  • 打赏作者
    • 3
    • 综合讨论
    • 打印菜鸟

      参考国外资料制作的树莓派断电安全关机电路,测试完成

      不用电池,使用两个超级法拉电容缓冲5V电压,每个30F。设计得简单可靠,缺点是容量没有得到有效利用,只有足够的时间进行适当的短暂关机(大约20秒)。另一个缺点是,启动时有个对电容的充电时间,看你电源的功率,功率大时间就短

      树莓派断电安全关机简易UPS树莓派断电安全关机简易UPS

      二极管防止电流流回电源,水泥电阻限制启动时冲向超级电容器的电流(否则可能会影响二极管或电源)。水泥电阻不知道买的质量达不达标,压降有点大,所以就用了四个并联,二极管应该是具有高电流和低正向电压额定值的肖特基二极管,很多类型都可以。

      电源建议用工控电源可以微调电压,或者用可调稳压电压板转接,因为测试电路在高负载下有约0.5v压降,所以输入电压我给了5.5V,不然树莓派会警告电压不足

      超级法拉电容须串联起来,电阻R7/R8的作用是使电容上的电压均匀分布(平衡),否则电容可能会迅速退化。当电路不通电时,电阻也会缓慢地对电容放电(但会有相当长的时间),这对延长超级电容的寿命也有好处。

      电源正常时,三极管导通,GPIO引脚为低电平,断电时,三极管截至,GPIO高电平。使用 “gpio “命令的简单脚本循环检测这个引脚的状态,如果电平为高,就触发关机。

      编辑运行脚本\home\pi\shutdown.py:

      #!/usr/bin/env python3
      import os
      import time
      from time import sleep
      import signal
      import sys
      import RPi.GPIO as GPIO
      
      
      
      upsSensPin = 16
      
      def Shutdown():  
          os.system("echo ***| sudo -S halt")#***改为你的密码
      
      def setup():
          GPIO.setmode(GPIO.BCM)
          GPIO.setup(upsSensPin, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
          GPIO.setwarnings(False)
          return()
      
      def handleups():
          #print (GPIO.input(upsSensPin)) 
          if GPIO.input(upsSensPin)==1:
              Shutdown()
          return()		
      
      setup() 
      while True:
         handleups()
         sleep(5)

      使脚本开机启动

      编辑/etc/systemd/system/pi-ups.service

      [Unit]
      # 服务描述
      Description=ups
      [Service]
      # 简单服务
      Type=simple
      # 运行用户与用户组
      User=pi
      Group=pi
      # 执行命令
      ExecStart=/usr/bin/python /home/pi/shutdown.py
      [Install]
      # 在系统启动后加载UNIT
      WantedBy=multi-user.target

      让这个service生效:

      立即启动服务:

      打印菜鸟

      这个对于3D打印好像没有啥影响吧?我都是直接关闭电源 ....

      回复
      打印菜鸟

      不错,这样可以直接关电源而不用担心sd卡了。

      回复
      打印菜鸟

      这两个大电容。不怕炸吗

      回复

      请登录之后再进行评论

      登录
      帖子间隔 侧栏位置: