查看: 467|回复: 6

用ESP32撸一个天气预报助理

[复制链接]

--------------老规矩先发图镇楼--------------

wx_camera_1579695476764.jpg wx_camera_1579599230819.jpg


-----开场前的碎碎念----

2020年一开局就被一场疫情打乱
不过在家宅着也终于有时间去好好收拾收拾各种烂尾项目
这次带来的是基于ESP32构建的一个天气预报助理
这次算是玩了一下高档货
用的是乐鑫官方的ESP32-WROVER-KIT(老贵了)
自带一块全彩液晶屏(可惜没触摸Orz)

这两块板卡实际上是我的学弟做课程项目自己买的
项目做完了,板卡也闲置了
学弟就问我要不要,说是有点坏的,就白送了
这两块板卡到我手里的时候。。。是

wx_camera_1579265307525.jpg
鬼知道他们经历了什么。。心疼板卡1s

作为一名垃圾佬属性发作(划掉)勤俭节约攻城狮
自然是愉快的收下了他们(反正不要钱,不要白不要)

第一块是电源选择的排针坏了,学弟已经飞了根线了,基本不影响使用
第二块是USB口崩了。。。不过问题不大,我自己有USB转TTL模块,一样可以烧程序
就是每次要自己按boot和reset按键麻烦点而已
别的看了下都没损坏,通电测试也都是好的
好吧,那就可以拿他们搞事情了!
(插个表情包一个挑事的微笑)

---------先说说这个项目---------
不知道大家有没有注意过论坛上
创意生活,这个版块的主题图
就是下面这个

202002024892..png

这个实际上就是一个基于esp8266的天气预报助手
我在国外网站上找到了他的出处
这个网站还有很多基于esp8266和esp32的好玩项目
有兴趣的小伙伴也可以去围观一下
传送门在这里
https://blog.squix.org/

我其实想做这个项目,也是因为当初看到这张图
然后找到了国外项目网站以后,就一直烂尾ing
但是呢,原版是基于esp8266的,而且个人觉得,月相并不实用
so.....就直接自己空手撸代码了
除了天气图标和界面配色方案借鉴了下

------硬件构建-----

硬件上主要是ESP32,液晶屏,DHT11以及一个按钮
其实这个按钮也可以用esp32的触摸输入功能替代哟
液晶屏是ILI9341主控的3.2寸TFT,分辨率240*320
最近论坛心愿单功能正在修复ing,所以在这里手动补一发链接
想要做一个的小伙伴可以买买买了!https://www.dfrobot.com.cn/goods-1394.html
https://www.dfrobot.com.cn/goods-1109.html
https://www.dfrobot.com.cn/goods-109.html
https://www.dfrobot.com.cn/goods-78.html
不过,商城里ILI9341的液晶屏只有2.8寸的,3.5寸的那款主控芯片并不一样
2.8寸的分辨率也是240*320,程序可以直接使用,无需修改~
接线就不多说了,在我的程序里都可以看到引脚的宏定义
可以根据需要自己修改下
液晶屏使用的是SPI接口
这里我放一张我用的板卡的液晶屏引脚对应图
欧对了,说明下,其实SDA就是MOSI,SDO就是MISO
202002102332..png
按钮和DHT11所使用的IO都可以在main.cpp的宏定义中看到~
可以根据需要自行修改,和实际接线对应就行
------程序构建前的准备工作-------
用的气象网站是
OpenWeatherMap
https://openweathermap.org/
需要去注册一下,然后获取自己的Key
具体请参照网站内的Guide
获取Key之后,修改weather.h的URL_KEY宏定义
替换成自己的Key
此外记得将URL_LOCATION换成自己的城市
具体城市名称,也可以在网站上查询到
其他的宏定义就不要乱改了
除非高级玩家清楚地知道自己是在干啥
202002102023..png

欧对了,还可以修改下wifi信息
当板卡无法连接到路由器wifi的时候,会启动AP模式,化身成一个自带wifi热点的服务器
这个wifi热点的名字和密码可以在network.h文件里修改对应的宏定义
然后可以根据液晶屏显示内容访问控制页面,设定需要连接的wifi热点名称和密码
设定好重启一下就行啦

--------程序构建--------
这次的代码还是在PlatformIO上基于Arduino Framework构建的
如果是用platformIO的小伙伴,就直接能用了

如果是用ArduinoIDE的小伙伴,也是可以用的
不过要稍微麻烦点做一下预处理
  • 先在ArduinoIDE上部署好ESP32开发环境(废话)
  • 然后新建一个Arduino项目
  • 用记事本打开src/main.cpp文件
  • 把main.cpp的内容全部复制到项目中
  • 然后再把src文件夹内其余的文件,全部直接复制到刚刚创建的Arduino项目的项目文件夹内
  • 接着用库管理器安装Mini Grafx,ArduinoJson,AutoConnect,PageBuilder,DHT sensor library,Adafruit Unified Sensor
  • 一共6个库
安装完根据实际情况选择板卡信息,就可以编译烧写了

------最后再唠叨几句------

有问题的小伙伴可以回帖留言
欢迎反馈各种bug
我会尽力帮助解决

wx_camera_1579584003147.jpg
项目开发fishGan
特别感谢老婆大人doudou帮忙排版~(我还画了一条鱼!小声bb~)
本项目未经许可不得商用!
不得单独转载项目文件包!必须连同本文转载!
转载请注明原作者和出处~

weather.rar (16.01 MB, 下载次数: 30)

铁熊  版主

发表于 2020-2-16 17:05:01

心愿单呢~~~
回复

使用道具 举报

FishGan  高级技师
 楼主|

发表于 2020-2-16 17:48:18


管理员说。。心愿单功能正在修Orz
我直接手动补一发链接吧23333
回复

使用道具 举报

hnyzcj  超级版主

发表于 2020-2-17 07:54:04

回复

使用道具 举报

rzegkly  版主

发表于 2020-2-17 08:37:23

好文章,宅在家里玩
回复

使用道具 举报

kylinpoet  中级技匠

发表于 2020-2-17 21:30:12

楼主强大,多谢分享。
回复

使用道具 举报

FishGan  高级技师
 楼主|

发表于 2020-2-17 22:38:09

rzegkly 发表于 2020-2-17 08:37
好文章,宅在家里玩

hhhh是啊,难得不用去学校上班~大把时间折腾,一口气干掉七八个烂尾项目真的是爽到
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail