当前位置: 首页 > news >正文

【雕爷学编程】Arduino动手做(186)---WeMos ESP32开发板18

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 ESP32 WiFi蓝牙4MB4闪存UNO R32开发板模块 UNO D1 R32(ESP32)开发板 兼容Arduino

在这里插入图片描述
知识点:ESP32芯片

(包括:ESP32- d0wd、ESP32- d0wdq6、ESP32- d2wd、ESP32-
s0wd)集成了Wi-Fi和双模式蓝牙。根据型号差异,ESP32包含一个或两个低功耗Xtensa®32位LX6微处理器(s),最大时钟速度240
MHz(通常是160 MHz)和Xtensa RAM / ROM,本地内存和JTAG接口。

在这里插入图片描述
在这里插入图片描述

处理器: 主处理器: Tensilica Xtensa 32位LX6微处理器 核心: 2 或
1(取决于变化)除ESP32-S0WD为单核外,ESP32系列所有芯片均为双核。 时钟频率:高达 240 MHz 性能:高达 600
DMIPS 超低功耗协处理器: 允许您在深度睡眠时进行 ADC 转换、计算和电平阈值。 无线连接: 的Wi-Fi: 802.11 B /
G / N / E / I(802.11n标准@ 2.4GHz的高达150兆比特/秒) 蓝牙: v4.2 BR/EDR 和蓝牙低功耗
(BLE) 记忆: 内部存储器: ROM: 448 KiB用于启动和核心功能。 SRAM: 520 KiB用于数据和指令。 RTC 快速
SRAM: 8 KiB用于从深度睡眠模式进行 RTC 启动期间的数据存储和主 CPU。 RTC 慢速 SRAM: 8
KiB用于深度睡眠模式下的协处理器访问。 电子保险丝: 1 Kibit其中 256 位用于系统(MAC 地址和芯片配置),其余 768
位保留用于客户应用,包括 Flash-Encryption 和 Chip-ID。 嵌入式闪存:Flash 通过 ESP32-D2WD 和
ESP32-PICO-D4 上的 IO16、IO17、SD_CMD、SD_CLK、SD_DATA_0 和 SD_DATA_1 内部连接。
0 MiB(ESP32-D0WDQ6、ESP32-D0WD 和 ESP32-S0WD 芯片) 2 MiB(ESP32-D2WD 芯片) 4
MiB(ESP32-PICO-D4 SiP 模块) 外部闪存和 SRAM: ESP32 最多支持四个 16 MiB 外部 QSPI闪存和
SRAM,具有基于 AES 的硬件加密,以保护开发人员的程序和数据。ESP32 可以通过高速缓存访​​问外部 QSPI flash 和
SRAM。 高达 16 MiB 的外部闪存被内存映射到 CPU 代码空间,支持 8 位、16 位和 32 位访问。支持代码执行。 多达 8
MiB 的外部闪存/SRAM 存储器映射到 CPU 数据空间,支持 8 位、16 位和 32 位访问。闪存和 SRAM
支持数据读取。SRAM 支持数据写入。 带有嵌入式 flash 的 ESP32 芯片不支持外部 flash 和外设之间的地址映射。
外设输入/输出:带有 DMA
的丰富外设接口,包括电容式触摸、ADC(模数转换器)、DAC(数模转换器)、I²C(内部集成电路)、UART(通用异步接收器/发送器)
)、CAN 2.0(控制器局域网)、SPI(串行外设接口)、I²S(集成 IC
间声音)、RMII(简化的媒体独立接口)、PWM(脉宽调制)等。 安全: 支持 IEEE 802.11 标准安全功能,包括
WFA、WPA/WPA2 和 WAPI 安全启动 闪存加密 1024位OTP,客户最高768位
加密硬件加速:AES、SHA-2、RSA、椭圆曲线加密(ECC)、随机数生成器(RNG)

在这里插入图片描述
实验的视频记录
优酷:https://v.youku.com/v_show/id_XNTkxOTQxODA2OA==.html?spm=a2hcb.playlsit.page.3

