手把手带你把小爱同学装进你的台灯
- 一、硬件
- 1.硬件准备
- 2.pcb板
- 二、软件
- 1.配置好Arduino开发环境
- 2.获取秘钥
- 2.代码烧录
- 三、实物演示
一、硬件
1.硬件准备
1.8266开发板×1
2.台灯×1
3.mos管开关模块×1
4. AMS117 3.3V稳压模块
5. 各种阻值的贴片电容
esp8266开发板
mos管模块
2.pcb板
按照下面的原理图打好板(原理图仅供参考),不打板也行,就是接电源要接两条线,一条接mos管,一条接开发板供电。
3.组装好的样子
二、软件
1.配置好Arduino开发环境
百度链接:链接:https://pan.baidu.com/s/1YVBdlyJBUItYcGOaY7hS6A
提取码:xdf6
官方开发文档 https://diandeng.tech/doc/getting-start-8266
(1)安装好第串口驱动然后点开第一个压缩包安装好Arduino
然后文件选首选项,加入下面的开发板网站
http://arduino.esp8266.com/stable/package_esp8266com_index.json
(2)
添加blinker Arduino库
(3)下载esp8266扩展包
打开开发板管理,下载esp8266芯片包
下载完之后,选择直接的开发板型号即可
2.获取秘钥
(1)手机下载点灯科技APP
注册号账号,添加设备获取秘钥
(2)打开米家APP,然后添加设备到小爱同学
2.代码烧录
#define BLINKER_PRINT Serial
#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT
#include <Blinker.h>int LIGHT = 2;
int colorW;
unsigned char led_power;
char auth[] = " ";//秘钥
char ssid[] = " ";//WiFi名
char pswd[] = " ";//WiFi密码// 新建组件对象
BlinkerButton Button1("bin");//你的按钮名称
BlinkerNumber Number1("num-abc");int counter = 0;void miotPowerState(const String & state)
{BLINKER_LOG("need set power state: ", state);if (state == BLINKER_CMD_ON) {digitalWrite(LIGHT,HIGH );BlinkerMIOT.powerState("on");BlinkerMIOT.print();}else if (state == BLINKER_CMD_OFF) {digitalWrite(LIGHT,LOW);BlinkerMIOT.powerState("off");BlinkerMIOT.print();}
}
//用户自定义亮度控制的回调函数:小爱同学 灯的亮度控制函数 亮度范围为1-100
void miotBright(const String & bright)
{BLINKER_LOG("need set brightness: ", bright);colorW = bright.toInt();analogWrite(LIGHT,colorW);BLINKER_LOG("now set brightness: ", colorW);BlinkerMIOT.brightness(colorW);BlinkerMIOT.print();
}
//用户自定义设备查询的回调函数:
void miotQuery(int32_t queryCode)
{BLINKER_LOG("MIOT Query codes: ", queryCode);switch (queryCode){ case 0: //查询所有设备的情况BLINKER_LOG("MIOT Query brightness: ", colorW);BlinkerMIOT.brightness(colorW); //反馈灯的亮度BlinkerMIOT.powerState(led_power ?"on":"off"); //反馈灯的亮灭BlinkerMIOT.print(); //反馈至小爱break;}
}
// 按下按键即会执行该函数
void button1_callback(const String & state)
{BLINKER_LOG("get button state: ", state);digitalWrite(LIGHT, !digitalRead(LIGHT));
}// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{BLINKER_LOG("Blinker readString: ", data);counter++;Number1.print(counter);
}void setup() {// 初始化串口Serial.begin(115200);#if defined(BLINKER_PRINT)BLINKER_DEBUG.stream(BLINKER_PRINT);#endif// 初始化有LED的IOpinMode(LIGHT, OUTPUT);digitalWrite(LIGHT,LOW);// 初始化blinkerBlinker.begin(auth, ssid, pswd);Blinker.attachData(dataRead);Button1.attach(button1_callback);BlinkerMIOT.attachPowerState(miotPowerState);//设置灯的亮度调节范围analogWriteRange(100); //注册回调函数: 用户自定义设备查询BlinkerMIOT.attachQuery(miotQuery);//注册回调函数 亮度回调函数BlinkerMIOT.attachBrightness(miotBright);
}void loop() {Blinker.run();
}
将代码烧入开发板,组装好台灯即可
三、实物演示
自己动手,将小爱同学装进你的台灯