给树莓派添加开关机键
给树莓派添加开、关机键
声明
本文由u013062709原创,禁止二次修改发布。转载及引用内容请注明出处,并标明本站网址。文中程序仅供学习使用,本人不承担任何由使用文中代码产生的法律责任。
作为一个硬件爱好者、嵌入式系统工程师、技术宅,树莓派肯定是要玩一玩的,但是用的时间长了总会发现它有一些不完美的地方,比如:没有电源键!
常用的关机方法有两种(外接屏幕和键盘的就不说了):
- 远程登录然后敲命令(这是最合适的关机方法,但是太麻烦,如果没有电脑在身边就没法关机了)
- 拔电源(简单粗暴,但很容易导致文件损坏)
所以为了愉快的使用树莓派,最好还是给它添加一个像电脑一样的电源键,百度了一大圈发现国内(没错,我就是针对国内,来来回回就那么几篇文章,还反反复复互相抄)只有一种添加电源键的方法,那就是写个python脚本、或者其他脚本、或者编译一个程序,反正原理都是一样的,让这个脚本(或程序)开机启动,程序中一直检测设置为电源键的GPIO,如果被触发则关机。这个方法虽然能解决问题,但真的low爆了!!!而且只能关机,不能开机。
在这里跟大家分享一个非常优雅,能关机也能开机的方法:
打开并仔细阅读 /boot/overlays/README
好了今天的分享到此结束,谢谢大家。
其实 /boot/overlays/README 里面已经说的很详细了,为了造福广大人民群众,我就整理一下。
不少人看见英文就头疼,而且这个文件有上千行,很少有人会仔细阅读,这里我就只把电源相关的内容摘录出来(不同版本系统文件的内容略有不同):
Name: gpio-shutdown
Info: Initiates a shutdown when GPIO pin changes. The given GPIO pinis configured as an input key that generates KEY_POWER events.This event is handled by systemd-logind by initiating ashutdown. Systemd versions older than 225 need an udev ruleenable listening to the input device:ACTION!="REMOVE", SUBSYSTEM=="input", KERNEL=="event*", \SUBSYSTEMS=="platform", DRIVERS=="gpio-keys", \ATTRS{keys}=="116", TAG+="power-switch"This overlay only handles shutdown. After shutdown, the systemcan be powered up again by driving GPIO3 low. The defaultconfiguration uses GPIO3 with a pullup, so if you connect abutton between GPIO3 and GND (pin 5 and 6 on the 40-pin header),you get a shutdown and power-up button.
Load: dtoverlay=gpio-shutdown,<param>=<val>
Params: gpio_pin GPIO pin to trigger on (default 3)active_low When this is 1 (active low), a fallingedge generates a key down event and arising edge generates a key up event.When this is 0 (active high), this isreversed. The default is 1 (active low).gpio_pull Desired pull-up/down state (off, down, up)Default is "up".Note that the default pin (GPIO3) has anexternal pullup.
这里已经说得很明白了,只要在 /boot/config.txt 中添加相关配置就能实现关机。
比如像这样:
# 使用GPIO3(这里的GPIO指3BCM GPIO编号,也就是SCL1)作为电源键,下降沿为按下,上升沿为弹起,内部上拉
dtoverlay=gpio-shutdown
保存并重启,之后你只需要在GPIO3和GND之间接个按键就能实现关机,是不是很简单?
开始划重点!!考试要考的!!记住了!!
- 不需要添加任何配置,正常关机后不切断树莓派电源,将GPIO3拉到低电平就能开机!没错,这样就实现了开机键!如果不需要GPIO3做开机键,请自行阅读 /boot/overlays/README 中 gpio-poweroff 相关内容
- 前面提到的配置默认使用GPIO3,也就是SCL1作为电源键,占用了I2C接口,虽然可以用其他GPIO软件模拟I2C,但显然很不放方便,最好如下改成其他GPIO,注意这样改了以后这个GPIO口只能做关机键使用,开机键还是GPIO3,目前我没有找到自定义其他开机键的方法。
# 使用gpio_pin=17,即GPIO_0(物理引脚PIN_11)做关机键
dtoverlay=gpio-shutdown,gpio_pin=17,active_low=1,gpio_pull=up
- 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爆的开关机按键方案吧!
给树莓派添加开关机键相关推荐
- Android 系统(151)----添加开关机铃声
一.制作bootanimation.zip(windows)和准备开机铃声bootaudio.mp3 1.新建文件夹:bootanimation 2.在文件夹bootanimation中新建文件夹pa ...
- 直接按开关机键重启服务器
出现了这个界面: 按F1 进入系统
- 给树莓派添加一个开、关机按键(改进版本)
声明 本文由晓宇(xiaoyu_ebox)原创,转载及引用内容请注明出处,并标明本站网址.文中程序仅供学习使用. 关键词 树莓派 开关键 开关机按键 修改开关键 GPIO17开关键 问题起因 一直以来 ...
- 计算机关机键 自动重启,电脑按了关机键后电脑又自动重启了,怎么处理 啊
一般关机重启有两种,一个是关机前的操作卡了引起的,另一个是每回关机都是重启,下面分别说一下. 1)关机前电脑卡引起的: 玩游戏.看视频.或操作大程序.或电脑用的时间长了,这时是很卡的,您要有一些耐心等 ...
- 计算机休眠变关机,电脑如何按关机键变成休眠
电源键,早已经司空见惯的按钮,其实我们可以自己设置按下电源按钮后的功能,比如关机.休眠睡眠,甚至是无任何操作,如果发现电源键有异常,也可以来这里管理,下面就由学习啦小编跟大家分享电脑按关机键变成休眠的 ...
- 怎么使用计算机开机关机,笔记本电脑怎么开关机_笔记本电脑正确的开关机步骤-win7之家...
我们在使用笔记本电脑之后,都会进行开关机,看似简单的开关机,如果方法不正确的话,就会对电脑使用寿命有影响,所以正确的开关机可以帮助我们延长电脑使用寿命,那么笔记本电脑怎么开关机呢?针对这个问题,本文给 ...
- 计算机强制关机原理,电脑远程开机 ( 与开关按键作用一样可强制开关机 , 非网络唤醒(WOL) ) (ESP32 8266)...
远程开关及功能, 而且是直接控制主机开关机键, 而不是使用 `Wake On LAN(WOL)` 的功能, 这样的好处是有绝对的控制权,就算电脑死机,也可以触发长按强制关机的命令,而且也不会出现`WO ...
- 服务器经常开关机会影响吗,频繁给手机重启/开关机,会对手机产生危害吗?...
原标题:频繁给手机重启/开关机,会对手机产生危害吗? 频繁的给手机重启/开关机,对手机的危害可以忽略不计,因为如今的智能手机没那么脆弱,并不会因为你频繁开关机就造成损坏,非要说"危害&quo ...
- python语音控制智能家电_Python 树莓派智能音箱语音控制电脑开关机-Python 实用宝典...
完成下面这个有趣的实验,你所需要的东西有: 1.路由器(能够形成局域网,且电脑已用网线连接) 2.一个智能音箱(本教程使用的是亚马逊 Echo Dot 2) 3.主板支持wake on lan (大部 ...
最新文章
- swift 语言评价
- 使用qwt作曲线图——有网格线背景的画法
- getDeclaredField和getField的区别
- UpdatePanel里使用FileUpload
- Ehcache 整合Spring 使用页面、对象缓存
- 100个网络基础必备知识 ,值得收藏!
- java ee maven_针对新手的Java EE7和Maven项目–第8部分
- 人群频率 | gnomAD数据库简介 (一)
- Django:模型层ORM,创建模型类,字段类型
- CSS定位中“父相子绝”
- 斑斓中国BlenderCN项目库
- python学习之路四(类和对象1)
- Android UI:使用矢量图,抛弃PNG
- CAD贱人工具箱6.0免注册
- python:BeautifulSoup解析爬取网页文章demo
- php编写出一个时钟,用HTML5实现一个时钟
- 设置透明主题引起动画失效以及打开其他应用闪现桌面图标的问题
- java modifier access_Java中的默认访问修饰符是什么? (What is the default access modifier in Java?)...
- Python numpy函数:shape用法(简单样本及样本对应变量场景)
- 从内存角度深入看结构体(window/linux)大小