查看“项目十七--考勤记录仪”的源代码
←
项目十七--考勤记录仪
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
当今智能手机已成为日常生活中标配,一个最简单的考勤方案可通过手机连接公司路由器,判断用户何时到达单位、中间外出以及何时离开单位。 ==原理== Linux下可通过iw event获取无线连接事件,如下即为某华为手机连接断开路由器的日志: root@microwrt:~# iw event wlan0: new station 58:2a:f7:84:xx:xx wlan0: del station 58:2a:f7:84:xx:xx 如果需要时间信息,可通过iw event -t命令获取。 通过/tmp/dhcp.leases中dhcp信息,即可根据mac地址获取设备名称,或者人工统计设备mac地址与人员对应关系。 ==示例== 为解决pipe问题,需要使用stdbuf,不过官方源中的coreutils-stdbuf缺少libstdbuf.so,不能使用。microwrt官方repo中已提供, 各位可在/etc/opkg.conf文件末尾加入如下一行: src/gz microwrt http://repo.microduino.cn/microwrt/ 并且移除option check_signature 1,然后运行 opkg update && opkg install coreutils-stdbuf 在/www目录下添加文件status.html,内容如下: <!DOCTYPE html> <html> <head> <title>Wireless Monitor</title> </head> <body> </body> </html> 编写脚本monitor.sh并运行 #!/bin/sh iw event | stdbuf -oL grep station | stdbuf -oL cut -d ' ' -f 2,4 | while read line do cmd=$(echo $line | cut -d ' ' -f 1) mac=$(echo $line | cut -d ' ' -f 2) if [ "new" == "$cmd" ]; then cmd='online' else cmd='offline' fi inline="<tr><td>"$(date "+%Y-%m-%d %H:%M:%S")"</td><td>"$cmd"</td></tr>" if grep $mac /www/status.html > /dev/null; then sed -i "s%<!--$mac-->%<!--$mac-->\n$inline%g" /www/status.html else hostname=$(grep $mac /tmp/dhcp.leases | cut -d ' ' -f 4) <nowiki>sed -i "s%<body>%<body>\n<h3>$hostname($mac)</h3>\n<table border=\"1\">\n<!--$mac-->\n$inline\n</table>%g" /www/status.html</nowiki> fi done ==展示== [[File:micrwrt-iwevent.png|700px|center]]
返回至
项目十七--考勤记录仪
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息