B站:https://www.bilibili.com/video/BV1ye4y1s7n1/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

在这里插入图片描述

实验场景图 动态图

在这里插入图片描述

实验的视频记录2
优酷:https://v.youku.com/v_show/id_XNTkxOTQxODEzNg==.html?spm=a2hcb.playlsit.page.1

B站:https://www.bilibili.com/video/BV1hg411q7yo/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

在这里插入图片描述

实验场景图

在这里插入图片描述

实验的视频记录
优酷:
B站:https://www.bilibili.com/video/BV1nD4y147xD/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

在这里插入图片描述
实验场景图 动态图

在这里插入图片描述

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 R32 ESP32开发板
项目之四十八:Arduino 和 FastLED多彩音乐灯
Arduino实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验一百七十七:Wemos D1 R32 ESP32开发板项目之四十八:Arduino 和 FastLED多彩音乐灯
*/#include <FastLED.h>
#define SAMPLEPERIODUS 200
#define MIC_PIN 39
#define LED_DT 23
#define COLOR_ORDER GRB
#define LED_TYPE WS2812
#define NUM_LEDS 256
uint8_t max_bright = 33;
struct CRGB leds[NUM_LEDS];
CRGBPalette16 currentPalette = RainbowColors_p;
CRGBPalette16 targetPalette;void setup() {pinMode(LED_BUILTIN, OUTPUT);LEDS.addLeds<LED_TYPE, LED_DT, COLOR_ORDER>(leds, NUM_LEDS);FastLED.setBrightness(max_bright);
}float bassFilter(float sample) {static float xv[3] = {0, 0, 0}, yv[3] = {0, 0, 0};xv[0] = xv[1]; xv[1] = xv[2];xv[2] = sample / 9.1f;yv[0] = yv[1]; yv[1] = yv[2];yv[2] = (xv[2] - xv[0]) + (-0.7960060012f * yv[0]) + (1.7903124146f * yv[1]);return yv[2];
}float envelopeFilter(float sample) {static float xv[2] = {0, 0}, yv[2] = {0, 0};xv[0] = xv[1];xv[1] = sample / 160.f;yv[0] = yv[1];yv[1] = (xv[0] + xv[1]) + (0.9875119299f * yv[0]);return yv[1];
}float beatFilter(float sample) {static float xv[3] = {0, 0, 0}, yv[3] = {0, 0, 0};xv[0] = xv[1]; xv[1] = xv[2];xv[2] = sample / 7.015f;yv[0] = yv[1]; yv[1] = yv[2];yv[2] = (xv[2] - xv[0]) + (-0.7169861741f * yv[0]) + (1.4453653501f * yv[1]);return yv[2];
}void loop() {unsigned long time = micros();float sample, value, envelope, beat, thresh, micLev;for (uint8_t i = 0; ; ++i) {sample = (float)analogRead(MIC_PIN);micLev = ((micLev * 67) + sample) / 68;sample -= micLev;value = bassFilter(sample);value = abs(value);envelope = envelopeFilter(value);if (i == 200) {beat = beatFilter(envelope);thresh = 0.02f * 75.;if (beat > thresh) {digitalWrite(LED_BUILTIN, LOW);int strt = random8(NUM_LEDS / 2);int ende = strt + random8(NUM_LEDS / 2);for (int i = strt; i < ende; i++) {uint8_t index = inoise8(i * 30, millis() + i * 30);leds[i] = ColorFromPalette(currentPalette, index, 255, LINEARBLEND);}} else {digitalWrite(LED_BUILTIN, HIGH);}i = 0;}EVERY_N_SECONDS(5) {uint8_t baseC = random8();targetPalette = CRGBPalette16(CHSV(baseC + random8(32), 255, random8(128, 255)),CHSV(baseC + random8(64), 255, random8(128, 255)),CHSV(baseC + random8(64), 192, random8(128, 255)),CHSV(baseC + random8(),   255, random8(128, 255)));}EVERY_N_MILLISECONDS(50) {uint8_t maxChanges = 24;nblendPaletteTowardPalette(currentPalette, targetPalette, maxChanges);}EVERY_N_MILLIS(50) {fadeToBlackBy(leds, NUM_LEDS, 64);FastLED.show();}for (unsigned long up = time + SAMPLEPERIODUS; time > 20 && time < up; time = micros()) {  }} // for i
} // loop()

