前言

本文的目的是为了给将要制作的ESP32手环做技术储备

准备学习下ESP32,还有嵌入式GUI框架LVGL,通过做几个小项目练手是不错的选择,最终目标是做一个ESP32的手环

做一个ESP32手环任务量还是比较大的,涉及到很多新技术,我认为步子不能迈的太大容易翻车,决定先做一个ESP32的智能花盆

视频链接

https://www.bilibili.com/video/BV11P4y137k2/

开源链接

20211205 所有软硬件设计制作均已完成 资料开源至github
后续有时间还会发布一些小教程,可以在我的csdn上找到

代码和外壳3D打印文件链接

https://github.com/FranHawk/esp32-smart-pow

GITHUB仓库结构
0.doc 相关文档
1.hardware pcb和3D打印所需资料
2.software 代码工程,有两个版本,gui版本可烧进任意ESP32或ESP32开发板,接屏幕和按键即可,esp32-smart-pow为完成代码工程
3.simulator 存放lvgl的pc模拟器,用vs2019打开

PCB文件链接

https://oshwhub.com/FranHawk/green-esp32/

重要

main中的wifi名和密码改成自己的
lv_page_common中的心知天气私钥改成自己的
不然代码跑不起来

制作材料

元器件根据pcb工程里带的bom表买就可以了
pcb板嘉立创生产
电池买3.7V锂电池,容量随意
无线充电模块链接:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.1bdb2e8dDijOkh&id=626465407103&_u=835dsdvlb35a
屏幕链接:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.1bdb2e8dDijOkh&id=652101077844&_u=835dsdvl181e

外壳找淘宝3D打印

总成本大概100元左右,制作需要一些编程基础和网络信息搜索能力

开发平台

1.vs code+platformio ESP32开发

2.vs2019 lvgl模拟器 GUI界面设计与仿真

3.solidworks 2020 外壳设计

4.立创eda pcb设计

基本功能均已实现,还没发现更过BUG,如视频所示,但是软硬件还有需要进一步完善的地方,最近比较忙,等过了12月(202112)再进一步完善

功能

  • 时间天气实时更新并显示
  • 课程表,显示一周内的课程
  • 电脑性能显示,通过局域网获取所使用的电脑当前的CPU内存等占用情况
  • WIFI配网
  • 亮度调节
  • 蓝牙键盘,可作为一个蓝牙键盘控制电脑音量,ppt翻页,换歌等功能

功能展示


可以使用任意兼容QI标准的无线充电底座为其充电,市面上的充电底座几乎都可以


主界面显示天气时间温湿度,并且有利用lvgl8.1的gif解码器,有动图效果

天气界面

课程表界面

电脑性能监控界面

WIFI配网界面(有待完善)

亮度调节界面


蓝牙键盘界面

界面间通过一个滚动菜单选择,可以使用模拟器模拟界面

下面是项目之初(20210920)写的需求分析和设计文档

需求分析

智能花盆所需要实现的功能如下:

  • 基本花盆的功能:下端有透气孔,可以承载一株多肉植物,形状:长宽65mm正方形,高度根据实际情况调整的白色花盆,尽量保证外形的美观
  • 带锂电池,无线充电模块,可以通过type-c口或者无线充电口为电池充电,同时为花盆供电。在无外部电源的时候,可以通过电池为花盆供电
  • 板载USB转串口芯片,便于烧写代码
  • 板载SD卡插槽,用户可将信息文件放入SD卡,ESP32可以读取
  • ESP32 通过wifi功能,通过网络获取天气,时间等信息,通过局域网获取电脑性能等信息,后期可考虑加入wifi配网功能
  • 通过一块1.54寸 240*240分辨率显示信息,信息如下,每一行代表一个页面
    1. 当天时间和当天基本天气信息显示光照信息,检测当前是否充电,带罗小黑动画效果,通过晃动花盆可以切换动画效果
      2. 三天基本天气信息
      3. 电脑性能,内存占用等信息
      4. 课程表,显示当天课程
      5. 课程表,显示明天课程
      6. 显示当前植物信息

