ESP32-ttgo T-Display之开发环境搭建及GPIO操作

  最近想玩玩ESP32,在某宝上买了个ESP32的板子,40块的价格,带有1.14寸TFT显示屏,WiFi和蓝牙,小飞哥觉得还是可以的。入手,盘他。

完成目标

  • 了解ESP32-ttgo板子资源

  • 学会vscode+platformIO IDE环境搭建

  • 学会新建或者导入工程

  • 学会操作GPIO

硬件环境

  • ESP32-ttgo开发板

软件环境

  • vscode

  • vscode插件platformIO IDE

  先来几张靓照,type-c接口,有电池充电供电电路,用户按键,还是非常小巧的:

图片

某宝价格

图片

图片

1、官方规格说明

项目规格
ChipsetESPRESSIF-ESP32 240MHz Xtensa® single-/dual-core 32-bit LX6 microprocessor
FLASHQSPI flash 4MB
SRAM520 kB SRAM
USB to TTLCP2104
Modular interfaceUART、SPI、SDIO、I2C、LED PWM、TV PWM、I2S、IRGPIO、ADC、capacitor touch sensor、DACLNA  pre-amplifier
DisplayIPS ST7789V 1.14 Inch
Working voltage2.7V-4.2V
Working currentAbout 67MA
Sleep currentAbout 350uA
Size&Weight51.5225.048.54mm(7.81g)
Power SupplyUSB 5V/1A
Charging current500mA
Battery3.7V lithium battery
JST Connector2Pin 1.25mm
USBType-C
OSFREERTOS

更多介绍:

https://www.jmaker.com.tw/products/ttgo-t-display

2、引脚分配

图片

3、开发环境搭建

  开发环境真可谓是多种多样,windows,mac,linux都支持,各种环境配置详细见:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s2/get-started/

  我使用的是vscode+platformIO IDE平台下开发的,vscode下载安装就不啰嗦了,安装完vscode之后,在扩展应用搜索platformIO IED,然后安装就可以了,可能需要等待一些时间,python环境会自动安装

图片  安装完成之后,vscode左侧会出现platformIO IDE logo,感觉像个小蚂蚁头,嘿嘿,在右侧home界面有新建工程,导入工程等。

图片  环境的搭建比较简单,无非就是可能需要时间等待,下面进行新建工程的介绍,主要关注Board、Framework就可以了

 

  • board有好几款可以选择,内核都是一样的,选择一款就可以;

    Framwork:有两种,可以选择Arduino,或者选择官方的ESP-IDF,出于对ESP-IDF比较熟悉,我选择的是ESP32-IDF,当然啦,小伙伴们如果对Arduino比较熟悉,根据自己需要选择就可以了;

    Location:更改项目存储地址;图片  配置完,点击Finish就可以了,但是这个等待的时间太长了,让我一度崩溃,小伙伴们可以试试,不知道是不是小飞哥的网速比较渣。如果也是等了还就还不能创建成功,有另外一种办法是,不选择新建,选择导入例程,里面有不少官方例程,随便导入一个就可以了。图片  测试导入hello world工程,下图是导入的官方源码,修改为每秒打印一次。

     

  • 图片

图片  然后编译、下载,编译成功图片

图片  下载,下载就不用说了,唯一需要注意的是,下载是通过串口的,所以要注意,串口不要被占用,被占用的话会报如下错误,测试代码,程序已经是完美的运行起来了。

图片

图片

4、GPIO操作

  以按键为例子,介绍GPIO的操作,硬件电路连接图片

图片

  硬件连接准备好了,ESP-idf库准备好了,如何编写应用程序呢,这时候就需要接口API了,还是上面的网址:

