详细介绍如何基于ESP32实现气象站数据显示--附源码

news/2024/7/7 19:02:45

ESP32 气象站

功能介绍:

  1. 驱动ili9341

  2. 从京东获取天气数据

开始使用

拿到钥匙

1.从京东注册账号

2.从网站获取密钥  ESP32 气象站

 

安装ESP32 SDK

ESP-IDF Programming Guide - ESP32 - — ESP-IDF Programming Guide latest documentation

笔记:

该项目兼容 ESP-IDF 3.X 分支和 4.0 分支。对于 4.0 分支,您可以使用 make 或 CMake,但建议使用 CMake。这里给出了使用最新工具链idf.py(调用 CMake)的说明,但很容易转换为 make。例如,不用运行idf.py menuconfig,只需运行make menuconfig

独立构建此存储库并运行演示。

首先尝试此操作以确保您的硬件受支持、接线和配置正确。

  1. 获取这个项目:git clone --recurse-submodules https://github.com/donny681/ESP32_Weather_station.git

  2. 从它的根运行idf.py menuconfig

  3. 选择您的显示套件或板以及其他选项 - 请参阅配置选项

  4. 将key填入main/my_https.c,可以看到defineKEY

  5. idf.py build

  6. idf.py -p (YOUR PORT) flash(使用 make 这只是make flash- 在 3.x 中配置 PORT menuconfig

将此项目作为库子模块安装在您自己的项目中

建议将此存储库作为子模块安装在 IDF 项目的 git 存储库中。配置系统的设计使您无需复制或编辑此存储库中的任何文件。通过保持子模块目录干净,您可以确保从这个上游存储库进行可重复的构建和轻松的更新。

CMake

以下示例取自 ESP-IDF Blink示例,您可以复制该示例并将其用作您自己的项目的基础。项目根 CMakeLists.txt 文件需要在项目之前添加一行,以将额外的组件目录添加到路径中,如下所示:

#CMakeLists.txt
cmake_minimum_required(VERSION 3.5)

include($ENV{IDF_PATH}/tools/cmake/project.cmake)

set(EXTRA_COMPONENT_DIRS externals/lv_port_esp32_ili9341/components)

project(blink)

在您或使用 LVGL 的组件的 CMakeLists.txt 文件中,/main您需要将此项目的驱动程序和 lvgl 本身的 REQUIRES 指令添加到函数中,idf_component_register例如

#main/CMakeLists.txt
idf_component_register(
    SRCS "blink.c"
    INCLUDE_DIRS "."
    REQUIRES lvgl_ili9341 lvgl
)

生成文件

如果您使用 make,则只需在项目的根 Makefile 中添加 EXTRA_COMPONENT_DIRS:

PROJECT_NAME := blink
EXTRA_COMPONENT_DIRS := externals/lv_port_esp32_ili9341/components

include $(IDF_PATH)/make/project.mk

配置选项

有许多可用的配置选项,所有选项都可以通过idf.py menuconfig-> 组件 -> LittlevGL (LVGL) 访问。

 主菜单  组件菜单  组件菜单

 

 

选项包括:

  • 显示分辨率-设置显示器的高度和宽度
  • 存在触摸控制器
  • 反转显示 - 如果文本和对象向后,您可以启用此功能
  • 通过 GPIO 启用背光控制(与硬接线打开相比)
  • 背光源高电平或低电平有效 - 某些显示器期望高 (1) 信号来启用背光,其他显示器则期望高 (1) 信号(默认) - 如果您的背光灯不亮,请尝试切换此选项

根据您的 ESP32 开发板分配正确的引脚分配

有多种基于 ESP32 芯片的开发板,请确保为与 TFT 显示板接口的信号分配正确的引脚号。建议使用下面的预定义配置,但您也可以为显示控制器和触摸控制器设置单独的引脚。

 针脚  针脚

预定义的显示配置

 预定义

 

对于已连接显示器的开发套件,所有正确的设置都是已知的,并且可以menuconfig从第一个选项“选择预定义的显示器配置”中进行选择。一旦选择,所有其他选项将被默认并且不会出现在菜单中。

我们目前以这种方式定义的董事会是:

具有 38 个 GPIO 的 ESP32 开发板

 ESP32 上使用 LittlevGL 的 GUI 示例

 

ILI9341-HSPI

莫西时钟脉冲CS直流快速恢复时间BCKL
13145191823

XPT2046-VSPI

莫西味噌时钟脉冲CS中断请求
3235263325

具有 30 个 GPIOS 的 ESP32 DevKit v1

还有另一种开发套件,只有 30 个 GPIO 可用:

 具有 30 个 GPIO 的 ESP32 套件上的 LittlevGL

 

ILI9341

对于使用 ILI9341 HSPI,将引脚配置修改components/drv/disp_spi.h为:

ILI9341-HSPI

莫西时钟脉冲CS直流快速恢复时间BCKL
1314152421

XPT2046-VSPI

莫西味噌时钟脉冲CS中断请求
231918525

具有 38 个 GPIO 的 ESP32 DevKit v4

有关更多信息,请参阅此 pdf:https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32d_esp32-wroom-32u_datasheet_en.pdf

ILI9341-HSPI

莫西时钟脉冲CS直流快速恢复时间BCKL
13141517 号2526

XPT2046-VSPI

莫西味噌时钟脉冲CS中断请求
231918527

其他板

menuconfig当然,如果可用的预定义不符合您的电路板或项目要求,则可以配置所有单独的引脚。默认情况下,预定义选项被禁用,并且 30 引脚开发板的引脚设置为默认值。

生成 spiffs bin

  1. 下载 spiffs 工具

  2. 编译并生成bin,请检查spiffs说明( GitHub - igrr/mkspiffs: Tool to build and unpack SPIFFS images )

  3. 将输出bin下载到闪存地址0x310000

或者您可以刷新“spiffs1.img”

python esp-idf/components/esptool_py/esptool/esptool.py --chip esp32 --port /dev/ttyUSB1 --baud 2000000 write_flash 0x1000 spiffs1.img

完整代码下载链接

链接:https://pan.baidu.com/s/1XZOgO1bQYR82eWaA5cCe5Q 
提取码:m4ml


http://lihuaxi.xjx100.cn/news/1472783.html

相关文章

Android SDK 上手指南||第四章 应用程序结构

第四章 应用程序结构 本教程将主要以探索与了解为主要目的,但后续的系列文章则将进一步带大家深入学习如何创建用户界面、响应用户交互操作以及利用Java编排应用逻辑。我们将专注于大家刚刚开始接触Android开发时最常遇到的项目内容,但也会同时涉及一部…

wireshark数据包分析

一、实验目的: 掌握wireshark进行基本的协议分析,掌握TCP的三次握手的过程 二、预备知识: TCP/IP协议的三次握手的设计 三、实验过程: 1.关于wireshark这个软件的基本认识: 首先,每次capure的时候&#…

Ajax 请求到底应该放在 created 里还是 mounted 里???

示例代码 定义了一个数据 list,默认是空数组 定义了一个 API 请求,getDat 还定义了两个生命周期钩子 created 和 mounted 分析在 created 里的情况 这个时候,我们是能够成功发送 API 请求获取到数据的,控制台会打印 created&…

Struts vs. Struts 2:Java Web 开发框架的升级之路与竞争力分析

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

别再假努力了!自查这几个嵌入式核心能力你具备了吗?

嵌入式行业一直以来都是高薪行业,但对求职者的技术要求同样很高。在这个竞争激烈的行业中,有哪些核心能力是必不可少的呢?下面就为大家介绍一下在嵌入式行业找到好工作的五个核心能力。 一、扎实的硬件基础知识 嵌入式行业与硬件密不可分&am…

【uniapp】微信小程序 , 海报轮播图弹窗,点击海报保存到本地,长按海报图片分享,收藏或保存

uivew 2.0 uniapp 海报画板 DCloud 插件市场 第一步&#xff0c;下载插件并导入HbuilderX 第二步&#xff0c;文件内 引入 海报组件 <template><painter ref"haibaorefs"></painter> <template> <script>import painter from /comp…

关于 大屏项目的参考

1、自适应组件 &#xff1a; v-scale-screen https://huaweicloud.csdn.net/638eec6cdacf622b8df8dc59.html 2、参考项目&#xff1a; https://zhuanlan.zhihu.com/p/634382389

kali linux查看局域网下所有IP,并对指定IP攻击

kali linux查看局域网下所有IP&#xff0c;并对指定IP实施局域网内攻击 首先我们打开我们熟悉的kali linux操作系统&#xff0c;利用指令&#xff1a; ifconfig来确认本机的ip地址 确认了本机的ip地址之后&#xff0c;利用一下的指令查看局域网下所有ip: fping -g 本机IP地址…