技术分析

  • 首先硬件方面需要原理图PCB绘制和制作3D打印外壳技术,原理图PCB绘制采用立创EDA,外壳3D建模采用SW2020,去淘宝找厂家3D打印外壳

    技能掌握情况:基本掌握

  • 软件方面采用基于arduino的ESP32+LVGL框架,学习ESP32+LVGL基本使用,同时需要学习并移植XTRACK的页面生命周期管理API,根据需求分析需要掌握技术:LVGL移植到ESP32,ESP32连接到网络获取天气等信息,ESP32获取MPU6050数据,ESP32获取光敏电阻数据,LVGL文件系统移植,通过文件系统获取SD卡中信息,LVGL显示中文显示图片…

    20211002 基本掌握

任务细分

  • 原理图和PCB绘制,投板制版并测试

    20210903 完成原理图和PCB绘制,已经投板,还未进入焊接阶段

    20210910 所有原件均到货,完成PCB制作,并完成测试,CH340不应该用5V供电,MPU6050少接一个电容工作不正常,其他部分工作正常,排线接口位置别扭,现有板子暂时能用,但是还是要再投一版

    20210915 新版本pcb投板并制作完成,测试完毕

    已完成

  • 外壳设计与制作

    20210911 完成外壳设计工作

    20211120 完成外壳3D打印

    已完成

  • 无线充电底座购买和无线充电模块测试

    20210910 无线充电底座到货,现有无线接收模块谐振频率不对,电压达不到5V,准备购买兼容QI协议的无线接收模块
    20211110 无线接收模块测试完毕
    已达成

  • LVGL移植到ESP32

    20210817 完成LVGL移植

    已达成

  • ESP32连接网络,获取天气,时间信息

    20210829 实现通过网络获取天气信息

    20210911 实现通过网络获取时间信息

    已达成

  • ESP32连接网络,获取电脑性能信息

    20210825 实现通过网络获取电脑性能信息

    已达成

  • ESP32获取MPU6050和光敏电阻的数据

    20210823 完成MPU6050数据获取

  • ESP32上SD卡操作与LVGL文件系统移植

    20210830 完成SD卡操作与LVGL文件系统移植

    已达成

  • LVGL中文和图片显示

    20210906 完成LVGL中文和图片显示

    已达成

  • LVGL的PC模拟器使用

    20210906 初步完成LVGL的PC模拟器使用

    已达成

  • LVGL移植XTRACK的页面生命周期管理API

    2021821 完成页面生命周期管理API学习,还未完成移植

    20210910 完成PC模拟器上菜单选择界面UI设计,发现XTRACK的页面生命周期管理暂时还用不到,先用纯LVGL开发

    已达成

  • LVGL的PC模拟器设计UI交互页面

    20210910 完成PC模拟器上菜单选择界面UI设计,接下来完成子页面的设计

    20211120 完成所有子页面设计

    已达成

  • UI交互页面移植到ESP32上,系统联调

    20211125 完成

    已达成

  • ESP32上LVGL按键输入功能移植

    20210907 完成ESP32上LVGL按键输入功能移植

    已达成

硬件架构设计

