树莓派Pico的小应用
开始的设想
pico出来一段时间了,这个只要4刀的小开发板被各硬件营销号捧得很高。本来不以为意,但在肝动森的某个下午,看到家门口的邮箱mail_box突然觉得很可爱,就想看看能不能用pico实现一个成品版。想当然的认为只要有wifi模块+步进电机模块就能搞定。
于是,开始了pico的学习。
pico出来一段时间了,这个只要4刀的小开发板被各硬件营销号捧得很高。本来不以为意,但在肝动森的某个下午,看到家门口的邮箱mail_box突然觉得很可爱,就想看看能不能用pico实现一个成品版。想当然的认为只要有wifi模块+步进电机模块就能搞定。
于是,开始了pico的学习。
共七位,最少六位,表示如下,其中对英文缩写、特殊字符大小写不敏感
* | * | * | * | * | * | * |
---|---|---|---|---|---|---|
秒 | 分 | 时 | 日 | 月 | 周 | 年 |
0-59 | 0-59 | 0-23 | 1-31 | 1-12/JAN-DEC | 0-7/MON-SAT | 1900 可选 |
, - * / |
, - * / |
, - * / |
, - * ? / L W C |
, - * / |
, - * ? / L C # |
, - * / |
符号表示如下:
符号 | 说明 |
---|---|
* |
重复当前位置的周期,如1 * * * * ? 表示每分钟的第一秒执行 |
, |
用于指定多个值,如0 10,20,30 * * * ? 表示每小时的10、20、30分执行 |
? |
占位符 |
- |
表示区间 |
/ |
a/b表示以 a 为起点步长为 b 的时间序列,如5/10 * * * * ? 表示每分钟第5、15、25、35、45、55秒执行 |
L |
月份最后一天或星期六,周位上 6L 表示月份的最后一个周五执行,L和 W 可以在日位中联合使用,LW 表示这个月最后一周的工作日 |
W |
后边最近的工作日,1W 1日如果是周五,那就在4日执行,不可跨月,L和 W 可以在日位中联合使用,LW 表示这个月最后一周的工作日 |
# |
a#b 表示当月第 b 个星期 a,如 6#1 当月第一个星期五 |
C |
关联日历计算结果 |
1 | # 确保存在文件 /etc/crontab,若没有则新建 |
我用terminal-notifier
来实现terminal推送提醒功能,脚本如下:
1 | # 每日凌晨更新homebrew |
执行时单线程,当抛出运行时异常时Timer 将停止所有的任务执行,会影响其他任务
1 | public void demo() { |
不影响其他任务
1 | public void demo() { |
Spring自动加载和管理该定时任务
1 | @SpringBootApplication |
在项目中使用需要引入quartz依赖,并且quartz有其独立的数据库,来支撑复杂的任务调度,详见官方文档
烧录工具
系统
步骤
cd /etc/netplan/50-cloud-init.ymal
1 | network: |
使文件生效
1 | netplan generate |
Ping一下网址看是否连通
手动安装下net-tools
: apt-get install net-tools
,使用命令ifconfig -a
查看本机IP
ssh连接树莓派
1 | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
解决:清理之前保存的认证密钥
1 | // 查看 |
cat ~/.ssh/pi_rsa.pub | ssh <USERNAME>@<IP-ADDRESS> 'cat >> .ssh/authorized_keys’
ssh -i ~/.ssh/pi_rsa <USERNAME>@<IP-ADDRESS>