【树莓派自动化应用实例】整点提醒自己休息五分钟
背景介绍我有一个习惯,定闹钟每隔60分钟左右,提醒自己休息一次。我发现自己有时候长时间思考,很容易拘泥于细节之中。适当的简单休息过后,往往会对正在解决和处理的问题有新的认识和发现,有事半功倍的奇效。 不过大部分手机闹钟都不支持这种以小时为单位的周期闹铃。所以,我以前每次都是都手动调整闹钟时间。总感觉有点 Low!于是,我就写了个简单的发邮件的 Lua 脚本,放到树莓派上作为一个shell命令使用;然后在每周一到周五的9点至23点整点各执行一次发邮件的操作。邮件是发到了我的 QQ 邮箱。收到QQ邮件后,左上角会有一个通知悬浮窗,体验比手机的震动声好了很多。 另外,之所以会选择使用 Lua 语言,只是最近自己刚好在看 Lua 而已,用其他语言也是可以的。 在树莓派上配置必要的 Lua 环境安装 LuaJIT树莓派的 debian 官方推荐定制系统,内置有 Lua 5.1.5.但是 LuaJIT 使用了 JIT 技术,执行效率更高,所以更推荐安装和使用。LuaJIT 对应的也是 Lua 5.1 的语法。 你可以在 LuaJIT 下载页 右键查看最新的 LuaJIT 稳定版本,然后参照执行: wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz tar xzf LuaJIT-2.0.5.tar.gz cd LuaJIT-2.0.5 make && sudo make install 验证是否安装成功,请执行: luajit -v 安装成功,会输出: LuaJIT 2.0.5 -- Copyright (C) 2005-2017 Mike Pall. http://luajit.org/ 安装 luarocksluarocks 是 Lua 的包管理工具。在树莓派上需要从源码安装 luarocks 。这需要一些技巧。 你可以到 luarocks下载页 查看最新的luarocks版本,然后参考执行以下命令: wget http://luarocks.github.io/luarocks/releases/luarocks-2.4.3.tar.gz tar xzf luarocks-2.4.3.tar.gz cd luarocks-2.4.3 luarocks 在编译前,需要先进行配置。完整的配置内容,参见:Customizing your settings。基于 LuaJIT 的配置命令如下: ./configure --lua-suffix="jit" 然后编译安装: make build sudo make install 验证是否安装成功: luarocks 安装 luasocketluasocket 这个库,下面的代码会用到,需要提前安装下。 如果 luarocks 安装成功,那其他的 lua 库安装就非常简单了: sudo luarocks install luasocket 简单的 Lua 脚本: 发送邮件提示自己注意休息新建一个 rest_reminder.lua 文件 vi rest_reminder.lua 然后输入以下 Lua 代码: #!/usr/bin/env luajit local smtp = require("socket.smtp") from = "username@exapmle.com" --发件人 --收件人列表 rcpt = { "your_qq_number@qq.com" } mesgt = { headers = { -- 只是文字显示内容. to = "your_qq_number@qq.com",--收件人 subject = "请休息五分钟!" --主题 },body = "您已连续思考一小时,请先休息五分钟吧!" } r,e = smtp.send{ from = from,rcpt = rcpt,source = smtp.message(mesgt),server = "smtp.example.com",user = "username@exapmle.com",password = "username_pwd" } if not r then print(e) else print("发送成功!") end 如果你想实现一些更复杂的操作,最好在常用电脑上配置一个 Lua 完整的开发环境。 想要文件能执行当做命令执行,还需要给文件添加可执行权限: chmod +x ./rest_reminder.lua 测试代码是否有效: ./rest_reminder.lua 正常执行的话,你的收件人邮箱(或邮件垃圾箱),应该会收到一封邮箱。 注意:
使用 crontab 来定时执行crontab 简单实用,如果不是很熟悉,可以把它简单当做一个高度自定义的定时器。 假设脚本的完整路径是 /home/pi/task/rest_reminder.lua 。 执行: crontab -e 在打开的内容区末尾新增: 00 9-23 * * * /home/pi/task/rest_reminder.lua 保存退出,正常应该会看到提示: crontab: installing new crontab 此时,我们的定时脚本已经生效了。即使重启电脑,这个脚本依然可以正常定时执行。 crontab 借助于 cron 服务。在必要时,你可以使用 sytemed 的命令来操作 cron 服务: # 查看状态 sudo systemctl status cron # 激活服务 sudo systemctl enable cron 参考文档
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |