ESP32-Cam 之 鸡你太美

效果图

在这里插入图片描述

platformio.ini
; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:esp32dev]
platform = espressif32
board = esp32cam
framework = arduino


; 指定端口下载程序
upload_port = COM16

; 配置串口监视器的默认波特率115200
monitor_speed = 115200

board_build.partitions = ./user_huge_app.csv

项目结构

在这里插入图片描述
忽略wokwi.toml,和diagra.json,这两个文件是云开发需要的

接线图

在这里插入图片描述

user_huge_app.csv
# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x5000,
otadata,  data, ota,     0xe000,  0x2000,
app0,     app,  ota_0,   0x10000, 0x3F0000,
spiffs,   data, spiffs,  0x400000,0x0,

main
/*
实现功能:显示鸡你太美GIF图
轻玩科技,全网同号
*/

#include <Arduino.h>
#include <U8g2lib.h> //导入第三方函数库:U8g2

#include "../include/KUNKUN.h"
#include "../include/wifi_gif.h"
// 初始化U8g2库,设置显示驱动为SSD1306,分辨率为128x64,通信方式为硬件I2C
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/U8X8_PIN_NONE, /* clock=*/14, /* data=*/15);

// 定义一个常量数组,存储鸡你太美GIF图的每帧BMP数据
const uint8_t *gntmData[] = {BMP1, BMP2, BMP3, BMP4, BMP5, BMP6, BMP7, BMP8, BMP9, BMP10, BMP11, BMP12, BMP13, BMP14, BMP15, BMP16, BMP17, BMP18, BMP19, BMP20, BMP21, BMP22, BMP23, BMP24, BMP25, BMP26, BMP27, BMP28, BMP29, BMP30, BMP31, BMP32, BMP33, BMP34, BMP35, BMP36, BMP37, BMP38, BMP39, BMP40, BMP41, BMP42, BMP43, BMP44, BMP45, BMP46, BMP47, BMP48, BMP49, BMP50, BMP51, BMP52, BMP53, BMP54, BMP55};
const uint8_t *wifiData[] = {wifi_gif1, wifi_gif2, wifi_gif3, wifi_gif4, wifi_gif5, wifi_gif6, wifi_gif7, wifi_gif8, wifi_gif9, wifi_gif10, wifi_gif11, wifi_gif12, wifi_gif13, wifi_gif14, wifi_gif15, wifi_gif16, wifi_gif17, wifi_gif18, wifi_gif19, wifi_gif20, wifi_gif21, wifi_gif22, wifi_gif23, wifi_gif24, wifi_gif25, wifi_gif26};

// 当前帧索引
int currentFrame = 0;

/**
 * @brief 初始化函数,设置显示设备和清空显示内容
 */
void setup()
{
  Serial.begin(115200);
  // 初始化U8g2库
  u8g2.begin();
  // 清空显示内容
  u8g2.clearDisplay();
}

/**
 * @brief 主循环函数,用于显示鸡你太美GIF图
 */
void loop()
{
  // 清空显示缓冲区
  u8g2.clearBuffer(); // 清空显示缓冲区

  u8g2.setFont(u8g2_font_ncenB10_tr); // 设置字体
  // u8g2.drawStr(0, 20, "Ji Ni Taimei"); // 在坐标(0, 20)处绘制文本
  u8g2.sendBuffer(); // 将缓冲区的内容发送到显示设备进行显示
  // 在缓冲区中绘制当前帧的BMP图像
  u8g2.drawXBMP(0, 0, 128, 64, gntmData[currentFrame]);
  u8g2.drawXBMP(0, 0, 48, 48, wifiData[currentFrame]);

  // 将缓冲区的内容发送到显示设备进行显示
  u8g2.sendBuffer();
  // 延时33毫秒,控制帧率为每秒30帧
  delay(25);

  // 更新当前帧索引
  currentFrame = (currentFrame + 1) % 26; // 假设你的GIF图有38帧

  Serial.println("currentFrame =============== " + currentFrame);
}

项目源码

资源文件就不复制,自行下载即可
https://download.csdn.net/download/qq_20330595/90320529

bmp2image

bmp转c++数组,非常好用
https://javl.github.io/image2cpp/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值