【2022得捷创新设计大赛】 ESP32_WEB_PUSHER基于esp32的网络推送器
[复制链接]
本帖最后由 未见 于 2022-11-6 10:58 编辑
ESP32_WEB_PUSHER基于esp32的网络推送器
作者:CubeLine
一、作品简介
在生活中,我们经常要面对各种信息的传递,表达和处理,大多数时间,我们使用的是智能手机一类的随身电子产品,在生活中,我们经常要面对各种信息的传递,表达和处理,大多数时间,我们使用的是智能手机一类的随身电子产品,电子产品不在手边的时候,我们就不太愿意去拾取手机来收集这些信息,比如像天气、时间、快递信息等一些常见而又不涉及到隐私的一些数据,我希望能找到一个更便捷的方式来获取,于是就有了这款网络推送器,目前,我只是抛砖引玉实现了最为基础的推送天气的功能,后续会逐渐完善其它渠道信息的推送,让他具备更多的推送能力。
二、系统框图
2.1硬件框图
2.2软件架构
三、各部分功能说明
其实功能部分比较简单,主要就是通过网络发送消息到ESP32,通过ESP32-BOX的3.2英寸显示屏把消息展示出来,这里作为演示,展示的是天气信息:
3.1实际效果图
首先通过Http-Client库获取知心天气API的天气数据,因为API返回的是JSON格式的数据,所以我们还需要通过cjson这个库来对获取到的天气数据进行解析,把解析好的数据通过串口和屏幕分别打印出来。
在LVGL中首先创建一个table对象,然后设置对齐方式,把表格分为两列,左侧表示显示项目,右侧表示具体数值,通过cjosn库解包后的数据就在这个表格中进行展示。
实际效果如上图3.1。
四、作品源码
4.1代码截图(部分)
☞
五、作品功能演示视频
作品目前就实现了天气预报类项目的推送设计,后续有时间还会更新其他数据推送的功能。
实物视频
六、项目总结
其实项目周期还是给的比较长,但是打工人时间不由己啊,总是被各种琐事和惰性给拖拉了,以前使用ESP32/ESP8266都是基于arduino方式来开发,这次项目对于我来说是一次很好的学习ESP-IDF方式开发的经验,从0开始,一点点找资料,找例程,学习CMake语法编辑,学习Linux下的编译,学习idf开发环境的搭建,学习http-client的get方法的使用,学习lvgl的使用,期间还尝试过GUI-Guider工具的使用,但是总是编译失败,后续还是得再研究研究。通过本次得捷比赛的活动,我也了解到国产MCU开发的便利性,确实比以往的国产单片机开发要简单方便了很多,尤其是乐鑫官方的技术文档非常全面,官方的例程库写得也很详实,这对于我一个初次接触idf的人来说,确实减少了很多不必要的麻烦。其中github的仓库不得不让我再吐槽一下,网络实在是搞不起来,总是在拉子库的时候断掉,还不让断点继续,花费了我好长时间来搞这个东西。然后vscode下的拓展插件也是,win和Linux下不能共存,win下编译贼拉慢,wsl下又不能使用USB串口,真的是让人爱恨交加。
最后,还是要感谢主办方得捷电子和eeworld的大力支持,希望以后能多多举办类似活动。
|