实验场景图

在这里插入图片描述

实验的视频记录
优酷:
B站:https://www.bilibili.com/video/BV14K411d7y2/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

在这里插入图片描述

实验场景图 动态图

在这里插入图片描述

实验的视频记录
优酷:
B站:https://www.bilibili.com/video/BV1nK411d78Z/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

在这里插入图片描述

相关文章:

【雕爷学编程】Arduino动手做(186)---WeMos ESP32开发板18

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…...

C语言假期作业 DAY 14

一、选择题 1、有以下函数&#xff0c;该函数的功能是&#xff08; &#xff09; int fun(char *s) {char *t s;while(*t);return(t-s); } A: 比较两个字符的大小 B: 计算s所指字符串占用内存字节的个数 C: 计算s所指字符串的长度 D: 将s所指字符串复制到字符串t中 答案解析 …...

Maven-生命周期及命令

关于本文 ✍写作原因 之前在学校学习的时候&#xff0c;编写代码使用的项目都是单体架构&#xff0c;导入开源框架依赖时只需要在pom.xml里面添加依赖&#xff0c;点一下reload按钮即可解决大部分需求&#xff1b;但是在公司使用了dubbo微服务架构之后发现只知道使用reload不足…...

常温超导:AI在研发中的潜力

目录 引言&#xff1a;1. 常温超导的挑战&#xff1a;2. AI在材料研究中的作用&#xff1a;3. AI在理论模型中的作用&#xff1a;4. AI与实验室合作的潜力&#xff1a;结论&#xff1a; 引言&#xff1a; 常温超导一直被认为是科学界的“圣杯”&#xff0c;可以在室温条件下实…...

【C++】开源:Eigen3矩阵与线性代数库配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Eigen3矩阵与线性代数库配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&…...

OpenMesh 网格简化算法(基于边长度)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 网格简化的算法有很多种,基于边结构进行简化的方法便是其中一种方式。此类算法主要关注于它们如何选择要收缩的边,并且似乎都是为流形表面设计的,尽管边缘收缩也可以用于非流形表面,但往往会存在变形较大的问题…...

FFmpeg解码详细流程

介绍 FFmpeg的 libavcodec 模块完成音视频多媒体的编解码模块。老版本的 FFmpeg 将avcodec_decode_video2()作为视频的解码函数 API&#xff0c;将avcodec_decode_audio4()作为音频的解码函数 API&#xff1b;从 3.4版本开始已经将二者标记为废弃过时 API&#xff08;attribut…...

人工智能的缺陷

首先从应用层面理解什么是人工智能&#xff0c;目前人工智能主流应用面包括&#xff1a;自然语言处理领域&#xff0c;代表为chatgpt&#xff0c;我们能用其进行日常交流&#xff0c;问题答疑&#xff0c;论文书写等。计算机视觉领域&#xff0c;代表为人脸识别&#xff0c;现在…...

基于ASP.NET MVC开发的、开源的个人博客系统

推荐一个功能丰富、易于使用和扩展的开源博客&#xff0c;可以轻松地创建和管理自己的博客。 项目简介 基于.Net Framework 4.5开发的、开源博客系统&#xff0c;具有丰富的功能&#xff0c;包括文章发布、分类、标签、评论、订阅、统计等功能&#xff0c;同时也可以根据需要…...

【LeetCode】对称二叉树 平衡二叉树

