37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
ESP32-CAM 是一款非常小的摄像头模块,配备 ESP32-S 芯片。除了 OV2640 摄像头和几个用于连接外围设备的 GPIO 外,它还具有一个 microSD 卡插槽,可用于存储使用摄像头拍摄的图像或存储文件以提供给客户。包括乐鑫 ESP32-S Wifi + 蓝牙+BLE 芯片、2MP 摄像头模块 OV2640 和带有 CH340 UART 芯片的 USB 编程适配器。
ESP32-Cam 是一款运行在 ESP32-S 芯片上并使用 OV2640 摄像头的小型摄像头模块。ESP32_Cam 也可以 OV7670 摄像头,但 OV2640 更好(更高的分辨率和内置的 JPEG 编码,这消除了 ESP32-S 的处理任务)。
ESP-32 Cam 规格
ESP-32 系列
它支持 Wi-Fi (802.11b/g/n)
支持蓝牙 (4.2 带 BLE)
内置 LED 闪光灯
9 个 IO 端口
支持 UART、SPI、I2C 和 PWM
内置 micro SD 读卡器
输入电源:3.3V / 5V(据报道,5V 供电比 3.3V 更稳定)
OV2640 摄像头
2 百万像素
阵列尺寸:UXGA (1600 x 1200)
镜头尺寸:1/4 英寸(6.35 毫米)
最大图像传输速率:15 帧/秒
实验模块接线示意图
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
项目实验之九:测试ESP32-CAM模块的WIFI信号电平强度数值
实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
项目实验之九:测试ESP32-CAM模块的WIFI信号电平强度数值
*/
// 引入WiFi库
#include "WiFi.h"
// SSID和密码 - 修改为你的WiFi网络信息
const char* ssid = "zhz3";
const char* password = "z156721";
void setup(){
// 设置串口监视器
Serial.begin(115200);
// 启动WiFi并连接到网络
WiFi.begin(ssid, password);
// 等待连接建立
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print("-");
}
// WiFi已连接
Serial.println("");
Serial.print("已经连接到网络 ");
Serial.println(ssid);
delay(100);
}
void loop(){
Serial.print(ssid);
Serial.print(" 信号电平: ");
Serial.println(WiFi.RSSI());
delay(2000);
}
实验串口返回情况
代码说明
1、引入WiFi库:
// 引入WiFi库
#include "WiFi.h"
这行代码引入了用于WiFi功能的库。
定义SSID和密码:
// SSID和密码 - 修改为你的WiFi网络信息
const char* ssid = "zhz3";
const char* password = "z156721";
这里定义了WiFi网络的SSID(网络名称)和密码。
2、设置函数:
void setup(){
// 设置串口监视器
Serial.begin(115200);
// 启动WiFi并连接到网络
WiFi.begin(ssid, password);
// 等待连接建立
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print("-");
}
// WiFi已连接
Serial.println("");
Serial.print("已经连接到网络 ");
Serial.println(ssid);
delay(100);
}
Serial.begin(115200); 初始化串口通信,波特率为115200。
WiFi.begin(ssid, password); 启动WiFi并尝试连接到指定的网络。
while (WiFi.status() != WL_CONNECTED) { … } 循环等待,直到WiFi连接成功。在等待期间,每隔500毫秒输出一个“-”。
Serial.println(“”); 输出一个空行。
Serial.print("已经连接到网络 "); 和 Serial.println(ssid); 输出连接成功的信息和网络名称。
delay(100); 延迟100毫秒。
3、循环函数:
void loop(){
Serial.print(ssid);
Serial.print(" 信号电平: ");
Serial.println(WiFi.RSSI());
delay(2000);
}
Serial.print(ssid); 输出网络名称。
Serial.print(" 信号电平: "); 输出“信号电平: ”。
Serial.println(WiFi.RSSI()); 输出当前WiFi信号强度(RSSI)。
delay(2000); 延迟2秒,然后重复循环。
这段代码的功能是连接到指定的WiFi网络,并每隔2秒在串口监视器上输出当前的WiFi信号强度。
实验场景图