基于arduino的ESP32 学习笔记(一) 基于ESP32的智能花盆相关推荐

  1. 《ESP32 学习笔记》 之 ESP32 模拟 蓝牙键盘-Keyboard

    目录 1.简介 2.硬件平台 3.软件平台 4.库文件 4.1 ESP32_BLE_Arduino 4.2 ESP32-BLE-Keyboard 5.示例程序 6.配对&测试 7.提升部分 1 ...

  2. ESP32学习笔记(七) 复位和时钟

    ESP32学习笔记(七) 复位和时钟 目录: ESP32学习笔记(一) 芯片型号介绍 ESP32学习笔记(二) 开发环境搭建 VSCode+platformio ESP32学习笔记(三) 硬件资源介绍 ...

  3. ESP32学习笔记(一) 芯片型号介绍

    ESP32学习笔记(一) 芯片型号介绍 目录: ESP32学习笔记(一) 芯片型号介绍 ESP32学习笔记(二) 开发环境搭建 VSCode+platformio ESP32学习笔记(三) 硬件资源介 ...

  4. 学习笔记之——基于深度学习的图像超分辨率重建

    最近开展图像超分辨率( Image Super Resolution)方面的研究,做了一些列的调研,并结合本人的理解总结成本博文~(本博文仅用于本人的学习笔记,不做商业用途) 本博文涉及的paper已 ...

  5. 统计学习导论 - 基于R的应用 学习笔记1

    统计学习导论 - 基于R的应用 学习笔记 Chapter 1 导论 统计学习是什么: 关于估计ƒ的一系列方法 Y=f(x)+ξ f:X 提供给 Y 的系统信息,是 x 的函数 ξ:随机误差项:均值为0 ...

  6. C#入门学习笔记(基于刘铁锰老师C#入门2014教学视频)【1】

    C#入门学习笔记(基于刘铁锰老师C#入门2014教学视频)[1] 前言: 本笔记作为记录我从零开始学习C#的记录,为了unity的兴趣爱好自学一门C#,也算是寒假为自己充个电,希望这个寒假可以坚持下去 ...

  7. C#入门学习笔记(基于刘铁锰老师C#入门2014教学视频)【2】

    C#入门学习笔记(基于刘铁锰老师C#入门2014教学视频)[2] 初识类和名称空间 前言: 本笔记作为记录我从零开始学习C#的记录,为了unity的兴趣爱好自学一门C#,也算是寒假为自己充个电,希望这 ...

  8. 【图神经网络】图神经网络(GNN)学习笔记:基于GNN的图表示学习

    图神经网络GNN学习笔记:基于GNN的图表示学习 1. 图表示学习 2. 基于GNN的图表示学习 2.1 基于重构损失的GNN 2.2 基于对比损失的GNN 参考资料 本文主要就基于GNN的无监督图表 ...

  9. 12864液晶深入学习笔记_1——基于msp430g2553

    12864液晶学习笔记 Created on: 2012-8-30 Author: zhang bin 这是我对12864的学习笔记,12864液晶功能很全面,使用起来也很方便,能够满足一般的研究和工 ...

  10. 计算机基础与程序设计(基于C语言)学习笔记

    计算机基础与程序设计(基于C语言)学习笔记 前言 这是一个学习笔记 课程导入 在线学习工具:https://c.runoob.com/compile/11 为什么要学习程序设计 (1)存储程序和程序控 ...

最新文章

  1. Spring 整合 Junit
  2. 【AndroidSupport】LinearLayoutCompat
  3. Deep learning:二十二(linear decoder练习)
  4. Oracle 10.2.0.4 高负载 触发 ORA-00494 错误
  5. 《大数据算法》一1.2 大数据算法
  6. window连接不上linux ftp_xftp怎么连linux,教你xftp怎么连linux
  7. MySQL中int(5) 中的5代表什么意思?
  8. UE4学习-在虚幻编辑器中打开VS的三种方式
  9. 11. Android框架和工具之 Logger(调试代码)
  10. 设计一套基于NHibernate二级缓存的MongoDB组件(上)
  11. ThreadLocal T类的说明 转载 原作者 lujh99
  12. 连续被巨头青睐,SpaceX 部分新项目原型系 Rust 构建
  13. Spark SQL介绍和特点
  14. 栈的应用--马踏棋盘-贪心加栈
  15. 逐梦旅程:Windows游戏编程之从零开始 读后感
  16. win7字体安装_超强大PDF编辑软件 | Adobe Acrobat DC安装教程
  17. 概率论实验 04 - | 基于Matlab的匹配滤波器
  18. caffe 连接 matlab2016b
  19. 计算共形几何暑假课lecture1
  20. 无法访问该文件可能已损坏 或者服务器,win7系统打开xls文件提示无法访问文件可能损坏的解决方法...

热门文章

  1. Laravel框架使用maatwebsite/excel导出自动换行
  2. 数据中心机房有哪些等级,国内外的评级标准?
  3. 苹果照片未删却不见了_手机删除的照片如何恢复?不得不说这方法好!
  4. 解决无法设置默认打开方式
  5. 署任DS.ENOVIA.DMU.NAVIGATOR.V5-6R2017.GA.WIN64数字制造解决方案
  6. 【原创】三星、镁光、海力士内存颗粒命名规则摘录
  7. 并发编程之 ThreadLocal 源码剖析
  8. DZY Loves Chinese/DZY Loves Chinese II 题解
  9. 【node.js】一个基于HTPP的服务
  10. 【Spring Boot 2.0学习之旅-15】SpringBoot2.0响应式编程