硬件: ESP8266模块、舵机、一根micro usb数据线 软件链接: https://pan.baidu.com/s/1KYT4NsAwKEwDa8WvrF9Tvw 提取码: 9ywk 没有的大文件去百度搜索下载 ## 安装arduino 1、**填写开发板管理器网址** 文件 - 首选项 - 附加开发板管理器网址,填写 https://arduino.me/packages/esp8266.json 如果链接打不开去[文档查看最新json](https://arduino.me/a/esp8266) 2、**安装库** 点击工具 - 开发板 - 开发板管理器 搜索 `8266` 选择版本并安装(GitHub访问正常才能安装) **或手动添加库** 项目 - 加载库 - 添加.zip库 - 找到下的blinker压缩包加进去 3、**安装8266离线包** `8266_package_xxx_arduino.cn.exe` 点击自动解压完成后,重启Arduino 在工具>开发板 中找到你使用的esp8266开发板选择 `Generic ESP8266 Module` 4、**点灯科技APP** 手机装好后,添加独立设备-复制key保存,后面会用到 5、**代码修改** 复制代码到arduino,修改点灯科技的key,WiFi和舵机旋转度数 ```abap #define BLINKER_WIFI #define BLINKER_MIOT_LIGHT #include #include Servo myservo;//定义舵机 char auth[] = "xxxxx"; //点灯Key char ssid[] = "xxxx"; //wifi名称 char pswd[] = "12345678"; //wifi密码 // 新建组件对象 BlinkerButton Button1("test"); int counter = 0; void miotPowerState(const String & state)//电源类操作 { BLINKER_LOG("need set power state: ", state); if (state == BLINKER_CMD_ON) { myservo.write(0);//收到“on”的指令后舵机旋转110度 BlinkerMIOT.powerState("on"); BlinkerMIOT.print();//反馈状态 delay(500);//延时0.5秒 myservo.write(0);//舵机归零,回到垂直状态 } else if (state == BLINKER_CMD_OFF) { myservo.write(0); //舵机偏转70° BlinkerMIOT.powerState("off"); BlinkerMIOT.print(); delay(500); myservo.write(0); } } // 按下按键即会执行该函数、舵机旋转改下面 void button1_callback(const String & state) { BLINKER_LOG("get button state: ", state); if (state=="on") { myservo.write(180);//收到“on”的指令后舵机旋转150,逆时针转 delay(500);//延时 myservo.write(90);//舵机归零垂直 } else if(state=="press"||state=="tap") { myservo.write(-180);//长按开关按键后舵机旋转30,顺时针转 delay(500);//延时 myservo.write(90);//舵机归零垂直 } } // 如果未绑定的组件被触发,则会执行其中内容 void dataRead(const String & data) { BLINKER_LOG("Blinker readString: ", data); counter++; } void setup() { // 初始化串口 Serial.begin(115200); BLINKER_DEBUG.stream(Serial); // 初始化舵机 myservo.attach(2);//舵机的IO口,nodemcu的D4口 myservo.write(90);//上电时舵机归零垂直 BlinkerMIOT.attachPowerState(miotPowerState); // 初始化blinker Blinker.begin(auth, ssid, pswd); Blinker.attachData(dataRead); Button1.attach(button1_callback); } void loop() { Blinker.run(); } ``` 6、**烧录代码到固件** 用数据线接上8266模块,点击工具-端口: `COMx` (如果灰色去设备管理器看看正常识别没,识别不了安装下 `CH341SER.exe` 驱动) 直接上传烧录,烧录完成后灯常亮  7、 **配置开关** 点灯科技选择设备 - 界面配置 ```abap {¨config¨{¨headerColor¨¨transparent¨¨headerStyle¨¨dark¨¨background¨{¨img¨¨assets/img/headerbg.jpg¨¨isFull¨«}}¨dashboard¨|{¨type¨¨btn¨¨ico¨¨fad fa-lightbulb-on¨¨mode¨Ê¨t0¨¨开灯¨¨t1¨¨文本2¨¨bg¨Ì¨cols¨Í¨rows¨Í¨key¨¨test¨´x´Ë´y´Ì¨speech¨|÷¨cus¨¨on¨¨lstyle¨Ë¨clr¨¨#076EEF¨}{ßAßBßC¨fad fa-lightbulb¨ßEÉßF¨关灯¨ßHßIßJÌßKÍßLÍßMßN´x´Ë´y´ÑßO|÷ßRËßSßT}{ßA¨deb¨ßEÉßJÉßKÑßLÌßM¨debug¨´x´É´y´¤D}÷¨actions¨|¦¨cmd¨¦¨switch¨‡¨text¨‡ßQ¨打开?name¨¨off¨¨关闭?name¨—÷¨triggers¨|{¨source¨ßa¨source_zh¨¨开关状态¨¨state¨|ßQßd÷¨state_zh¨|¨打开¨¨关闭¨÷}÷} ``` 8、**接线** 舵机:黑色地线(G),红色电源线(3v),黄色pwm信号线  Loading... 硬件: ESP8266模块、舵机、一根micro usb数据线 软件链接: https://pan.baidu.com/s/1KYT4NsAwKEwDa8WvrF9Tvw 提取码: 9ywk 没有的大文件去百度搜索下载 ## 安装arduino 1、**填写开发板管理器网址** 文件 - 首选项 - 附加开发板管理器网址,填写 https://arduino.me/packages/esp8266.json 如果链接打不开去[文档查看最新json](https://arduino.me/a/esp8266) 2、**安装库** 点击工具 - 开发板 - 开发板管理器 搜索 `8266` 选择版本并安装(GitHub访问正常才能安装) **或手动添加库** 项目 - 加载库 - 添加.zip库 - 找到下的blinker压缩包加进去 3、**安装8266离线包** `8266_package_xxx_arduino.cn.exe` 点击自动解压完成后,重启Arduino 在工具>开发板 中找到你使用的esp8266开发板选择 `Generic ESP8266 Module` 4、**点灯科技APP** 手机装好后,添加独立设备-复制key保存,后面会用到 5、**代码修改** 复制代码到arduino,修改点灯科技的key,WiFi和舵机旋转度数 ```abap #define BLINKER_WIFI #define BLINKER_MIOT_LIGHT #include <Blinker.h> #include <Servo.h> Servo myservo;//定义舵机 char auth[] = "xxxxx"; //点灯Key char ssid[] = "xxxx"; //wifi名称 char pswd[] = "12345678"; //wifi密码 // 新建组件对象 BlinkerButton Button1("test"); int counter = 0; void miotPowerState(const String & state)//电源类操作 { BLINKER_LOG("need set power state: ", state); if (state == BLINKER_CMD_ON) { myservo.write(0);//收到“on”的指令后舵机旋转110度 BlinkerMIOT.powerState("on"); BlinkerMIOT.print();//反馈状态 delay(500);//延时0.5秒 myservo.write(0);//舵机归零,回到垂直状态 } else if (state == BLINKER_CMD_OFF) { myservo.write(0); //舵机偏转70° BlinkerMIOT.powerState("off"); BlinkerMIOT.print(); delay(500); myservo.write(0); } } // 按下按键即会执行该函数、舵机旋转改下面 void button1_callback(const String & state) { BLINKER_LOG("get button state: ", state); if (state=="on") { myservo.write(180);//收到“on”的指令后舵机旋转150,逆时针转 delay(500);//延时 myservo.write(90);//舵机归零垂直 } else if(state=="press"||state=="tap") { myservo.write(-180);//长按开关按键后舵机旋转30,顺时针转 delay(500);//延时 myservo.write(90);//舵机归零垂直 } } // 如果未绑定的组件被触发,则会执行其中内容 void dataRead(const String & data) { BLINKER_LOG("Blinker readString: ", data); counter++; } void setup() { // 初始化串口 Serial.begin(115200); BLINKER_DEBUG.stream(Serial); // 初始化舵机 myservo.attach(2);//舵机的IO口,nodemcu的D4口 myservo.write(90);//上电时舵机归零垂直 BlinkerMIOT.attachPowerState(miotPowerState); // 初始化blinker Blinker.begin(auth, ssid, pswd); Blinker.attachData(dataRead); Button1.attach(button1_callback); } void loop() { Blinker.run(); } ``` 6、**烧录代码到固件** 用数据线接上8266模块,点击工具-端口: `COMx` (如果灰色去设备管理器看看正常识别没,识别不了安装下 `CH341SER.exe` 驱动) 直接上传烧录,烧录完成后灯常亮  7、 **配置开关** 点灯科技选择设备 - 界面配置 ```abap {¨config¨{¨headerColor¨¨transparent¨¨headerStyle¨¨dark¨¨background¨{¨img¨¨assets/img/headerbg.jpg¨¨isFull¨«}}¨dashboard¨|{¨type¨¨btn¨¨ico¨¨fad fa-lightbulb-on¨¨mode¨Ê¨t0¨¨开灯¨¨t1¨¨文本2¨¨bg¨Ì¨cols¨Í¨rows¨Í¨key¨¨test¨´x´Ë´y´Ì¨speech¨|÷¨cus¨¨on¨¨lstyle¨Ë¨clr¨¨#076EEF¨}{ßAßBßC¨fad fa-lightbulb¨ßEÉßF¨关灯¨ßHßIßJÌßKÍßLÍßMßN´x´Ë´y´ÑßO|÷ßRËßSßT}{ßA¨deb¨ßEÉßJÉßKÑßLÌßM¨debug¨´x´É´y´¤D}÷¨actions¨|¦¨cmd¨¦¨switch¨‡¨text¨‡ßQ¨打开?name¨¨off¨¨关闭?name¨—÷¨triggers¨|{¨source¨ßa¨source_zh¨¨开关状态¨¨state¨|ßQßd÷¨state_zh¨|¨打开¨¨关闭¨÷}÷} ``` 8、**接线** 舵机:黑色地线(G),红色电源线(3v),黄色pwm信号线  © 允许规范转载