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

前言

本文的目的是为了给将要制作的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按键输入功能移植

    已达成

硬件架构设计

image-20210906164213161

  • 28
    点赞
  • 122
    收藏
    觉得还不错? 一键收藏
  • 28
    评论
对于此项目,我们必须包含一组需要包含的组件:BME280,Seeed Grove灰尘传感器,Seeed Grove空气质量v1.3传感器,电容性土壤湿度传感器,Adafruit 128x64 OLED显示屏,继电器和一个粒子氩。 对于我的设计,我想要一个看起来干净且精致的设置。我本来想把一个盒子和一个花盆放在一个水箱上,但最终将其改为放在丙烯酸圆盘上的所有东西。对于盒子,我在Autodesk Fusion 360中对它和盖子建模,并使用Formlabs 3 Resin打印机将它们打印出来。对于花盆i,我也曾在Fusion 360中对其进行建模,并使用Ultimaker 3 3D打印机将其打印出来。对于水库本身,我使用了刚好适合该项目的剩余丙烯酸光盘。 该项目的目标是要有一个可以通过网络控制的整洁的自动浇水花盆。完成大约8个小时的工作就完成了,但是实际打印所有内容都花费了更长的时间。锅用了大约23个小时,盒子在树脂打印机上用了3个小时,而储藏室用了大约2个小时使其干燥。 BME280与土壤湿度传感器一起安装在花盆内。粒子通过继电器安装在盒子内,显示屏拧紧在外壳上,电动机安装在储水箱内,空气质量传感器和灰尘传感器一起热粘在外壳的盖子上。 对于这种情况,我想要一个易于使用的粒子氩气端口,一个易于拆卸但也可以固定的盖子,允许所有电线通过的直通孔,继电器安装在面包板上方以及灰尘传感器/空气质量传感器都安装在盖子上,以便能够更准确地读取空气。 对于水库,我最初希望将盒子和花盆都安装在其顶部,直径约6英寸。由于材料的使用,这种情况发生了变化,我发现直径为4.5英寸的丙烯酸光盘正被某人使用。我将其更改为双面粘贴到直径9英寸的较大的丙烯酸圆盘上,并将4.5英寸的圆圈粘在一起。虽然我曾经使用硅树脂,但是决定不给丙烯酸树脂提供必要的附着力,所以我最终使用了汽车RTV,该技术可以实现水密密封,并且能够有效地将每一块胶粘在一起。 对于花盆,我希望供水来自侧面,带有一个小尖头,可以使水更均匀地分配给土壤湿度传感器,以更准确地读取土壤。我在锅中钻了两个孔,一个用于土壤传感器的电线,另一个用于连接软管。我将电线和连接器热粘合在一起,希望能形成水密密封,但最终不得不使用浴室硅胶密封它们,以免它们泄漏!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值