基于ESP32-S3的高性能开发板介绍

描述

 

开发板介绍

FireBeetle 2 ESP32-S3是一款基于ESP32-S3-WROOM-1-N16R8模组设计的主控板。ESP32-S3-WROOM-1-N16R8模组拥有16MB Flash和8MB PSRAM,可以存储更多的代码和数据,模组搭载的ESP32-S3芯片拥有强大的神经网络运算能力和信号处理能力,适用于图像识别、语音识别等项目。

板载摄像头接口,可以方便的连接摄像头,独立的摄像头供电电路,减少了其他信号对摄像头的干扰。开发板附带了一个OV2640摄像头,该摄像头拥有200万像素和68°视场角,最高支持1600*1200分辨率。FireBeetle 2 ESP32-S3板载GDI屏幕接口,解决使用屏幕时的接线烦恼,集成电源管理功能,支持锂电池充电和硬件开关机。

支持Wi-Fi 和 Bluetooth 5 (LE) 双模通讯,降低了设备配网难度,同时还支持蓝牙 Mesh (Bluetooth Mesh) 协议和乐鑫 Wi-Fi Mesh可以实现更高的通讯稳定性和更大的覆盖面积。FireBeetle 2 ESP32-S3支持Matter协议,可用于开发符合智能家居家居行业统一标准的设备,适用于广泛的物联网场景。

可以使用Arduino IDE、ESP-IDF、MicroPython进行编程,C语言、python都可以轻松的操纵硬件。

1.搭建开发环境

感谢电子发烧友社区提供的测评机会,参加DFRobot 的FireBeetle 2 ESP32-S3开发板的测评。

在官网的介绍页面,可以看到板卡相关的介绍信息DFROBOT:DFR0975 FireBeetle 2 Board ESP32-S3 产品资料使用教程。

1.1开发板资源介绍

开发板的主控模块使用的是ESP32-S3-WROOM-1-N16R8模组,拥有16MB Flash和8MB PSRAM。搭载的ESP32-S3芯片拥有强大的神经网络运算能力和信号处理能力,适用于图像识别、语音识别等项目。

 

产品的特性如下:

ESP32-S3模组,支持AI加速

16MB Flash和8MB PSRAM,更大的代码存储空间

板载摄像头接口和独立的摄像头供电,连接方便抗干扰强

集成电源管理,支持锂电池充电和硬件开关机

板载GDI接口,轻松连接屏幕

支持Wi-Fi 和 Bluetooth 5双模通讯

2.官方Arduino例程学习

在DFrobot的官方网站上,提供了很多Arduino的演示例程,可以帮助我们快速使用这块开发板来时实现各种应用。本文对官方的例程进行演示。

1.1 PWM例程演示

Arduino

 

参考官方的指南,在Ardinuo中编写以下代码,即可通过PWM波的方式实现呼吸灯的效果,由于LED与LCD的背光控制引脚是连接在一起的,所以LCD屏幕的亮度也会随着变化。

 

/*
 * LED呼吸灯示例
 */
const int ledPin = 21;  // PWM生成后实际输出引脚


//设置PWM参数
const int freq = 10000;//PWM频率
const int ledChannel = 0;//信号生成GPIO
const int resolution = 8;//8位分辨率


void setup(){
  //PWM参数设置
  ledcSetup(ledChannel, freq, resolution);


  //将生成信号通道绑定到输出通道上
  ledcAttachPin(ledPin, ledChannel);
}


void loop(){
  //逐渐变亮
  for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){   
    // changing the LED brightness with PWM
    ledcWrite(ledChannel, dutyCycle);
    delay(15);
  }


  //逐渐变暗
  for(int dutyCycle = 255; dutyCycle >= 0; dutyCycle--){
    // changing the LED brightness with PWM
    ledcWrite(ledChannel, dutyCycle);   
    delay(15);
  }
}

 

(左右移动查看全部内容)

3.乐鑫ESP-WHO解决方案移植

无论是Arduino还是MicroPython,封装好的库极大地方便了开发者的开发流程,但是对于没有得到支持的部分,就需要开发者自己阅读官方提供的源码并对其进行修改来适配对应的场景。

1.1 ESP-WHO简介

Arduino

1.2 驱动接口适配

官方提供的样例都是基于特定开发板实现的,其中没有对FireBeetle2 S3这款开发板进行适配,这时就需要我们修改代码来适配我们的工程。首先,需要根据我们的硬件来修改相应的底层驱动代码,这样示例程序才能正确的驱动外设来执行程序。

1.2.1 电源管理芯片程序移植

通过查看ESP-WHO中的who camera程序,其中是没有电源驱动的程序的,而FireBeetle2 S3的摄像头供电使用电源管理芯片来控制的,所以在使用摄像头之前需要对电源进行配置。DFRobot_AXP313A的驱动库中有对ESP-IDF的驱动程序,对其进行修改后就可以驱动电源管理芯片给摄像头供电。

