2 Star 11 Fork 8

Walkline / MicroPython WS2812 Led Clock

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

MicroPython WS2812 Led Clock

项目介绍

基于安信可ESP-C3-12F模组,搭配WS2812矩阵灯珠,用于显示当前时间

硬件介绍

硬件电路使用 立创EDA 设计,完全适合新手小白使用,PCB 板是在 深圳嘉立创 下单打样的,本着薅羊毛的原则,板子尺寸限制在了10cm * 10cm以内,原理图文件可以在 立创开源硬件平台 查看,这里不再赘述

主控模组选用了安信可 ESP-C3-12F,并非常用的ESP32-WROOM-32D

软件介绍

工作流程

软件整体工作流程大致如下:

  • 第一次启动或复位配网信息时,进入配网模式
  • 如果输入信息有误,尝试联网1分钟后会自动重启并重复以上步骤
  • 联网成功后保存配网信息(写入sta_config.py文件)并自动重启
  • 重启后联网校时,并显示当前工作模式的对应内容
  • 在此之后:
    • 每间隔60秒刷新一次时间
    • 每间隔0.1秒检测一次环境亮度,如果环境亮度发生变化则自动调整屏幕亮度
    • 每间隔1小时刷新一次台历
    • 每间隔1小时进行一次联网校时
  • 如果重启后联网校时失败则会继续重启,保证时间可以正确显示

如果微信配网失败,可以尝试使用 app 进行配网,总有一个可以成功~

工作模式

目前一共设计了三种工作模式,分别为:

  • 时钟模式
  • 台历模式1
  • 台历模式2

如何阅读时钟模式台历模式1显示的内容可以参考Led 显示部分的介绍

台历模式2可以显示全部日期信息,要使用此模式功能需要更换前面板

按键功能

板子上集成了2个功能按键、1个复位和1个下载按键,按键功能如下:

  • KEY1
    • 短按:
      • 时钟模式台历模式1显示时临时切换到另一种工作模式,时长20秒
      • 菜单模式下为退出菜单模式,退出时不保存修改内容
    • 长按:
      • 清除配网信息,再次长按切换到另一种配网方式
      • 菜单模式下为退出菜单模式,退出时不保存修改内容
  • KEY2
    • 短按:
      • 屏幕显示开关
      • 菜单模式下循环切换菜单项
    • 长按:进入/退出工作模式选择菜单,退出时保存修改内容
  • RST:手动重启设备
  • BOOT:按住后给设备上电或按下RST键,可进入下载模式

设备配网

设备第一次使用需要连接无线网络并且具备外网访问权限才能正常使用,目前支持使用蓝牙SmartConfig方式进行配网,默认为蓝牙方式

长按KEY1键可以在蓝牙SmartConfig之间进行切换,以不同背光颜色区分:

  • 蓝色:蓝牙方式
  • 绿色:SmartConfig方式

蓝牙配网

设备启动时默认进入蓝牙模式

使用微信扫描下方的小程序码,或者微信搜索BLE Config小程序按照提示输入信息即可进行配网操作

SmartConfig 配网

SmartConfig配网可以选择以下几种方法:

  • 关注 安信可科技 微信公众号,点击 应用开发→微信配网
  • 关注 乐鑫信息科技 微信公众号,点击 商铺→Airkiss 设备
  • 安装 EspTouch for Android,点击 EspTouch

输入 Wi-Fi密码 后点击 连接按钮,等待即可

如果长时间获取不到信息,则需要手动重启设备并重试

前往观看 配网演示视频

ESP-C3-12F模组只支持连接2.4G无线网络,所以配网时要求路由器或热点必须为2.4G模式,2.4G5G混合模式也不能正常工作

Led 显示

时钟模式

13点35分

  • 最大的区域显示当前时间的小时数字
  • 最右侧区域显示当前时间分钟数的十位数
  • 最下边区域显示当前时间分钟数的个位数

因此,上图显示的时间为13点35分

台历模式1

5月20日

  • 最大的区域显示当前日期
  • 最右侧两列区域显示当前月份
  • 最上边区域显示当前星期

因此,上图显示的日期为5月20日星期四(如果非要问是哪一年?那可能就是2004年吧)

台历模式2

台历模式2显示月份星期方式与台历模式1相同,不同之处是需要更换前面板以显示当前日期

感谢扇贝物联的有心大叔提供的设计方案

如何烧录固件

1. 在线烧录固件

推荐使用在线烧录工具进行固件的烧录

在线烧录工具提供 3 种不同的固件

  • 正式版:可以确保稳定运行,但是无法自动更新代码
  • 测试版:每次设备重启后都会联网进行在线更新,但是无法确保稳定运行
  • 开发版:不包含程序文件,仅用于项目代码调试

2. 本地烧录固件

推荐使用 AMPY Batch Tool,以下说明使用ab 工具进行讲解

设备连接到电脑,打开终端,输入命令,根据提示信息进行操作即可:

$ cd path/to/repo
$ ab --flash # 选择 esp32c3 开头的固件文件

如果要设置屏幕亮度或其它设置,可以进行如下操作:

# 修改 config.py 文件相关内容并保存文件
$ ab abc_config

根据提示信息选择端口号就可以上传修改后的config.py文件,之后重启设备即可

前往观看 设备使用演示

硬件测试

运行项目中的hardware_test.py即可同时测试Led按键光敏电阻

$ cd path/to/repo
$ ab --repl

# 使用快捷键 Ctrl+R 选择 hardware_test.py 并回车

计划增加的功能

  • 目前配网时没有任何提示信息,准备增加一个提示画面(或动画)
  • 计划中还有一个模式切换功能,无非就是手电或者各种乱闪
  • 还可以增加一个整点提醒功能
  • 增加蓝牙配网功能
  • 增加台历功能

存在的问题

  • 为了省事没有给每一颗 LED 搭配电容,当全部 LED 以白色最大亮度(255)点亮时,会因为供电不足导致无法继续工作,所以解决方案是降低最大亮度的上限值,目前仅使用10%亮度,不使用遮光板的前提下亮度已经足够

  • SmartConfig偶尔出现卡死的情况,不使用串口调试无法发现,不过无线连接本来就是个概率事件,也能说得过去。。。。吧

  • SmartConfig在我的WIFI6路由器下使用会出现无法发送配网完成通知的情况,无解

相关项目

合作交流

走线物联扇贝物联

MIT License Copyright (c) 2021 Walkline Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

基于安信可ESP-C3-12F模组,搭配WS2812矩阵灯珠,用于显示当前时间 展开 收起
Python
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/walkline/micropython-ws2812-led-clock.git
git@gitee.com:walkline/micropython-ws2812-led-clock.git
walkline
micropython-ws2812-led-clock
MicroPython WS2812 Led Clock
master

搜索帮助