使用Blinker通过Arduino板控制9g舵机开关窗
在本项目设计当中,采用Blinker可以远程在同一WiFi下来控制esp8266开发板上的舵机,来实现开关窗的效果。
一、准备
1.面包板
2.9g舵机
3.esp8266开发板
4.杜邦线
5.手机下载点灯科技的Blinker软件
二、硬件连接
Arduino指的是esp8266开发板,PWM在这里连接esp8266的D4引脚
三、Arduino程序
完整代码程序
#include <Servo.h>
#define BLINKER_WIFI
#include <Blinker.h>
char auth[] = "12c5526815fa";
char ssid[] = "TP-LINK_801B";
char pswd[] = "12345678";
BlinkerButton Button1("btn-max");
BlinkerButton Button2("btn-min");
Servo myservo;
servo_max=180,servo_min=90;
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 setup()
{
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
Blinker.begin(auth, ssid, pswd);//以上关于8266芯片的初始化
Button1.attach(button1_callback);
Button2.attach(button2_callback);
myservo.attach(2); //将舵机设置在2引脚
}
void loop()
{
Blinker.run();
}
各部分代码程序阐述
在Arduino软件上将舵机库、Blinker库加载进去
#include <Servo.h> //舵机库文件
#define BLINKER_WIFI
#include <Blinker.h> //blinker库文件
保证手机和esp8266开发板在同一WiFi下,设置WiFi,在这里我是手机连接的家里无线网,所以在设置WiFi时用的家里的WiFi,在数据上传是来控制舵机时也必须用得是同一wifi
char auth[] = "12c5526815fa"; //Blinker中接入设备时的密钥
char ssid[] = "TP-LINK_801B"; //WiFi名称
char pswd[] = "12345678"; //WiFi密码
对blinker软件上的按键进行数据名创建,以及定义舵机名称,舵机开窗时的角度设置为90,关窗的角度设置为0
BlinkerButton Button1("btn-max"); //开窗数据键名
BlinkerButton Button2("btn-min"); //关窗数据键名
Servo myservo;//定义(创建)一个舵机名称为myservo int servo_max=90,servo_min=0;
对两个Blinker上的控制按钮进行程序设计
void button1_callback(const String & state) //在按下开窗数据键名的按钮时,执行以下程序
{
BLINKER_LOG("get button state: ", servo_max);
myservo.write(servo_max); //写入设置好的角度90
Blinker.vibrate(); //使手机震动
}
void button2_callback(const String & state) //在按下开窗数据键名的按钮时,执行以下程序
{
BLINKER_LOG("get button state: ", servo_min);
myservo.write(servo_min); //写入设置好的角度0
Blinker.vibrate(); //使手机震动
}
进行esp8266的初始化及引脚的连接设置
void setup()
{
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
Blinker.begin(auth, ssid, pswd); //以上是关于8266芯片的初始化
Button1.attach(button1_callback);
Button2.attach(button2_callback);
myservo.attach(2); //定义舵机PWM线连接的是esp8266开发板上的D4引脚
}
这段程序让Blinker软件进入工作状态
void loop()
{
Blinker.run(); //Binker运行
}
四、Arduino软件的一些设置**
Arduino软件中工具栏中,开发板选择“Generic ESP8266 module”,
五、Blinker控制
我没有联网,所以显示的离线,在连上网之后会显示在线
以下为esp8266的开发板加载,解压后自动加载在Arduino软件中
链接:https://pan.baidu.com/s/1CuWQYw1JNj0hyliLY9WNfw
提取码:qu5d
舵机库文件链接,需要百度网盘自取
链接:https://pan.baidu.com/s/1fln43ObjvU5jtIbVDDQc9w
提取码:qu6d
以上为整个利用Blinker实现Arduino上传程序控制舵机开关窗的讲解,感兴趣的可以尝试做一下。