# ESP32 **Repository Path**: kid-kid/esp32 ## Basic Information - **Project Name**: ESP32 - **Description**: esp32相关Code和代码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-07-14 - **Last Updated**: 2024-12-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ESP32_Code **1.PinSet : 引脚定义概览** ![pinout](1.PinSet/pinout.png) **2.Code 工程代码** - **1.ESP32_Touch** ESP32的触摸引脚实验以及中断实验 - **2.ESP32_Timer_PWM** ESP32的产生PWM波形 - **3.ESP32_WiFi_JSON** ESP32的WiFI连接到Bilibili并获得粉丝数等 - **4.ESP32_BLE** - **5.ESP32_BlueTooth** 经典蓝牙,通过手机App实现ESP32的通信收发数据 注意事项:采用手机热点成功后再用Wifi,不知道是不是我的wifi设置哪里有问题导致的连不上,可能是wifi名称不规范字符太多,后面再试。 - **6.ESP32_PlatformIODoc** - **7.MiniProgram** - **8.ESP32_DS18B20(温度传感器实验)** ​ 通过platformIO的library添加**DallasTemperature**库进行DS18B20驱动。 注意事项:一定要在VCC和信号线之间加上上拉电阻,否则驱动失败会一直显示-127° ![lib](2.Code/8.ESP32_DS18B20/lib.PNG) - **9.ESP32_DHT11(温湿度传感器实验)** ​ 通过platformIO的library搜索**DHT sensor library**库进行DHT11驱动。 ![lib](2.Code/9.ESP32_DHT11/lib.PNG) 注意事项:如果没有驱动失败在代码没问题的条件下考虑加一下在信号线和VCC上加拉电阻 - **10.ESP32_BH1750(光照强度传感器实验)** ​ 通过platformIO的library搜索**BH1750**库进行**BH1750**驱动。 ![lib](2.Code/10.ESP32_BH1750(LightSensor)/lib.PNG) - **11.ESP32_HC_SR04 (超声波测距实验)** ​ 通过platformIO的library搜索**SR04**库进行HC_SR04驱动。 注意事项:代码里添加了DS18B20提供温度补偿,不加的话默认19.037℃下声波速度340m/s。 ![LIB](2.Code/11.ESP32_HC_SR04/LIB.PNG) - **12.ESP32_SG90(舵机驱动实验)** ​ 通过platformIO的library搜索**ESP32Servo**库进行舵机驱动。 ![lib](2.Code/12.ESP32_SG90/lib.PNG) 库官方代码里用了5个舵机驱动引脚,我们实际驱动舵机只需要一个引脚就可以了。这里选用的Pin13,根据pinout显示其为RTC_GPIO14,查找PWM驱动里定义14通道为定时器3,所以我们使能一个定时器3即可。 - **13.ESP32_SSD1306(0.96寸OLED)** ​ 通过platformIO的library搜索SSD1306库进行OLED驱动。 ![lib](2.Code/13.ESP32_SSD1306/lib.PNG) 另外,库目录下有各种example例程直接全部拷贝到main.cpp然后选择对应的IIC或者SPI接口即可。 - **14.ESP32_TFTLCD(st7789)** ​ 通过platformIO的library搜索st7789库进行LCD驱动。 ![lib](2.Code/14.ESP32_TFTLCD(st7789)/lib.PNG) 将示例代码Copy到main.c后需要修改下面五个地方: ① main.c里的屏幕分辨率 ```C // Size of sprite image for the scrolling text, this requires ~14 Kbytes of RAM #define IWIDTH 240 #define IHEIGHT 320 ``` ②User_Setup.h里选择显示IC ```C++ #define ST7789_DRIVER //选择自己的板子对应的显示IC ``` ③User_Setup.h里根据自己板子定义引脚 ```C++ #define TFT_MOSI 23 // In some display driver board, it might be written as "SDA" and so on. #define TFT_SCLK 18 #define TFT_CS 19 // Chip select control pin #define TFT_DC 2 // Data Command control pin #define TFT_RST 4 // Reset pin (could connect to Arduino RESET pin) #define TFT_BL 5 // LED back-light ``` ④User_Setup.h里设置SPI速度,默认写spi27M ```C++ // #define SPI_FREQUENCY 1000000 // #define SPI_FREQUENCY 5000000 // #define SPI_FREQUENCY 10000000 // #define SPI_FREQUENCY 20000000 #define SPI_FREQUENCY 27000000 // #define SPI_FREQUENCY 40000000 // #define SPI_FREQUENCY 55000000 // STM32 SPI1 only (SPI2 maximum is 27MHz) // #define SPI_FREQUENCY 80000000 // Optional reduced SPI frequency for reading TFT #define SPI_READ_FREQUENCY 20000000 // The XPT2046 requires a lower SPI clock rate of 2.5MHz so we define that here: #define SPI_TOUCH_FREQUENCY 2500000 ``` ⑤ main.c 拷贝过来的代码应该会报错,因为下面用到的函数没有定义就是用 ```C++ void build_banner(String msg, int xpos); void numberBox(int num, int x, int y); unsigned int rainbow(byte value); ``` 另外,对应的TFT_eSPI的example路径如下: ```c \.pio\libdeps\esp32dev\TFT_eSPI\examples ``` ![ex](2.Code/14.ESP32_TFTLCD(st7789)/ex.PNG) 里面各个例子的文件格式为.ino,打开后将里面的代码拷贝到main.c即可进行测试,比如DMA test里面的例子有如下说明,开不开DMA对比都有列出来。每个例子都有详细的说明,非常的好。 ```C++ // Define to use DMA for Sprite transfer to SPI TFT, comment out to use no DMA // (Tested with Nucleo 64 STM32F446RE and Nucleo 144 STM32F767ZI) // STM32F767 27MHz SPI 50% processor load: Non DMA 52 fps, with DMA 101 fps // STM32F767 27MHz SPI 0% processor load: Non DMA 97 fps, with DMA 102 fps // ESP32 27MHz SPI 0% processor load: Non DMA 90 fps, with DMA 101 fps // ESP32 40MHz SPI 0% processor load: Non DMA 127 fps, with DMA 145 fps // NOTE: FOR SPI DISPLAYS ONLY ``` 测试结果如下: ![DMAtest](2.Code/14.ESP32_TFTLCD(st7789)/DMAtest.gif) **15.ESP32_LVGL(ST7789)** 在实验14的基础上进行搜索LVGL库.。 ![lib](2.Code/15.ESP32_LVGL(ST7789)/lib.PNG) - **Next 持续更新中.......** **3.Software** - ① Everything :文件搜索软件 - ②SerialBT:蓝牙串口调试app