4.基于FireBeetle 2 ESP32-S3

开发板的WiFi嗅探器

在之前分享的第三篇文章 【FireBeetle 2 ESP32-S3开发板体验】基于ESP32S3+SPIFFS+AsyncWebServer+SQLite3的硬件地址归属品牌(厂商)查询工具 中,已经实现了通过硬件设备mac地址,查询其所归属的品牌(厂商)信息的功能,那么这篇文章则基于此,再进一步。

Arduino

这里的硬件设备地址,需要自己去查看,然后输入进来。

那么,有办法自动获取硬件设备地址吗?

有,那就是WiFi嗅探。

一、知识了解

什么是WiFi嗅探?

通过如下页面可以了解:wifi嗅探原理-掘金 (juejin.cn)

Wi-Fi 嗅探是一种通过拦截无线网络流量数据包来获取网络信息的技术。在 Wi-Fi 嗅探中,使用无线网络适配器或专门的网络嗅探工具来监控网络流量,抓取网络数据包,然后分析这些数据包中的信息。

Wi-Fi 嗅探的原理是通过监听无线网络适配器收到的数据包,获取数据包的源和目标 MAC 地址,以及数据包的内容信息。Wi-Fi 嗅探可以监听和分析包括 SSID、密码、MAC 地址、IP 地址、数据传输方式等在内的各种网络信息。

当您连接到一个 Wi-Fi 网络时,您的设备会向 Wi-Fi 接入点发送数据包,以获取网络的授权和访问权限。这些数据包通常包括无线网络的 SSID、密码和 MAC 地址等信息。Wi-Fi 嗅探器可以捕获这些数据包,并通过解密和分析这些数据包来获取网络信息。

需要注意的是,Wi-Fi 嗅探需要在合法和合适的情况下进行。非法的 Wi-Fi 嗅探行为可能会侵犯他人的隐私和安全,因此请务必遵守相关的法律法规和道德规范。

虽然WiFi嗅探不是很光彩,但是现实中,确实有很多场景使用,很多互联网DMP平台都根据硬件设备地址投放广告。

举几个简单的例子:

在商场中,可以通过WiFi嗅探,来了解客流量。因为现在出门都会带个手机,一般WiFi功能也没有主动关闭。

对于连锁门店,用户可能会去多个店询问服务价格,通过WiFi嗅探,可以感知用户是否去过其他门店,从而防止差异性服务价格的出现。

但是新的版本的手机,未连接到WiFi时,可能会设置随机发送mac地址广播,但是,一旦连接到WiFi,其硬件设备地址则是固定的;可以通过提供通用WiFi服务的方式,来诱使其连接,从而获得其硬件设备地址。

好了,不多说了,说多了,你知道的太多了!!!

5.基于GDI接口的高清IPS屏的

LVGL使用

这次的FireBeetle 2 ESP32-S3开发板不仅提供了CAM(Camera)接口,还提供了GDI接口:

Arduino

一、GDI接口和显示屏了解

这个GDI接口,是为DFRbot专用GDI显示屏准备的接口,使用18pin-FPC线连接屏幕,连接屏幕更加便捷。

Arduino

GDI显示屏的连接:

Arduino

我手头刚好有一个DFRobot的GDI接口显示屏:

 

官方介绍如下:

这是一款1.47英寸,分辨率为172×320的彩色高清IPS显示屏 。采用驱动芯片ST7789V3、SPI通讯接口,显示屏显示区域占比大,边框宽度仅 1mm,圆弧边角,外形小巧美观,显示效果精细、清晰,还原真实色彩。显示屏上可高清显示各种文字、图像、动画、甚至是视频,基于 Arduino 的图像显示 GDL 库和 LVGL 库,可以做出酷炫的动态效果,适合DIY电子项目。可广泛应用于迷你游戏机、迷你气象站、背包挂件、迷你时钟、迷你视频播放、礼物制作、小型仪表显示等场景。

FireBeetle 2 ESP32-S3开发板 的GDI 接口具体定义如下:

Arduino

这个接口,可以专用于GDI接口的显示屏,也可以用一个FPC转接板,当作普通引脚使用:

 

在Arduino开发环境中,DFRobot为GDI接口的显示屏,提供了 DFRobot_GDL库 专门用于屏幕显示操作。

不过,我更想使用更为通用的LVGL,而且LVGL官方也为Arduino开发环境提供了良好的支持。

总结:

得益于DFRobot的良好设计,GDI屏幕的连接上没有任何难度,也得益于Arduino开发平台的强大和可扩展性,使得LVGL能够良好的运行。

LVGL真的太方便了,适配的平台多,支持的功能也全面,效果也废话的出色,想要获得更好效果的同学,务必要了解了解,学习学习,保准不会失望。

 

  审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分