树莓派打卡签到

实习要求:上班和下班必须要签到。我这么懒,实习是肯定要实习的,但是签到嘛,还是要想办法摸摸鱼的啦!


树莓派介绍

树莓派是一款信用卡大小的超小型电脑

那么我们有个大胆的想法,能不能用树莓派实现打卡的心愿呢。好歹也是个计算机,对吧。

树莓派的购买及组装

购买清单

就我实际的使用而言,必需品:一块主板,网线,3个散热片,外壳,电源,16g sd卡,读卡器。

组装部分 https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up/4

大家拿着自己的板子(树莓派4)对照着图找就好了

装系统

我这里推荐大家装 Raspbian Buster with desktop 对于官网NOOBS系统我尝试过了,对于我们没有买显示器的而言,不友好,需要额外的操作。

系统下载完成,就需要烧录 这里需要先SD卡格式化,使用 SD Card Formatter(支持windows和mac)

烧录系统到sd卡
这里使用win32Diskimager

链接:https://pan.baidu.com/s/1loQPydCsw9Cam8Us2CbpxQ
提取码:wiis
复制这段内容后打开百度网盘手机App,操作更方便哦

烧录完成,组装完成。设置ssh连接,最新的系统默认是未开启ssh,这里我们需要设置开启ssh。将SD卡连接到电脑上并打开,直接新建“SSH”文件(无后缀)即可

算了,接下来还有网线什么的连接。写起来太长,都还没到主菜。详细的设置大家可以参考
https://blog.csdn.net/weixin_43895902/article/details/100919851#_142

就我出现的几个问题给大家说一下。

    1. ssh连接,我是在学校里,学校网络比较复杂。我是电脑使用无线连接手机热点,树莓派和电脑网线连接。无线网开启共享给有线。cmd中arp-a查看分配的ip,一般树莓派默认是192.168.137.x 默认密码
      raspberry 用户名 pi
    1. 开启的vnc无法显示,这是因为你屏幕的分辨率问题,按教程修改就好
    1. 自己的树莓派下载很慢,这时需要设置软件源
    1. 不推荐大家使用swap分区,会有损sd卡的性能。装完系统默认是开启100mb的sd卡空间提供swap。
    1. 2021发现有一个gui的安装工具,大家google搜索 -树莓派推Raspberry Pi Imager工具- 即可

主菜到了,树莓派签到功能

树莓派直接放在公司里,有电有网,直接就能定位。除了让树莓派自动打卡,我还想让树莓派打卡完成之后给我发一封邮件。一步一步来

设置邮件功能

配置msmtp和mutt自动发送邮件

mutt: 是一个Linux下的邮件程序,Mutt 更像一个文件管理器,只不过它管理的是email
msmtp: 是Linux下一个非常简单易用的smtp客户端

#安装
sudo apt install msmtp mutt
# 配置msmtprc
cd ~               #进入用户根目录
touch msmtp.log        #创建日志文件
chmod 600 msmtp.log    #查看日志
touch .msmtprc         #创建.msmtprc文件
chmod 600 .msmtprc     #msmtprc权限
sudo nano .msmtprc     #添加如下内容


account default
host smtp.163.com    #需要开启163邮箱的SMTP服务
from xxx@163.com     #你的邮箱地址
auth plain
user xxx@163.com     #你的邮箱地址
password your_password   #是SMTP授权码
logfile /root/msmtp.log # 在发送邮件之后程序会把发送日志写到这个路径的文件里



#配置mutt
cd ~
touch .muttrc
sudo nano .muttrc  #添加以下内容,默认填就好了


set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="Alpha"  #收件人名字
set from="xxx@163.com"
set editor="vim"

#测试
测试配置文件:msmtp -P
测试smtp服务器:msmtp -S
echo "你好,我是测试用的,谢谢" | mutt -s "你好啊" xxx@163.com

脚本定时/开机自启动

这个要单独列出来一下。因为一个脚本的核心还是自动化,方便实用。

#开机自启动
sudo nano /etc/rc.local
sudo bash /home/pi/sendmail.sh                 #我的sendmail.sh是开机发送自己的ip,文末会贴上
#定时任务
#cron进行定时器
crontab -e         #编译定时任务
// 从左往右:  分 时 日 月 星期 
# m h  dom mon dow   command
30 5   10   3   *   touch /tmp/test.log  // 表示每年3月10号5点30分,执行touch /tmp/test.log
10 18   *   *   *   echo "Hello World" > /home/pi/log  // 每天的18点10分执行echo "Hello World" > /home/pi/log

抓取定位包

image-20211119192556650

我使用的是eteams打卡。

其中服务端做校验的就是sign。其他参数都是固定的。

尝试js中查找sign

image-20211119192056788

image-20211119192126840

image-20211119192741268

image-20211119194231595

encode.js链接: https://pan.baidu.com/s/1pTfADZwpctNxOVYFuSx_pQ 提取码: 2idi

JsParser("encode.js", "signSecret", "web"+uid+ETEAMSID+tenantkey)

至此基本打卡的大概流程走完了。

一些自己使用的脚本:

  • 1.定时ip任务: #!/bin/bash
#!/bin/bash
  
# check network availability
  
# get the IP address of eth0, e.g. "192.168.16.5"
ETH0_IP_ADDR=`/sbin/ifconfig eth0 | sed -n "2,2p" | awk '{print substr($2,1)}'`
  
# send the Email
echo "Current time: `date '+%F %T'`. Enjoy it" | mutt -s "IP Address of Raspberry Pi: $ETH0_IP_ADDR" xxx@163.com

  • 2.报告车况,车辆到站时间
  TODO
posted @ 2022-01-06 09:24  how=time  阅读(182)  评论(0编辑  收藏  举报