https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s2/api-reference/indx.html图片  介绍还是比较详细的,先来看GPIO的操作API,API函数也比较多,本次主要用到下面几个:

  • 设置GPIO方向,也即是输入输出模式,可以配置为仅输入、仅输出、输入输出;esp_err_t gpio_set_direction(gpio_num_t gpio_num, gpio_mode_t mode)

    GPIO set direction.

    Configure GPIO direction,such as output_only,input_only,output_and_input

    Return

          ESP_OK Success
    
          ESP_ERR_INVALID_ARG GPIO error
    

    Parameters

          gpio_num: Configure GPIO pins number, it should be GPIO number. If you want to set direction of e.g. GPIO16, gpio_num should be GPIO_NUM_16 (16);
    
          mode: GPIO direction
    
  • 获取GPIO电平状态 int gpio_get_level(gpio_num_t gpio_num)

    GPIO get input level.

    Warning

      If the pad is not configured for input (or input and output) the returned value is always 0.
    

    Return

          0 the GPIO input level is 0
    
          1 the GPIO input level is 1
    

    Parameters

          gpio_num: GPIO number. If you want to get the logic level of e.g. pin GPIO16, gpio_num should be GPIO_NUM_16 (16);
    

  按键代码实现及测试效果,按键按下时,打印信息。

#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_spi_flash.h"
#include "driver/gpio.h"
void app_main()
{
    //esp_err_t gpio_set_direction(gpio_num_t gpio_num, gpio_mode_t mode)
    if (ESP_OK == gpio_set_direction(GPIO_NUM_35, GPIO_MODE_DEF_INPUT))
    {
        printf("Key1 GPIO Input mode set success\n");
    }
    int i = 0;
    while (1)
    {
        if (!gpio_get_level(GPIO_NUM_35))
        {
            vTaskDelay(20 / portTICK_PERIOD_MS); //延时20ms消抖
            if (!gpio_get_level(GPIO_NUM_35))
            {
                printf("Key GPIO Test\n");
            }
        }
        i++;
        if (i % 50 == 0)
        {

            printf("Hello esp32 ttgo!\n");
            printf("hello world!\n");
        }

        vTaskDelay(10 / portTICK_PERIOD_MS);
    }

图片  本次的介绍就到这里啦,后面有更精彩的内容,欢迎大家持续关注嵌入式实验基地!

  如果你觉得对自己有帮助的话,给个赞,点个关注,点个在看,感谢前进的道路上有你的陪伴!

图片

图片

推荐阅读

☞一种你值得拥有的简单易实现的开关电路

☞无线通讯之红外通讯

DIY一个离线语音控制器

HAL库us延时的3种实现方式

逻辑分析仪的简单使用介绍(附带iic,uart,spi数据波形分析)

☞ART-PI重力感应无线智能小车第一弹----ART-PI扩展板设计

ART-PI重力感应无线智能小车第二弹----Onenet+wifi+L298N电机驱动

☞ART-PI重力感应无线智能小车第三弹----RT-Studio+MPU6050+MQTT发布订阅

☞STM32 DAC音频输出

PCB设计基础

☞OLED+ESP8266网络小时钟

欢迎转发、留言、点赞、分享给你的朋友,感谢您的支持!

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在ESP32-S3上实现人脸识别,你可以按照以下步骤进行操作: 1. 在你的ESP32-S3源文件目录下,找到`esp32-opencv-master/esp32s3/scripts/`文件夹,并打开`build_opencv_for_esp32s3.sh`脚本文件。这个脚本文件用于编译OpenCV库的不同模块,确保在`OPENCV_MODULES_LIST`变量中包含了`core`,`imgproc`,`imgcodecs`,`objdetect`,`zlib`等人脸识别所需的模块。 2. 在ESP32-S3上连接到ESP32-EYE的热点。可以在手机的设置中找到Wi-Fi连接,并选择连接到ESP32-EYE的热点。然后在浏览器中输入`192.168.1.4/face_stream`,你将能够看到ESP32-EYE摄像头上的图像。 3. 使用从https://github.com/joachimBurket/esp32-opencv的TTGO Demo作为基础,开始编写你的人脸识别代码。在这个Demo中,你将需要使用`objdetect`库来实现人脸检测。通过将这个库进行静态编译,你可以在ESP32-S3上运行人脸识别或其他检测功能。 以上是在ESP32-S3上实现人脸识别的一般步骤。你可以根据具体的需求和代码库进行调整和扩展。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【EPS32S3学习笔记】ESP32+OPENCV+人脸识别 本地部署](https://blog.csdn.net/lunzilx/article/details/130192521)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [ESP32-S3-EYE开发板开箱体验 esp-who](https://blog.csdn.net/u012294613/article/details/129673477)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小飞哥玩嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值