一、esp8266介绍
可独立应用 也可搭载其他的MCU运行
二、开发环境搭建(arduino)
- 在 Arduino IDE 中,打开“文件”>“首选项”选项卡。
- 搭建NODE MCU环境:点击菜单栏文件,首选项,在“附加开发板管理器网址”框中,输入以下网址并单击“确定”按钮:(用于加载esp8266库)http://arduino.esp8266.com/stable/package_esp8266com_index.json
三、硬件连接
将sg90的红色线与开发板左侧的VV引脚连接,黑色线与左侧G引脚连接,黄色信号线与开发板右侧D4引脚连接。
用USB线与电脑连接
安装串口转换驱动
选择开发板和端口,一定要选择NodeMCU 1.0,端口选择你所连接的端口(就是刚才在设备管理器中看到的端口)
安装点灯科技Blink库。首先下载好blinker-library的压缩包,然后在arduino ide中点击项目→导入库→添加.zip库→选择你刚下载的压缩包→打开就OK了。
四、手机端配置
下载米家和点灯科技
点灯科技小米小爱技术文档:点灯科技-点灯物联网解决方案
打开点灯app,点击添加设备→独立设备→网络接入→复制key→返回我的设备
然后点击右上角的编辑按钮,然后添加两个按键和一个滑块,再次点击添加的组件可以进入组件属性界面,然后记住三个组件键名,并且将滑块的最大值和最小值改为1和180。编辑完成后保存。
五、代码烧录
#include <Servo.h>
#define BLINKER_WIFI
#define BLINKER_MIOT_OUTLET
#include <Blinker.h>
char auth[] = "68e109cc2361"; //刚刚复制的点灯app的key
char ssid[] = ""; //引号内输入wifi名称
char pswd[] = ""; //引号内输入wifi密码,没有就空着
// 新建组件对象
BlinkerButton Button1(""); //引号内填第一个开关组件键名
BlinkerButton Button2(""); //引号内填第二个开关组件键名
Servo myservo;
BlinkerSlider Slider3(""); //引号内填滑块组件键名
int servo_max,servo_min,ser_num,time_num;
void button1_callback(const String & state) { //最大值按钮功能
BLINKER_LOG("get button state: ", servo_max);
myservo.write(servo_max);
Blinker.vibrate();
}
void button2_callback(const String & state) { //最小值按钮功能
BLINKER_LOG("get button state: ", servo_min);
myservo.write(servo_min);
Blinker.vibrate();
}
void slider3_callback(int32_t value) //滑块功能
{
ser_num = value;
myservo.write(ser_num);
Blinker.delay(100);
BLINKER_LOG("get slider value: ", value);
}
//小爱功能
void miotPowerState(const String & state)
{
BLINKER_LOG("need set power state: ", state);
if (state == BLINKER_CMD_ON) {
BLINKER_LOG("get button state: ", servo_max);
myservo.write(servo_max);
Blinker.vibrate();
}
else if (state == BLINKER_CMD_OFF) {
BLINKER_LOG("get button state: ", servo_min);
myservo.write(servo_min);
Blinker.vibrate();
}
}
void setup() {
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
Blinker.begin(auth, ssid, pswd);
Button1.attach(button1_callback);
Button2.attach(button2_callback);
Slider3.attach(slider3_callback);
BlinkerMIOT.attachPowerState(miotPowerState);
myservo.attach(2);
myservo.write(10);
servo_max=180;//旋转的度数
servo_min=0;
time_num=500;
}
void loop() {
Blinker.run();
}
六、关联米家APP和Blinker设备
打开
米家APP
,点击
我的
,点击
其他平台设备
,点击
添加
,在列表中找到
点灯科技
,点击
绑定账号
,登录你的Blinker账号,最后点击
同步设备
即可。设备同步成功之后就可以看到你在Blinker APP上创建的所有设备。
七、语音控制测试
把烧录好代码的设备通上电,通过串口打印的一些信息,我们可以看到设备正常连上网络之后会连接到Blinker的服务器,连接成功之后可以在Blinker的APP上看到设备的状态由 ‘离线’ 变成 ‘在线’。
小爱同学支持的开关类控制语音如下:
打开/关闭{门口}的{灯}
{}里面的内容是通配多种关键词的,你可以在Blinker APP修改设备的名称,然后语音对应的命令也要跟着改变,保持一致才能正确的控制设备。
对着小米手机呼叫小爱同学,收到回应之后再说打开灯,就能看到设备的LED灯被打开了。同理,关闭灯的指令也是一样的操作。
通过串口打印的信息也可以看到开灯和关灯相关的指令。
以上是使用小爱同学通过esp8266控制硬件设备的整个流程
在这个基础上可以增加其他的功能,比如控制灯的开关、亮度、色温(RGB灯)、设备工作模式等等
版权归原作者 Malo. 所有, 如有侵权,请联系我们删除。