ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

智能宿舍

2020-12-11 21:35:54  阅读:209  来源: 互联网

标签:myservo Blinker state 智能 宿舍 print BLINKER display


前言

最近太忙了,好久没更博客了,主要是想想做做弄了个智能宿舍项目,电控、物联网层面我都做好了,可能还缺少一个工程的大佬帮我部署到寝室里hhhhhhh鄙人能力有限
来,先上方案的构想。

emmm,这是一开始的构想,后面有稍微一点点的改动,且听我慢慢道来。

项目拆分实现

其实不管多大多复杂的项目,我们都应该把它拆分成一个个的小块去实现。
另外这里感谢酷基的方案,连接的是点灯平台,云服务用的应该是阿里云家的。

一、开灯

原来想着,用esp01(比8266廉价方便),再加个继电器,然后做成这个样子(理想型)。

这个用灯控制的比较简单,然后实现的效果是这样的。本人第一次投稿b站视频:物联网灯
UI做的也挺干净整洁的

这个源码比较简单,我就不上传了。上传一个后续的方案,当我看到这个设计:用舵机实现开关灯。

那么我们就来解析一下这个舵机开灯的源代码吧(esp01)


#define BLINKER_WIFI

#include <Blinker.h>
#include<Servo.h>
Servo myservo;

char auth[] = "你的物联网密钥";
char ssid[] = "WIFI账号";
char pswd[] = "WIFI密码";
BlinkerButton Button1("btn-on");     //定义按钮数据
BlinkerButton Button2("btn-off"); 
BlinkerButton Button3("btn-aaa");  
bool oState = false;
int counter = 0;

void dataRead(const String & data)      // 如果未绑定的组件被触发,则会执行其中内容
{
    BLINKER_LOG("Blinker readString: ", data);

    Blinker.vibrate();
    
    uint32_t BlinkerTime = millis();
    
    Blinker.print("millis", BlinkerTime);
}

// 按下按键即会执行该函数
void button1_callback(const String & state)
{
    BLINKER_LOG("get button state: ", state);
    delay(500);
    myservo.write(60);
    delay(2000);
    myservo.write(90);
    delay(500);
}
void button2_callback(const String & state)     //点灯app内控制按键触发
{
    
    BLINKER_LOG("get button state: ", state);
    delay(500);
    myservo.write(-60);
    delay(2000);
    myservo.write(90);
    delay(500);


}

void button3_callback(const String & state)     //点灯app内控制按键触发
{  
  
    BLINKER_LOG("get button state:on", state);
     Blinker.print(state);
    if(state=="on"){
    digitalWrite(0,LOW);
   // Button3.print("on");
     }else if(state =="off"){
            digitalWrite(0,HIGH);
        
    //        Button3.print("off");
    }


}



void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);

    // 初始化舵机
    myservo.attach(0);
    // 90为停
    myservo.write(90);
    digitalWrite(0,HIGH);
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);  

    Button1.attach(button1_callback);  
    Button2.attach(button2_callback);     
    Button3.attach(button3_callback); 
}

void loop()
{
    Blinker.run();
}

注释基本都打好了,要注意的是,要自己写按键在点灯科技里,舵机的库函数myservo.write()中参数,90代表停止,0180分别表示往一边一直转。
还有一个功能定时器触发的,其实在点灯APP上稍微设置一下就行了,没什么难点。

然后剩下的就是部署在寝室了,工程大佬帮帮我

标签:myservo,Blinker,state,智能,宿舍,print,BLINKER,display
来源: https://www.cnblogs.com/ZhengBlogs/p/Intelligent_Dormitory.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有