给树莓派添加重启关机按钮

最近一段时间开始捣鼓树莓派了,弄的都是试验性质的。经常会出现些问题 导致连不上树莓派可能是卡死或者断网什么的,有没有显示器也不知道到底是什么情况。 没办法只有拔掉电源重启了。

后来想想长期这样弄也不是办法SD卡禁不起折腾啊,于是就想办法给它添加了个“关机和重启按钮”。

这里实现上用了GPIO接口,通过读取一个接口的高低状态然后调用 重启以及关机命令。

我的pi是B版v1。GPIO接口和v2稍微不一样。具体看下图 把代码的接口定义替换成对应的就行了

rasberrypi GPIO

下面这个两幅图更容易看

树莓派v1 GPIO接口定义 树莓派v2 GPIO接口定义

另外使用pin的编号有两种方式

  1. Board Pin 这种是自然排序的,重p1到p26
  2. BCM GPIO Broadcom的编号方法 (上图中的绿色方块部分GPIO*)

我在代码中使用的是 *BCM *。

这里用到了两个GPIO接口,7和17 你也可以自己修改下。 一个用来接收按键信号,另外一个驱动led显示状态

led有三个状态 长亮:正在重启, 闪动:正在关机, 不亮:等待状态。

面包板连接 树莓派重启面包板连接图
若你有杜邦线的话也可以不通过面包板连接,按钮那个GND的线也不是必须的,用手直接触摸 GPIO7 也能起到把这个电压拉低的效果

实现代码

使用方法

按一下按钮 系统进入重启状态倒计时10秒,在这段时间内你可以接着按一下切换到关机状态。 按第三下取消关机进入等待状态。这三种状态可通过按按钮不断切换。

参考

上拉电阻和下拉电阻

使用 RPI.GPIO 模块的输入(INPUT)功能

RPI.GPIO WIKI

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注