NipGeihou's blog NipGeihou's blog
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档

NipGeihou

我见青山多妩媚,料青山见我应如是
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档
  • 资料

  • 笔记

    • 嵌入式工具
    • 电池

    • 从墨水屏项目中学习嵌入式
    • 合宙ESP32C3上手
    • 实践-使用ESP32提醒打卡
      • 前言
      • 计划
        • 基于蓝牙+钉钉API的实现(不可行)
        • 基于蓝牙+询问实现
      • 硬件选择
      • 代码实现
        • 蓝牙
        • 参考
    • EEWORLD Follow me 第2期
    • EEWORLD Follow me 第3期
  • 嵌入式
  • 笔记
NipGeihou
2023-10-26
目录

实践-使用ESP32提醒打卡

# 前言

由于我司使用钉钉人脸打卡,打开只能在公司门口打,但下班时,因为总总原因忘记打卡,即便弄了下班提醒,但因为加了一会班、打车接单就在楼下等原因,还是忘记打开,三次不打卡就要扣钱。

为了不让本就不富裕的我,雪上加霜,我计划弄个什么东西提醒我打卡,而这种提醒是能够感知我真的走了的时候才提醒,而不是单纯基于时间,比如设置 19 点下班提醒打卡,但我可能还不能走,而频繁的提醒又很打扰我。

# 计划

# 基于蓝牙 + 钉钉 API 的实现(不可行)

最开始我打算使用蓝牙来扫描我的手机蓝牙信号强弱来确认我是否已经走了,再通过钉钉 API 检查我是否已经打开,如果还没打卡就发消息询问我是否已经走了。

但经过查阅钉钉的 API 文档,考勤情况只有企业应用或第三方企业应用才有获取权限,那就莫得办法了,抓包的办法暂时不考虑。

# 基于蓝牙 + 询问实现

由于钉钉 API 接口暂时没办法拿到,那就只能在上面的基础上,改为当我人在特定的时间离开,就发消息询问我是否已离开并打卡,如果否(如上厕所)那就等待我回来复位,再一次离开时询问,一直提示到我给出明确反馈为止。

# 硬件选择

我使用合宙的 ESP32C3 来解决,这个开发板内置了 WIFI、低功耗蓝牙,足以满足需要。

# 代码实现

基于 MicroPython 实现

# 蓝牙

# Windows终端

# 可能需要python3.8+
scoop install python38 

# 安装mpremote
pip install --user mpremote

# 安装bluetooth到开发板
python -m mpremote mip install bluetooth
python -m mpremote mip install aioble-central

笔记

安装 mpremote 卡了很久,可能是因为我电脑的 py 环境乱七八糟的原因,安装好后在终端输入 mpremote 根本没反应,重置也不行,最终在参考中获得解决办法。

参考

  • python - 'mpremote' is not recognized as an internal or external command - Stack Overflow (opens new window)
# 查看当前内置的模块
help('modules')

# 检查是否有bluetooth,有说明安装模块成功



# 参考

  • Package management (包管理)— MicroPython latest documentation (opens new window)
上次更新: 2023/10/30, 12:19:18
合宙ESP32C3上手
EEWORLD Follow me 第2期

← 合宙ESP32C3上手 EEWORLD Follow me 第2期→

最近更新
01
元器件
05-23
02
iSCSI服务搭建
05-10
03
磁盘管理与文件系统
05-02
更多文章>
Theme by Vdoing | Copyright © 2018-2025 NipGeihou | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式