ESP8266+点灯APP+小爱同学控制灯开关-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1780|回复: 1

[分享] ESP8266+点灯APP+小爱同学控制灯开关

[复制链接]
发表于 2021-8-28 19:06 | 显示全部楼层 |阅读模式
  1. /*
  2. 点灯APP+小爱控制灯 20201年8月28日

  3. 功能:
  4. 1、用点灯APP控制灯开关
  5. 2、用小爱同学控制灯开关
  6. 材料:
  7. ESP8266
  8. 5V继电器模块
  9. 220V转5V供电模块

  10. 作者:九洲创客
  11. QQ:353529281
  12. */
  13. #define BLINKER_WIFI //调用WIFI库
  14. #define BLINKER_MIOT_LIGHT  //调用开关库

  15. #include <Blinker.h> //点灯库

  16. char auth[] = "XXXX"; //点灯KEY
  17. char ssid[] = "XXX";   //家里WIFI账号
  18. char pswd[] = "XXXX";  //这里WIFI密码

  19. #define DengPin D4  //控制继电器的IO脚

  20. // 新建组件对象
  21. BlinkerButton Deng1("btn-deng"); //点灯APP新建按钮开关键名

  22. // 按下按键即会执行该函数
  23. void deng1_callback(const String & state) {
  24.     BLINKER_LOG("need set power state: ", state);
  25.    if(state=="on"){
  26.        digitalWrite(DengPin,LOW); //设置继电器状态
  27.        Deng1.print("on"); //反馈按钮状态
  28.       }
  29.     else if(state == "off"){
  30.       digitalWrite(DengPin,HIGH);
  31.       Deng1.print("off");
  32.       }
  33. }

  34. void miotPowerState(const String & state) //语音控制
  35. {
  36.     BLINKER_LOG("need set power state: ", state);

  37.     if (state == BLINKER_CMD_ON) {
  38.         digitalWrite(DengPin,LOW);  //设置继电器状态
  39.         Deng1.print("on");  //反馈点灯APP按钮状态
  40.         BlinkerMIOT.powerState("on"); //反馈开关状态
  41.         BlinkerMIOT.print();  //发送到APP
  42.     }
  43.     else if (state == BLINKER_CMD_OFF) {
  44.         digitalWrite(DengPin,HIGH);
  45.         Deng1.print("off");
  46.         BlinkerMIOT.powerState("off");
  47.         BlinkerMIOT.print();
  48.     }
  49. }

  50. void setup() {
  51.   
  52.     Serial.begin(115200);
  53.     BLINKER_DEBUG.stream(Serial);       //串口输出状态
  54.    
  55.     // 初始化有继电器的IO(我的继电器是低电平输出,所以默认输出高电平)
  56.     pinMode(DengPin,OUTPUT);
  57.     digitalWrite(DengPin, HIGH);
  58.    
  59.     // 初始化blinker
  60.     Blinker.begin(auth, ssid, pswd);
  61.     Deng1.attach(deng1_callback);
  62.     BlinkerMIOT.attachPowerState(miotPowerState);
  63. }

  64. void loop() {
  65.     Blinker.run();  //点灯科技运行
  66. }
复制代码


发表于 2021-8-29 16:48 | 显示全部楼层
#在这里快速回#include <ESP8266WiFi.h> #include <ESP8266WiFiMulti.h>   ESP8266WiFiMulti wifiMulti;  bool autoConfig() {   WiFi.begin();   for (int i = 0; i < 20; i++)   {     int wstatus = WiFi.status();     if (wstatus == WL_CONNECTED)     {       Serial.println("AutoConfig Success");       Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());       Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());       WiFi.printDiag(Serial);       return true;       //break;     }     else     {       Serial.print("AutoConfig Waiting......");       Serial.println(wstatus);       delay(1000);     }   }   Serial.println("AutoConfig Faild!" );   return false;   //WiFi.printDiag(Serial); } void smartConfig() {   WiFi.mode(WIFI_STA);   Serial.println("\r\nWait for Smartconfig");   WiFi.beginSmartConfig();   while (1)   {     Serial.print(".");     if (WiFi.smartConfigDone())     {       Serial.println("SmartConfig Success");       Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());       Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());       WiFi.setAutoConnect(true);  // 设置自动连接       break;     }     delay(1000); // 这个地方一定要加延时,否则极易崩溃重启   } }  void setup(){   Serial.begin(9600);   Serial.println("Wait for Smartconfig");   if (!autoConfig())   {     Serial.println("Start module");     smartConfig();   }    pinMode(2, OUTPUT); }  void loop(){   digitalWrite(2,HIGH);   delay(1000);   digitalWrite(2,LOW);   delay(1000);  }复#
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 12:29 , Processed in 0.069751 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表