对称二叉树 即先判断根节点的左右子树相不相同&#xff0c;相同时&#xff0c;再判断左孩子的左子树和右孩子的右子树比较&#xff0c;左孩子的右子树和右孩子的左子树&#xff08;当两个都相同时才是对称的&#xff09;.....依次递推&#xff0c;过程中并设置一些不满足相同的…...

区块链和WEB3.0有哪些基础知识呢

区块链基础知识 常用区块链基础知识包括&#xff1a; &#xff08;1&#xff09;区块链概念&#xff1a;区块链是一种去中心化的分布式账本技术&#xff0c;它通过加密算法和共识机制保证了数据的安全性和不可篡改性。区块链中的每一个区块都包含了前一个区块的哈希值&#x…...

七、封装(1)

本章概要 包的概念 代码组织创建独一无二的包名冲突定制工具库使用 import 改变行为使用包的忠告 访问控制&#xff08;Access control&#xff09;&#xff08;或者_隐藏实现&#xff08;implementation hiding&#xff09;_&#xff09;与“最初的实现不恰当”有关。 所有优…...

问题解决和批判性思维是软件工程的重要核心

软件工程的重心在于问题解决和批判性思维&#xff08;合理设计和架构降低复杂度&#xff09;&#xff0c;而非仅局限于编程。 许多人误以为软件工程就只是编程&#xff0c;即用编程语言编写指令&#xff0c;让计算机按照这些指令行事。但实际上&#xff0c;软件工程的内涵远超…...

【EI/SCOPUS征稿】2023年通信网络与机器学习国际学术会议(CNML 2023)

2023年通信网络与机器学习国际学术会议&#xff08;CNML 2023&#xff09; 2023 International Conference on Communication Networks and Machine Learning 随着数据流量的显著增长&#xff0c;新的通信应用程序不断出现&#xff0c;并产生更多的数据流量&#xff0c;这些数…...

算法-岛屿数量

给你一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外&#xff0c;你可以假设该网格的四条边…...

Crescent QuickPak Crack

Crescent QuickPak Crack Crescent QuickPak是一个32位ActiveX组件的综合集合&#xff0c;用于使用Visual Basic开发应用程序&#xff0c;这将减少开发时间并提高生产力。Crescent QuickPak包含Internet功能&#xff0c;用于打开、读取和解析IIS日志文件&#xff0c;将日志文件…...

六、ESP32数码管显示数字

1. 本节课的成功 2. 数码管 为什么会亮呢? 答:里面就是LED灯...

【Kubernetes】当K8s出现问题时,从哪些方面可以排查

前言 kubernetes&#xff0c;简称K8s&#xff0c;是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes的目标是让部署容器化的应用简单并且高效&#xff08;powerful&#xff09;,Kub…...

[ MySQL ] — 库和表的操作

目录 库的操作 创建数据库 语法&#xff1a; 使用&#xff1a; 字符集和校验规则 查看系统默认字符集以及校验规则 查看数据库支持的字符集 查看数据库支持的字符集校验规则 校验规则对数据库的影响 操纵数据库 查看数据库 显示创建语句 修改数据库 删除数据库 备…...

Hive常见面试题

Hive的基本概念 什么是Hive&#xff1f;它的主要作用是什么&#xff1f; Hive是一个基于Hadoop生态系统的数据仓库和数据处理工具。 它提供了类似于SQL的查询语言&#xff08;HiveQL&#xff09;&#xff0c;使用户能够使用SQL语句来查询和分析 大规模存储在Hadoop集群上的数…...

别再死磕逐位计算了!用C语言手撸一个CRC32查表函数(附完整代码和表格生成)

从零构建高性能CRC32查表算法&#xff1a;嵌入式场景的极致优化实践 在嵌入式开发中&#xff0c;数据校验的效率和资源消耗往往成为系统设计的瓶颈。传统逐位计算的CRC32实现虽然直观&#xff0c;但在处理高速数据流或资源受限环境时&#xff0c;其性能劣势暴露无遗。查表法通过…...

Linux平台微信小程序开发终极指南:免费搭建完整开发环境

Linux平台微信小程序开发终极指南&#xff1a;免费搭建完整开发环境 【免费下载链接】wechat-web-devtools-linux 适用于微信小程序的微信开发者工具 Linux移植版 项目地址: https://gitcode.com/gh_mirrors/we/wechat-web-devtools-linux 在Linux系统上进行微信小程序开…...

AA-PEG-VE,AA-PEG-Vitamin E,用于修饰蛋白质、多肽以及其他含有氨基的材料

一.名称英文名&#xff1a;AA-PEG-VE&#xff0c;AA-PEG-Vitamin E&#xff0c;Acetic Acid-PEG-VE&#xff0c;Acetic Acid-PEG-Vitamin E&#xff0c;Vitamin E-PEG-AA中文名&#xff1a;乙酸聚乙二醇维生素E&#xff0c;乙酸-PEG-维生素E&#xff0c;维生素E-PEG-乙酸分子量…...

LeetCode每日练习题---49.字母异位词分组

49.字母异位词分组 条件 已知&#xff1a; 字符串数组 目标&#xff1a; 将字母异位词组合在一起 思想&#xff08;时间复杂度太高超时了&#xff09; 我的想法是&#xff0c;双重遍历的暴力方法 &#xff0c; 先对字符串数组中的元素进行遍历 &#xff0c;第一层遍历&#xff…...

BMC监控实战:用Python+IPMI打造服务器硬件健康巡检系统

BMC监控实战&#xff1a;用PythonIPMI打造服务器硬件健康巡检系统 当服务器机房的报警铃声在深夜响起&#xff0c;运维团队最需要的是快速定位问题根源——是CPU过热触发了保护机制&#xff1f;还是某个风扇模块突然停转&#xff1f;传统的人工巡检方式在现代化数据中心早已力不…...

CANTools:基于Python的多硬件CAN总线诊断与测试工具开发实践

1. 为什么你需要CANTools这个神器 第一次接触CAN总线开发时&#xff0c;我被动辄十几万的商用测试工具吓到了。作为汽车电子工程师&#xff0c;我们经常需要和ECU打交道&#xff0c;但传统工具的高昂成本让很多小团队望而却步。直到发现可以用Python开发自己的CAN工具&#xff…...

Cockpit CMS终极扩展开发指南:7步创建自定义字段类型与组件

Cockpit CMS终极扩展开发指南&#xff1a;7步创建自定义字段类型与组件 【免费下载链接】cockpit Add content management functionality to any site - plug & play / headless / api-first CMS 项目地址: https://gitcode.com/gh_mirrors/coc/cockpit Cockpit CMS…...

Qwen3.5-2B保姆级教程:20亿参数模型端侧部署与图文对话实操

Qwen3.5-2B保姆级教程&#xff1a;20亿参数模型端侧部署与图文对话实操 1. 模型简介 Qwen3.5-2B是阿里云推出的轻量化多模态基础模型&#xff0c;属于Qwen3.5系列的小参数版本(20亿参数)。这个模型专为低功耗、低门槛部署场景设计&#xff0c;特别适合在端侧和边缘设备上运行…...

如何高效使用FFmpegGUI:面向新手的完整视频处理工具指南

如何高效使用FFmpegGUI&#xff1a;面向新手的完整视频处理工具指南 【免费下载链接】ffmpegGUI ffmpeg GUI 项目地址: https://gitcode.com/gh_mirrors/ff/ffmpegGUI FFmpegGUI是一款让零基础用户也能轻松掌握专业视频处理的跨平台图形界面工具。这款基于Electron和Rea…...

实战应用:基于快马平台开发企业内网服务可用性监控系统

今天想和大家分享一个最近用InsCode(快马)平台快速实现的实用项目——企业内网服务可用性监控系统。这个需求来源于我们公司内部的实际痛点&#xff1a;随着服务器数量增加&#xff0c;经常出现某个服务端口异常但没人及时发现的情况。 1. 项目背景与需求分析 我们公司有几十…...