使用Blinker通过Arduino板控制9g舵机开关窗

使用Blinker通过Arduino板控制9g舵机开关窗

在本项目设计当中,采用Blinker可以远程在同一WiFi下来控制esp8266开发板上的舵机,来实现开关窗的效果。

一、准备
1.面包板
2.9g舵机使用Blinker通过Arduino板控制9g舵机开关窗_第1张图片

3.esp8266开发板使用Blinker通过Arduino板控制9g舵机开关窗_第2张图片

4.杜邦线
5.手机下载点灯科技的Blinker软件

二、硬件连接
使用Blinker通过Arduino板控制9g舵机开关窗_第3张图片
Arduino指的是esp8266开发板,PWM在这里连接esp8266的D4引脚

三、Arduino程序
完整代码程序

#include  
#define BLINKER_WIFI 
#include  

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  //舵机库文件
#define BLINKER_WIFI 
#include  //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控制

我没有联网,所以显示的离线,在连上网之后会显示在线
使用Blinker通过Arduino板控制9g舵机开关窗_第4张图片
以下为esp8266的开发板加载,解压后自动加载在Arduino软件中

链接:https://pan.baidu.com/s/1CuWQYw1JNj0hyliLY9WNfw
提取码:qu5d

舵机库文件链接,需要百度网盘自取
链接:https://pan.baidu.com/s/1fln43ObjvU5jtIbVDDQc9w
提取码:qu6d

以上为整个利用Blinker实现Arduino上传程序控制舵机开关窗的讲解,感兴趣的可以尝试做一下。

你可能感兴趣的:(arduino,物联网)