给树莓派添加开、关机键
声明
作为一个硬件爱好者、嵌入式系统工程师、技术宅,树莓派肯定是要玩一玩的,但是用的时间长了总会发现它有一些不完美的地方,比如:没有电源键!
常用的关机方法有两种(外接屏幕和键盘的就不说了):
- 远程登录然后敲命令(这是最合适的关机方法,但是太麻烦,如果没有电脑在身边就没法关机了)
- 拔电源(简单粗暴,但很容易导致文件损坏)
所以为了愉快的使用树莓派,最好还是给它添加一个像电脑一样的电源键,百度了一大圈发现国内(没错,我就是针对国内,来来回回就那么几篇文章,还反反复复互相抄)只有一种添加电源键的方法,那就是写个python脚本、或者其他脚本、或者编译一个程序,反正原理都是一样的,让这个脚本(或程序)开机启动,程序中一直检测设置为电源键的GPIO,如果被触发则关机。这个方法虽然能解决问题,但真的low爆了!!!而且只能关机,不能开机。
在这里跟大家分享一个非常优雅,能关机也能开机的方法:
打开并仔细阅读 /boot/overlays/README
好了今天的分享到此结束,谢谢大家。
其实 /boot/overlays/README 里面已经说的很详细了,为了造福广大人民群众,我就整理一下。
不少人看见英文就头疼,而且这个文件有上千行,很少有人会仔细阅读,这里我就只把电源相关的内容摘录出来(不同版本系统文件的内容略有不同):
这里已经说得很明白了,只要在 /boot/config.txt 中添加相关配置就能实现关机。
比如像这样:
保存并重启,之后你只需要在GPIO3和GND之间接个按键就能实现关机,是不是很简单/p>
开始划重点!!考试要考的!!记住了!!
- 不需要添加任何配置,正常关机后不切断树莓派电源,将GPIO3拉到低电平就能开机!没错,这样就实现了开机键!如果不需要GPIO3做开机键,请自行阅读 /boot/overlays/README 中 gpio-poweroff 相关内容
- 前面提到的配置默认使用GPIO3,也就是SCL1作为电源键,占用了I2C接口,虽然可以用其他GPIO软件模拟I2C,但显然很不放方便,最好如下改成其他GPIO,注意这样改了以后这个GPIO口只能做关机键使用,开机键还是GPIO3,目前我没有找到自定义其他开机键的方法。
- GPIO3与SCL1冲突,具体表现为,当启用I2C以后,GPIO3做SCL1使用,因此只能使用GPIO3开机,不能关机。所以如果想只用一个按键作为开、关机键,必须放弃硬件I2C,用其他引脚软件模拟I2C;如果一定要即有开、关机键又同时使用硬件I2C,那么就用GPIO3做开机键,另外配置一个按键做关机键。
- 以上内容我只在树莓派3B+(系统版本:Raspbian Buster with desktop, Image with desktop based on Debian Buster, Version:July 2019, Release date:2019-07-10, Kernel version:4.19)上做过验证,其他版本不保证可用
/boot/overlays/README 中还有很多非常有用的配置,有兴趣的同学自己去研究。
最后希望大家赶紧行动起来!!抛弃那些low爆的开关机按键方案吧!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!