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


文章目录

  • 使用Blinker(点灯科技APP)与ESP32单片机实现远程控制RGB灯
  • 一、项目简介
  • 1.Blinker
  • 1.1 APP下载
  • 1.2 APP界面
  • 2.ESP32
  • 2.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界面

esp32驱动rgb圆屏 esp32 rgb灯_引脚

2.ESP32

2.1 ESP32实物图

esp32驱动rgb圆屏 esp32 rgb灯_物联网_02

2.2 ESP32引脚图

esp32驱动rgb圆屏 esp32 rgb灯_esp32驱动rgb圆屏_03


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

二、项目实现步骤

1.硬件连线

1.1 引脚连接表

RGB

ESP32

R

GPIO 5

G

GPIO 18

B

GPIO 19

-

GND

1.2 硬件连线仿真图:

esp32驱动rgb圆屏 esp32 rgb灯_引脚_04

1.3 硬件连线实物图:

esp32驱动rgb圆屏 esp32 rgb灯_单片机_05

2.软件配置

2.1 创建联网设备

esp32驱动rgb圆屏 esp32 rgb灯_嵌入式硬件_06

esp32驱动rgb圆屏 esp32 rgb灯_物联网_07

2.2 查看Blinker提供的设备密钥

esp32驱动rgb圆屏 esp32 rgb灯_引脚_08

esp32驱动rgb圆屏 esp32 rgb灯_esp32驱动rgb圆屏_09

2.3生成APP交互界面

esp32驱动rgb圆屏 esp32 rgb灯_单片机_10

esp32驱动rgb圆屏 esp32 rgb灯_嵌入式硬件_11


esp32驱动rgb圆屏 esp32 rgb灯_单片机_12

esp32驱动rgb圆屏 esp32 rgb灯_esp32驱动rgb圆屏_13

3.实现代码

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

#include <Blinker.h>   //导入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,使用最新版本会导致程序烧录失败!!!

esp32驱动rgb圆屏 esp32 rgb灯_引脚_14

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