ESP8266 + Arduino (二) GPIO和串口---2022.2.26

一. 开发板介绍

在这里插入图片描述

1. ESP8266 CP2102物联网模块

NodeMCU板载ESP-12E(4MBFlash) WIFI模组和USB转TTL串口(CP2102/CH340)芯片,方便下载固件和调试, NodeMCU默认为Lua固件,如需使用AT指令,请下载新的AT固件。开发板核心处理器ESP8266在较小尺寸封装中集成了业界领先的TensilicaL106超低功耗32位微型MCU,带有16位精简模式,主频支持80MHz和160MHz,支持RTOS,集成Wi-FiMAC/B/RF/PA/LNA,板载天线。支持标准的IEEE802.11b/g/n协议,完整的TCP/IP协议栈。用户可以使用该模块为现有的设备添加联网功能,也可以构建独立的网络控制器。
ESP8266是高性能无线SOC,以最低成本提供最大实用性, 为WiFi功能嵌入其他系统提供无限可能。
802.11 b/g/n
内置TensilicaL106超低功耗32位微型MCU,主频支持80MHz和160MHz,支持RTOS
160KB SRAM(64KB lRAM+96KB DRAM)
内置10bit高精度ADC
内置TCP/IP协议栈
内置TR开关、balun、LNA、功率放大器和匹配网络内置PLL、稳压器和电源管理组件, 802.11b模式下+20dBm的输出功率
A-MPDU、A-MSDU的聚合和0.4s的保护间隔
WiFi@2.4GHz,支持WPA/WPA2安全模式
支持AT远程升级及云端OTA升级
支持STA/AP/STA+AP工作模式
支持Smart Config功能(包括Android和ios设备)
HSPI、UART、I2C、12S、IRRemote Control、PWM、GPIO深度睡眠保持电流为10uA,关断电流小于5uA
2ms之内唤醒、连接并传递数据包
支持Smart Config/AirKiss-键配网支持SDK二次开发
待机状态消耗功率小于1.0mW (DTIM3)

2. 引脚说明

在这里插入图片描述

二、GPIO

1、初始化GPIO

pinMode(pin, mode)

作用:设置一个引脚(pin)作为GPIO时的I/O模式。

参数:
pin:引脚编号
mode:GPIO的I/O模式,取值有3种
INPUT :作为数字输入
OUTPUT :作为数字输出
INPUT_PULLUP:作为数字输入,且使能引脚的内部上拉电阻

注意:
a、引脚作为PWM输出时,无需先前使用pinMode配置其模式,因为PWM本身就代表了输出的意思。且官方库源代码中可以发现,它已经帮我们配置为输出了。

b、模拟引脚也可以作为数字引脚使用,完全OK。这在数字引脚不够用的情况下非常有用。

2、GPIO数字输出

digitalWrite(pin,value)

作用:设置一个数字输出引脚的输出电平值,HIGH或者LOW。

参数:
pin:引脚编号。此引脚必须在之前使用pinMode设置为OUTPUT模式
value:2个值

LOW:输出低电平

HIGH:输出高电平

3、GPIO数字输入

int digitalRead(pin)

作用:读取一个数字输入引脚的电平值。

返回:HIGH(高电平)或者LOW(低电平)。

参数:

pin:引脚编号。

示例 : 按键控制灯亮灭

void setup()
{
  pinMode(2,OUTPUT);
  pinMode(0,INPUT_PULLUP);
}
 
void loop()
{
  if(digitalRead(0))
  {
    while(digitalRead(0));
    digitalWrite(2,!digitalRead(2));
  }
}

4、GPIO模拟输入:analogRead(pin)

注意 : 模拟输入是通过PWM实现的, 所以不需要初始化PIN
analogRead(4)

5. 模拟信号输入分辨率: analogSetWidth(bit);

bit的值范围
90~511
100~1023
110~2047
12(默认)0~4095

三、串口打印 UART

E S P 32 \color{#FF3030} { ESP32} ESP32 共有3个UART端口, 其中UART1用于Flash读/写.

串口名Arduino名TXRX
UART0Serialpin1pin3
UART1Serial1pin10pin9
UART2Serial2pin17pin16

1、串口初始化

Serial.begin(speed, config)

  • 参数

    • speed:波特率,一般取值9600,115200等。
    • config:设置数据位、校验位和停止位。默认SERIAL_8N1表示8个数据位,无校验位,1个停止位。
  • 返回值:无。

2、关闭串口

Serial.end()

  • 描述:禁止串口传输。此时串口Rx和Tx可以作为数字IO引脚使用。

  • 原型:Serial.end()

  • 参数:无。

  • 返回值:无。

3、串口打印

Serial.print()

  • 描述:串口输出数据,写入字符数据到串口。
  • 原型:
    • Serial.print(val)
    • Serial.print(val, format)
  • 参数:
    • val:打印的值,任意数据类型。
    • config:输出的数据格式。BIN(二进制)、OCT(八进制)、DEC(十进制)、HEX(十六进制)。对于浮点数,此参数指定要使用的小数位数。

4、串口输出数据并换行 println() 和 printf()

Serial.println()
Serial.printf()

  • 描述:串口输出数据并换行。
  • 原型:
    • Serial.println(val)
    • Serial.println(val, format)
  • 参数:
    • val:打印的值,任意数据类型。
    • config:输出的数据格式。
  • 返回值:返回写入的字节数。

附: 常用格式字符及转义字符

字符说明
%o八进制整数输出
%d十进制整数输出
%x十六进制整数输出
%f浮点输出,默认6位小数
%c单字符输出
%s字符串输出
\n换行
\r回车
\tTab制表符

原文链接:https://blog.csdn.net/finedayforu/article/details/108464870

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Arduino IDE进行ESP32-CAM视频流和人脸识别的步骤如下: 1. 首先,确保已将ESP32-CAM模块正确连接到Arduino开发板,并将其与计算机连接。 2. 打开Arduino IDE软件,并通过“工具”菜单选择正确的开发板类型和串行端口。 3. 点击“文件”菜单,选择“示例”,然后找到ESP32-CAM的库文件示例。在这里,我们需要找到“CameraWebServer”和“CameraWebServer”示例。 4. 首先,加载“CameraWebServer”示例。此示例可以帮助我们开始使用ESP32-CAM模块进行视频流传输。点击“上传”按钮将代码上传到ESP32-CAM模块上。 5. 当代码成功上传后,打开串口监视器,你将看到ESP32-CAM模块的IP地址。将此地址复制并在电脑上的网络浏览器中打开。 6. 然后,我们需要进行人脸识别的设置。加载“CameraWebServer”示例后,找到代码中的部分,其中涉及人脸识别。这里可以更改和配置人脸识别的相关参数。 7. 在代码中,找到人脸识别的部分,并根据你的需求进行设置。你可以使用一些开源的人脸识别库,如OpenCV,来实现人脸识别功能。 8. 更改完代码后,点击“上传”按钮将代码上传到ESP32-CAM模块上。 9.再次打开串口监视器,你将看到人脸识别的结果。通过网络浏览器打开ESP32-CAM模块的IP地址,你将能看到实时视频流,并应用人脸识别功能。 以上就是使用Arduino IDE进行ESP32-CAM视频流和人脸识别的简要步骤。具体的代码和配置可能因个人需求而有所不同,但这些步骤将帮助你开始使用ESP32-CAM模块进行视频流传输和人脸识别。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值