加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

颠覆考勤方式之---扫码考勤

(2015-12-28 11:16:53)
标签:

arduino

wifi

扫码

杂谈

起因:
      我们公司考勤模式经历过: 打卡->指纹->刷脸 三种方式(鉴于太容易互相帮打卡,所以没采用过刷卡方式); 从最原始的打卡(纸卡)到最先进的刷脸都使用了个遍! 就是没用过不打卡.......(一是BOSS不给, 二是自律性成迷)
      之前使用过和正在用的这些模式都有个大问题, 就是行政统计数据太麻烦, 费时费力, 后2种方案也需要用U盘定期把数据导出Excel再统计, 这不符合高科技公司的做风, 所以决定尝试.....改!

改造要求:
  - 方式要高大上, 跟得上潮流
  - 体验上要足够方便快捷,(不快的话你想急S差1秒钟就迟到的同学么!)
  - 考勤数据能与企业ERP打通,实现自动统计和查询
  - 造价要低!

制定方案:
      采用现在烂大街的方式: 扫码! (别告诉我你没试过支付宝/微信扫码支付喔)
      这方法牛X吧, 有手机的都会用, 有效防呆(不会用), 防帮(代打卡), 防盗.....这个防不了!

准备硬件材料:
      - Dreamer Nano V4.0 (兼容Arduino Leonardo)
      - Z1406 TTL接口一维条码扫描模块(不用二维码的原因主要是成本考虑)
      - ESP8266-01 WIFI模块
     人体热释电红外传感器
      - LED(红)+LED(绿)
      - 220欧电阻2只
      - 万能洞洞一块
      - 3D打印外壳

准备软件资源:
      - 微信公众号一枚
      - 公网服务器一台(需有域名,并与公众号绑定) - 用于公众号/接口数据传递
      - 企业ERP(需支持自定义开发) - 考勤模块数据接口/条码生成逻辑

模块接线
(注: 为了方便, Wifi的EN直接与3.3V并联)


流程设计 - Arduino工作流程

流程设计 - 系统框架流程

制作过程图解
先用洞洞板为Dreamer Nano V4.0和Wifi模块布好局

http://s1/bmiddle/001XDKNBty6Y7BOxU4010&690
背面接线图
Z1406条码模块(上面是扫描头, 下面是开发板,引出的线中, 只有右边4条用得上, 从右至左分别是5V-/5V+/TX/RX)

正面来一张,可以看到扫描头

接线先测试一下
此处测试的关键代码:
#include
#define BAR_TX        10
#define BAR_RX        11
SoftwareSerial bar(BAR_RX, BAR_TX);      //RX, TX
unsigned char cmd_r[4] = {0x02, 0x82, 0x03, 0x83};  //读码命令
void setup() {
bar.begin(9600);  while(!bar);
bar.write(&cmd_r[0],4); //发送扫码命令
}
void loop() {}
运行代码, 启动完成后, 如果扫描头两侧红灯会亮,表示控制成功

接下来准备装模块的模具, 这里用Maya做了简单建模
建好模后,在3D打印机打印.

底部结构(放置洞洞板)

装上底板(指示LED灯也装上了, 接线方法见前面的草图)

http://s4/bmiddle/001XDKNBty6Y7CtHKIbe3&690
第二层结构, 放置扫描头和人体红外模块
第二层装好扫描头和人体红外

http://s2/bmiddle/001XDKNBty6Y7D1gAOR51&690
微信(服务号)中打开自己开发的打卡功能, 出现每10s刷新一次的条码(否则A同事截个图给B同事帮代打卡怎么破)

扫描头扫条码成功,并验证通过时,指示LED亮绿灯(不成功时亮红灯), 并推送微信消息.完成打卡过程.


注意事项
      因同时使用了2个串口模块, 且走的是软串口方式, 需要用到一个与串口通讯相关的listen()函数, 如果不使用它, 大家在测试的时候会发现永远只有一个串口模块能工作,另一个处于不可用的状态. 
      使用方法也很简单, 当你需要监听扫码模块时(假设扫码的软串口名称定义是 bar), 需要先执行 bar.listen(); 需要监听Wifi数据时也是同样道理(假设Wifi的软串口名称定义是 wifi), 需要先执行 wifi.listen().

实用视频演示
(未弄好, 录好再上传)

后期可拓展性
      - 增加蜂鸣器, 扫码成功与否用声音提示比用LED提示更直接
      - 增加小屏幕, 可以显示扫码信息(比如显示当前扫码成功的人名及有无迟到之类)
      - 增加Wifi可配置的功能, 这样成品拿到任何一个新的公司都能配置使用.

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有