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

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

一、项目简介

本项目基于点灯科技的一款物联网服务平台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 引脚连接表
RGBESP32
RGPIO 5
GGPIO 18
BGPIO 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所连接的端口 可通过设备管理器查看
  • 其他设置默认即可
  • 最后点击烧录程序
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值