visionsl 发表于 2015-12-28 11:55:38

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

本帖最后由 visionsl 于 2015-12-28 12:09 编辑

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

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

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

准备硬件材料:
      - 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模块布好局



背面接线图


Z1406条码模块(上面是扫描头, 下面是开发板,引出的线中, 只有右边4条用得上, 从右至左分别是5V-/5V+/TX/RX)



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



接线先测试一下
此处测试的关键代码:
#include <SoftwareSerial.h>
#define BAR_TX      10
#define BAR_RX      11
SoftwareSerial bar(BAR_RX, BAR_TX);      //RX, TX
unsigned char cmd_r = {0x02, 0x82, 0x03, 0x83};//读码命令
void setup() {
bar.begin(9600);while(!bar);
bar.write(&cmd_r,4); //发送扫码命令
}
void loop() {}

运行代码, 启动完成后, 如果扫描头两侧红灯会亮,表示控制成功{:5_179:}

接下来准备装模块的模具, 这里用Maya做了简单建模


建好模后,在3D打印机打印.




底部结构(放置洞洞板)



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



第二层结构, 放置扫描头和人体红外模块



第二层装好扫描头和人体红外



与第一层结合并



再来一张




底层特写



成品



微信(服务号)中打开自己开发的打卡功能, 出现每10s刷新一次的条码(否则A同事截个图给B同事帮代打卡怎么破{:5_166:})



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



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

实用视频演示
(未弄好, 录好再上传{:5_177:})

后期可拓展性

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


原文传送门>>>>>>博客

visionsl 发表于 2016-1-5 11:56:41

tyyx 发表于 2016-1-4 22:45
请问能分享下除02 82 03 83以为的其他指令吗?
淘宝上买的扫描模块貌似一通电就是连续扫描的设置。。。。 ...

我用的这款, 发送02 82 03 83就是开启扫描模式, 再发送一次就是关闭
没有其它指令了
扫描头的工作模式都是用附带的手册(上面有不同功能的条码给你扫描)来完成的

tyyx 发表于 2016-1-4 22:45:20

visionsl 发表于 2015-12-30 16:40
这个扫描头是我找做扫码枪设备的朋友帮拿的, 所以没淘宝链接
其它同类型的应该道理是通用的. ...
请问能分享下除02 82 03 83以为的其他指令吗?
淘宝上买的扫描模块貌似一通电就是连续扫描的设置。。。。。那家店提供的技术资料看不太懂。。。。

visionsl 发表于 2015-12-29 10:12:29

yoyojacky 发表于 2015-12-29 01:31
这么拼你同事知道么?不过想法还是不错的,我觉得同事截图打卡也不是没有可能。 ...

同事正在小范围测试中 ;P
截图打卡已经考虑过, 条码生成只有5秒有效, so,基本没可能截图打卡{:5_169:}

丄帝De咗臂 发表于 2015-12-28 12:56:24

搞死。。。哈哈

孙毅 发表于 2015-12-28 13:33:23

这个有想法!就是考勤时,手机还必须走流量。。。。。这个要求不低啊。

visionsl 发表于 2015-12-28 13:43:51

孙毅 发表于 2015-12-28 13:33
这个有想法!就是考勤时,手机还必须走流量。。。。。这个要求不低啊。

进入办公区域时, 已经有Wifi啦:lol

dsweiliang 发表于 2015-12-28 13:57:36

visionsl 发表于 2015-12-28 13:43
进入办公区域时, 已经有Wifi啦

阿~公司有wifi,那找网管查一下日志就能知道员工的上班情况啦,都不用打卡机了

visionsl 发表于 2015-12-28 14:50:06

dsweiliang 发表于 2015-12-28 13:57
阿~公司有wifi,那找网管查一下日志就能知道员工的上班情况啦,都不用打卡机了 ...

一来不是100%的人会入Wifi
二来这种日志不便于统计

iooops 发表于 2015-12-28 21:25:23

考个勤也是个技术活 = =

yoyojacky 发表于 2015-12-29 01:31:45

这么拼你同事知道么?不过想法还是不错的,我觉得同事截图打卡也不是没有可能。

何处不江南 发表于 2015-12-29 09:53:13

你是不是给自己留了后门。。

virtualwiz 发表于 2015-12-29 12:15:09

大赞~~纯DIY呀:lol~

万一手机没电了会怎么样:loveliness:

kevinzhang19701 发表于 2015-12-29 15:37:10

有意思,有启发。

tyyx 发表于 2015-12-29 23:01:46

淘宝上没搜到Z1406条码模块怎么办?
能直接扫屏幕哦。。。。

visionsl 发表于 2015-12-30 16:40:28

tyyx 发表于 2015-12-29 23:01
淘宝上没搜到Z1406条码模块怎么办?
能直接扫屏幕哦。。。。

这个扫描头是我找做扫码枪设备的朋友帮拿的, 所以没淘宝链接
其它同类型的应该道理是通用的.

Geemi 发表于 2015-12-30 17:56:39

不错不错…………白膜一下

tyyx 发表于 2015-12-30 23:27:46

楼主快点公布源程序啊。。。。
今天在淘宝上买了2个条码扫描模块哦。

另外,考虑过微信退出后,用同事账号登陆帮同事签到没?

visionsl 发表于 2016-1-4 18:51:24

tyyx 发表于 2015-12-30 23:27
楼主快点公布源程序啊。。。。
今天在淘宝上买了2个条码扫描模块哦。



目前不少人微信绑定了银行卡, 也有红包等功能
账号不会轻易给别人吧?

visionsl 发表于 2016-1-5 12:01:04

附上条码手册说明

tyyx 发表于 2016-1-5 14:39:49

@visionsl 谢谢!

页: [1] 2
查看完整版本: 颠覆考勤方式之---扫码考勤