赞
踩
本项目基于点灯科技的一款物联网服务平台APP——Blinker和一块32位物联网单片机——ESP32。实现远程控制RGB灯的开关和调节颜色及亮度。
一个ESP32单片机
一个RGB灯
四根杜邦线
一条microUSB数据线
ESP32简介 https://makeronsite.com/esp32-intro.html
RGB | ESP32 |
---|---|
R | GPIO 5 |
G | GPIO 18 |
B | GPIO 19 |
- | GND |
#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物联功能 }
!!务必下载2.0.9版本,Blinker目前仅支持到2.0.9,使用最新版本会导致程序烧录失败!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。