
基于ESP32的跳绳计数器与家庭环境数据感知中心
简介
基于ESP32C3的声感跳绳计数器,同时集成温、湿度、气压、光感环境数据的监测,以及简单联网时钟、番茄闹钟。支持MQTT以及home assistant的集成,实现测量数据上传,与控制指令的下达。
简介:基于ESP32C3的声感跳绳计数器,同时集成温、湿度、气压、光感环境数据的监测,以及简单联网时钟、番茄闹钟。支持MQTT以及home assistant的集成,实现测量数据上传,与控制指令的下达。开源协议
:CC BY-NC-SA 3.0
描述
描述:这是一个偶然掉入电子DIY坑便深迷其中,从软硬件一窍不通慢慢摸索到今天的小白,一整套基于ESP8266/ESP32硬件和MQTT协议,进行的个人家居环境智能化改造尝试中的一个单元。9月8号才偶然看到嘉立创这个活动,准备时间紧迫,又是第一次发布开源不懂流程,中途几次嫌麻烦想放弃。但有感于这一年来多得嘉立创免费打板政策之惠、EDA软件推广中嘉立创在线技术支持人员的各种热情帮助,只得勉力继续前行,权当作一份作业来完成,尽个人绵薄之力,共行众人抬柴火焰高之举。
第一次分享项目,难免有疏漏之处,还请不吝指教。
硬件说明:
- ESP32C3完成核心处理功能。项目中之所以加了外置flash是因为这几个C3是去年第一个复刻项目(烟云smog的充电站)不懂芯片型号被商家以无存储的片子糊弄了,一直闲着正好加上外置flash利用起来。
- 四位数码管做数字、时间显示。选用TM1650纯是因为为了参与项目重新准备完整做一个的时候优信没有TM1637的片子了,只好现改了板子用了1650。
- 声感电路部分移植的LM393声音传感器模块。
- 温湿度计是基于AHT20芯片实现。由于AHT20手册中声明自己要独占一路I2C,而C3只有一路I2C,要与数码管共用。经过本人实际测试,实际使用并无明显音箱,只是在系统启动时会有一个I2C READ错误提示(前文说过之所以用这个片子也是无奈之选)。
- 气压传感基于BMP280,由于本项目中I2C通道的使用现状,因此选择4线的SPI工作模式。
- 加光敏电阻作为光线感应组件。是因为不想在每个人体感应灯中都加光敏电阻,只是想通过一个感知中心,将光感指数通过MQTT发送给家中所有感应灯。
- 蜂鸣器与LED是计时的整点报时以及跳绳计数状态下满百、千的整数提醒。
- PCB打板组装说明:整体项目需要三块板组装。中间是除温湿度感应的全部部件;底板是AHT20芯片和相关电阻电容,单拉出来是避免其他组件功耗散热对温湿度感知准确性的影响,同时与中间PCB一同形成电池空间;前面板是做遮盖用。
软件说明:
- 基于VScode+PlatformIO环境编译
- 建议部署有自己的MQTT服务器和HA服务器,功能实现起来更完整。之所以硬着头皮从软硬件纯白一点点学习自己做,就是因为从内心厌恶商家在家居智能化过程中的画地为牢、生态封闭。我的家,还能让别人做主了?
- 手机端软件可以使用IoT MQTT Panel_0.45.18_Apkpure.apk以及Home Assistant。前者功能集成实现比较简单,后者界面更美观华丽,但需要HA服务端支持。(界面差异可以看后面图示)。
软件主要功能:
- 支持网页配网,固件灌装后初次启动、使用中随时按需、无法启动救砖
- 联网对时,基本的时钟显示、整点报时、番茄闹钟
- 声感方式的跳绳计数,启动停止支持实体按键与远程协议控制。基本数据统计与信息上报(总数、实际跳绳时间、最大连跳次数与时长、平均频率),便于长期锻炼对比。
- 声音感应敏感度可通过滑变电阻自行调节
- 支持MQTT,通过MQTT实现温湿度、气压、光线强度等环境感知数据的上报,通过手机端软件集成展现,以及跳绳计数的统计数据上报展现。同时可以通过MQTT协议,实现手机端对计数启动停止、番茄闹钟启动停止的远端控制。
- 支持OTA在线升级固件,通过网络就可以升级固件。
- 支持多AP接入支持(自己搞的智能终端太多,一个AP已经无法稳定接入)。
- 支持是否必须联网启动选择。
- 支持HomeAssistant MQTT自动发现,可以使用MQTT集成,方便的进行信息展现与控制。
元器件采购:
没有太特殊的元器件,除了电池、天线嘉立创或者优信都能一站式采购。BMP280单片价格高低不一,我是难分良莠,于是在优信家买的模块拆的。
器件焊接组装:
- 先焊接中间核心板,如果使用外部Flash,建议先不焊Flash,待整体(不含穿透件)铁板烧完后,检测芯片焊接正常可以启动,再手工焊接flash。因为flash和芯片中间空间有限,一起焊上了ESP芯片存储这边的引脚有问题不好修。
- 焊好flash就可以通过预留的测试点连接串口烧录固件,启动固件检测BMP280是否焊接正常,焊接正常就可以正常焊接数码管、排针、mic等穿透件。
- 底板铁板烧AHT20及相关阻容。因为AHT是温湿度感应组件,焊接过程中的温度控制还是有影响的(最高260℃温度下,接触时间应小于30秒),如果不是手艺足够自信,建议继续铁板烧。毕竟400W铁板烧往死了也就250℃,只要注意时间就好了。
- 都焊好后组装,烤机。AHT需要一个水合过程(传感器在>75%RH的环境下存放至少24小时,以保证聚合物的重新水合。否则将导致传感器读数漂移。也可以将传感器放置在自然环境(>40%RH)下5天以上,使其重新水合。)其间测量数值,主要是湿度会有偏差。强烈推荐做这样一个过程。组装前的各块板:
正面(下板要焊AHT20相关器件及连接排针)
(中间板背面)
版本迭代:
1. 原型机:ESP01S+数码管+LM386模块+蜂鸣器
2.次代机:esp01s+数码管+LM386模块+蜂鸣器+实体控制按键(外置GPIO不够用,从片子飞出一根线来。。。。)
3.当前形态(中间的铜柱还没到货,测试排针还没拆掉)
4.铜柱M2(8+3)四个连接前板和中间板, M2(5+3)四个连接后板。考虑到后板和中间板的排针连接高度,后板和中间板的铜柱最长只能选择8+3,而且要在焊接后板排针的时候,将排针压一压,不要浪费长度。
组装完成,拆掉排针后的最终形态
使用效果:
与Home Assistant集成后手机端的展示界面
温湿度气压等环境数据显示(HA客户端与IOT MQTT Panel对比)
最后:
感谢@嘉立创,为业态的发展与壮大真金白银的付出,我相信有众多象我这样小白,正是在这样无私的扶持下慢慢入坑、学习、成长。发自内心的感谢,也衷心希望嘉立创越做越好,希望我们的整个电子产业和产业中的所有人都能越来越好。
感谢@神秘藏宝室,在我满头雾水搭不明白开发编译环境的时候,在各种编译环境选择中茫然无措的时候,是你热情帮助了我,引我入门,拉着我度过了软件入坑最困难的阶段,感激之情无时或忘。
感谢@oldfox126,正是你的国标五孔计量插座开源项目,尤其是软件的开源,让我能够完整的去学习一份项目代码该如何搭建架构,MQTT该如何去实现。回想初见这份代码的懵懂迷茫,到今天自己能够在消化的基础上去实现一些自己的目标,这种巨大的成长只有自己才清楚,我也希望你能了解,这种成长正是因了你无私的帮助与真正的开源精神。
感谢@小渣渣,提醒我良好习惯的养成,画板子要给自己留测试点,如何少给自己挖坑,多留后路;只可惜自己听得多,做得少,回回都是猴急的打了板子到手才发现想的不够完善。
感谢@yiplay,我的嘉立创EDA的使用,都是在照猫画虎复画你的ESP32S3开发板项目中完成的,我想除了你自己,没有人比我面对那个原理图以及PCB图时间更久了。
感谢所有帮助过我的人,前人无私的帮助是后来者成长的动力来源,后来者的成长也是对前人帮助的最好报答。这种帮助与成长薪火相传,便是开源精神传承与发扬。
设计图

BOM


评论