利用Blinker和ESP32实现远程控制RGB灯的方法详解

使用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界面

    2.ESP32

    2.1 ESP32实物图

    2.2 ESP32引脚图


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

    二、项目实现步骤

    1.硬件连线

    1.1 引脚连接表
    RGB ESP32
    R GPIO 5
    G GPIO 18
    B GPIO 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.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,使用最新版本会导致程序烧录失败!!!

    4.2 选择开发板与端口号
  • 开发板选择ESP32-WROOM DA Module
  • 端口选择USB所连接的端口 可通过设备管理器查看
  • 其他设置默认即可
  • 最后点击烧录程序
  • 物联沃分享整理
    物联沃-IOTWORD物联网 » 利用Blinker和ESP32实现远程控制RGB灯的方法详解

    发表评论