当然可以!下面是一个使用 Blinker 库编写的 ESP32-C3 蓝牙控制电灯程序。这个程序将允许您通过 Blinker 应用控制连接到 GPIO 3 和 GPIO 4 的 LED。
硬件连接
- 将 LED 的正极(长脚)连接到 ESP32-C3 的 GPIO 3。
- 将 LED 的负极(短脚)通过一个适当的电阻(例如220Ω)接地。
- 将另一个 LED 的正极连接到 GPIO 4,负极同样接地。
示例代码
以下是 Arduino 代码:
#include <BLINKER.h>
#include <BLINKER_BLE.h>
// 创建一个 BLINKER_BLE 对象并命名为 "ESP32-C3-BLE"
BLINKER_BLE blinker("ESP32-C3-BLE");
// 定义要控制的 LED 引脚
const int led1Pin = 3; // 控制第一个 LED (abc)
const int led2Pin = 4; // 控制第二个 LED (abd)
void setup() {
Serial.begin(115200);
// 初始化 BLINKER
blinker.begin();
// 设置引脚模式
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
// 启动默认状态,关闭所有LED
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
// 附加数据处理函数,当接收到消息时调用它们
blinker.attachData(dataReceived);
}
void loop() {
blinker.run(); // 必须运行这个函数以保持与手机应用的连接
}
// 接收来自 Blink 应用的数据并控制 LED
void dataReceived(const String &data) {
Serial.print("Received Data: ");
Serial.println(data);
if (data == "abc") { // 如果接收到"abc"则打开第一个LED
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, LOW); // 确保第二个LED关闭
Serial.println("LED1 ON");
} else if (data == "abd") { // 如果接收到"abd"则打开第二个LED
digitalWrite(led2Pin, HIGH);
digitalWrite(led1Pin, LOW); // 确保第一个LED关闭
Serial.println("LED2 ON");
} else { // 如果接收到其他数据则关闭所有LED
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
Serial.println("Both LEDs OFF");
}
}
编译和上传代码
- 打开 Arduino IDE,将上述代码粘贴进去。
- 在工具菜单中选择正确的开发板和端口(Tools -> Board -> ESP32C3 Dev Module)。
- 上传代码到您的 ESP32-C3 开发板。
使用 Blinker 移动应用程序
- 下载并安装 Blinker 应用程序。
- 打开应用程序,添加新的设备,选择“BLE”模式,并扫描设备名称为 “ESP32-C3-BLE” 的设备。
- 一旦成功连接,您可以发送字符串“abc”来打开连接到 GPIO 3 的 LED,或发送字符串“abd”来打开连接到 GPIO 4 的 LED。如果您发送任何其他字符串,则两个 LED 都会关闭。
注意事项
- 请确保在项目中使用合适的限流电阻,以保护您的 LEDs 不受损坏。
- 可以根据需要修改数据处理逻辑,以实现更多功能或更复杂的控制方式。
如果有任何问题或需要进一步帮助,请随时告知!
内容由零声教学AI助手提供,问题来源于学员提问