用ESP32撸一个天气预报助理

2020-02-161.5万
精华项目
AI 快速预览详细 收起
本文介绍了如何使用ESP32-WROVER-KIT、液晶屏和DHT11传感器,结合OpenWeatherMap API,构建一个天气预报助理。项目硬件清单包括ESP32-WROVER-KIT、ILI9341液晶屏和DHT11传感器。最终效果是能够实时显示天气信息,并通过WiFi连接进行远程配置。难度适中,适合DIY爱好者和初学者。

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

用ESP32撸一个天气预报助理图5用ESP32撸一个天气预报助理图3


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

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

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

用ESP32撸一个天气预报助理图2
鬼知道他们经历了什么。。心疼板卡1s

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

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

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

用ESP32撸一个天气预报助理图1

这个实际上就是一个基于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
用ESP32撸一个天气预报助理图6
按钮和DHT11所使用的IO都可以在main.cpp的宏定义中看到~
可以根据需要自行修改,和实际接线对应就行
------程序构建前的准备工作-------
用的气象网站是
OpenWeatherMap
https://openweathermap.org/
需要去注册一下,然后获取自己的Key
具体请参照网站内的Guide
获取Key之后,修改weather.h的URL_KEY宏定义
替换成自己的Key
此外记得将URL_LOCATION换成自己的城市
具体城市名称,也可以在网站上查询到
其他的宏定义就不要乱改了
除非高级玩家清楚地知道自己是在干啥
用ESP32撸一个天气预报助理图7

欧对了,还可以修改下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
我会尽力帮助解决

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

下载附件weather.rar





创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(5)
Edfrobot
Edfrobot
没电路图都不知怎么连接呀
kylinpoet
kylinpoet
楼主强大,多谢分享。
rzegkly
rzegkly
好文章,宅在家里玩
FishGan
FishGan
作者
回复rzegkly
hhhh是啊,难得不用去学校上班~大把时间折腾,一口气干掉七八个烂尾项目真的是爽到
hnyzcj
hnyzcj
评论内容
铁熊
铁熊
心愿单呢~~~
FishGan
FishGan
作者
回复铁熊
管理员说。。心愿单功能正在修Orz
我直接手动补一发链接吧23333
- 没有更多了 -