使用Blinker(点灯科技APP)与ESP32单片机实现远程控制RGB灯

文章目录

使用Blinker(点灯科技APP)与ESP32单片机实现远程控制RGB灯一、项目简介1.Blinker1.1 APP下载1.2 APP界面

2.ESP322.1 ESP32实物图2.2 ESP32引脚图

二、项目实现步骤1.硬件连线1.1 引脚连接表1.2 硬件连线仿真图:1.3 硬件连线实物图:

2.软件配置2.1 创建联网设备2.2 查看Blinker提供的设备密钥2.3生成APP交互界面

3.实现代码4.程序烧录4.1 下载芯片支持包4.2 选择开发板与端口号

一、项目简介

本项目基于点灯科技的一款物联网服务平台APP——Blinker和一块32位物联网单片机——ESP32。实现远程控制RGB灯的开关和调节颜色及亮度。

一个ESP32单片机 一个RGB灯 四根杜邦线 一条microUSB数据线

1.Blinker

1.1 APP下载

安卓端下载 苹果端下载

1.2 APP界面

2.ESP32

2.1 ESP32实物图

2.2 ESP32引脚图

ESP32简介 https://makeronsite.com/esp32-intro.html

二、项目实现步骤

1.硬件连线

1.1 引脚连接表

RGBESP32RGPIO 5GGPIO 18BGPIO 19-GND

1.2 硬件连线仿真图:

1.3 硬件连线实物图:

2.软件配置

2.1 创建联网设备

2.2 查看Blinker提供的设备密钥

2.3生成APP交互界面

3.实现代码

#define BLINKER_WIFI //定义连接的模式,BLINKER_WIFI 表示使用ESP8266/ESP32

#include //导入Blinker库的Blinker.h头文件 导入前需要提前下载Blinker库

#define RED 5 //定义RED 为GPIO 5

#define GREEN 18 //定义GREEN 为GPIO 18

#define BLUE 19 //定义BLUE 为GPIO 19

uint8_t R_val=0; //定义红灯的电压模拟值并赋初值为0

uint8_t G_val=0; //定义绿灯的电压模拟值并赋初值为0

uint8_t B_val=0; //定义蓝灯的电压模拟值并赋初值为0

char auth[] = ""; //此处输入Blinker提供的密钥

char ssid[] = ""; //此处输入要连接的热点名称

char pswd[] = ""; //此处输入要连接的热点密码

/*

*新建组件对象

*/

BlinkerButton Button1("btn-abc"); //新建对象名为btn-abc的按键

BlinkerButton Button2("btn-def"); //新建对象名为btn-def的按键

BlinkerRGB RGB1("col-ghi"); //新建对象名为col-ghi的按键

BlinkerNumber NUMR("num-R"); //新建对象名为num-R的数字

BlinkerNumber NUMG("num-G"); //新建对象名为num-G的数字

BlinkerNumber NUMB("num-B"); //新建对象名为num-B的数字

// 按下按键Botton1即会执行该函数

void button1_callback(const String & state)

{

BLINKER_LOG("get button state: ", state);

analogWrite(RED, 0);

analogWrite(GREEN, 0);

analogWrite(BLUE, 0);

}

// 按下按键Botton2即会执行该函数

void button2_callback(const String & state)

{

BLINKER_LOG("get button state: ", state);

analogWrite(RED, 255); //对RED引脚写入模拟值255

analogWrite(GREEN, 255); //对GREEN引脚写入模拟值255

analogWrite(BLUE, 255); //对BLUE引脚写入模拟值255

}

//该函数用于获得APP颜色组件的RGB数据

void rgb1_callback(uint8_t r_value, uint8_t g_value, uint8_t b_value, uint8_t bright_value)

{

BLINKER_LOG("R value: ", r_value); //获得R(红光)的值

BLINKER_LOG("G value: ", g_value); //获得G(绿光)的值

BLINKER_LOG("B value: ", b_value); //获得B(光)的值

BLINKER_LOG("Rrightness value: ", bright_value); //获得bright(亮度)的值

R_val=map(r_value,0,255,0,bright_value); //红光的值由0~255重映射为0~bright_value

G_val=map(g_value,0,255,0,bright_value); //绿光的值由0~255重映射为0~bright_value

B_val=map(b_value,0,255,0,bright_value); //蓝光的值由0~255重映射为0~bright_value

analogWrite(RED,R_val); //对RED写入模拟值R_val

analogWrite(GREEN,G_val); //对GREEN写入模拟值G_val

analogWrite(BLUE,B_val); //对BLUE写入模拟值B_val

NUMR.print(R_val); //对NUMR数字组件写入R_val数据

NUMG.print(G_val); //对NUMG数字组件写入G_val数据

NUMB.print(B_val); //对NUMB数字组件写入B_val数据

}

//初始化设置

void setup()

{

Serial.begin(115200); // 初始化串口设置波特率为115200bps

/* 初始化有LED的IO */

pinMode(RED, OUTPUT); //RED引脚设为输出

analogWrite(RED, LOW); //把RED引脚初始化为低电平

pinMode(GREEN, OUTPUT); //GREEN引脚设为输出

analogWrite(GREEN, LOW); //把GREEN引脚初始化为低电平

pinMode(BLUE, OUTPUT); //BLUE引脚设为输出

analogWrite(BLUE, LOW); //把BLUE引脚初始化为低电平

/* 初始化blinker */

Blinker.begin(auth, ssid, pswd); //连接无线热点,热点需要能连接互联网

RGB1.attach(rgb1_callback); //连接RGB1颜色组件

Button1.attach(button1_callback); //连接Button1按键组件

Button2.attach(button2_callback); //连接Button2按键组件

}

//无限循环

void loop() {

Blinker.run(); //启动Blinker物联功能

}

4.程序烧录

4.1 下载芯片支持包

!!务必下载2.0.9版本,Blinker目前仅支持到2.0.9,使用最新版本会导致程序烧录失败!!!

4.2 选择开发板与端口号

开发板选择ESP32-WROOM DA Module端口选择USB所连接的端口 可通过设备管理器查看其他设置默认即可最后点击烧录程序

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: