工作室项目-微控锁


这个是工作室的一个项目,我负责这个项目的硬件制作,这个锁大搞做了3个星期,一个星期是学arduino,一个星期是实现基本功能,还有一个星期是打印外壳并且完善它的功能。其实也没花多少时间,主要是和服务器那里调试花了挺长时间的,废话不多说,开始展示。
这个是已经焊好的洞洞板
然后插上杜邦线
背面,其实这个东西的焊接还是挺简单的
我画的模型(画这个模型用尺子量长度量的我想哭....)
ok,准备开始打印了
可惜,打印机的材料不好,打坏了好几次,昨天搞了一晚上,今天又搞了一上午 😢
终于可以正常使用了! :D
打这个要打2个小时,漫长的等待。。。。。。
电脑的操作界面
终于打印好了,可惜里面好像打的不好看
嘻嘻,再打个盖子(不过盖子的大小好像量错了。。。。)
最后把锁装上,大功告成!

这个微控锁其实就只有一个功能:远程遥控。目前我们是采用微信公众号来实现远程控制的,我这里还加了一个红外避障的模块(其实就是检测门是否开了)。

下面就是微控锁的arduino的代码:

#include <ESP8266WiFi.h>
#include <Ticker.h>
#define DebugBegin(baud_rate)    Serial.begin(baud_rate)
#define DebugPrintln(message)    Serial.println(message)
#define DebugPrint(message)    Serial.print(message)

#define AP_SSID "xiaoyou" //这里改成你的wifi名字
#define AP_PSW  "4545454545"//这里改成你的wifi密码

Ticker flipper;
const uint16_t port = 45455;//服务器的端口号
const char * host = "120.79.4.151"; // 服务器的IP地址
WiFiClient client;//创建一个tcp client连接 
int lockstatue=0;//关锁状态
void smartConfig()
{
  WiFi.mode(WIFI_STA);
  WiFi.begin(AP_SSID,AP_PSW);
   while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  DebugPrintln("");
  DebugPrintln("WiFi connected");
  DebugPrint("IP address: ");
  DebugPrintln(WiFi.localIP());
  
  //Serial.println("
Wait for Smartconfig");
  //delay(2000);
  // 等待配网
  //WiFi.beginSmartConfig();
// while (1)
//  {
//    //Serial.print(".");
//    delay(500);
//    if (WiFi.smartConfigDone())
//    {
//     Serial.println("SmartConfig Success");
//      Serial.printf("SSID:%s
", WiFi.SSID().c_str());
//      Serial.printf("PSW:%s
", WiFi.psk().c_str());
//      WiFi.setAutoConnect(true);  // 设置自动连接
//      break;
//    }
//  }
// 
//  Serial.println("");
//  Serial.println("WiFi connected");  
//  Serial.println("IP address: ");
//  Serial.println(WiFi.localIP());
delay(500);
}
//每隔0.1s检测门的状态
void senddata(){
  if(digitalRead(D4)){
      lockstatue=1;
  }else{
      lockstatue=0; 
  }
}
 
void setup()
{

     pinMode(D2, OUTPUT);
     pinMode(D4,INPUT);
     pinMode(D5, OUTPUT);//这里实际上控制的是D1
   digitalWrite(D5,LOW);
  Serial.begin(115200);
  smartConfig();
   DebugPrint("IP address: ");
  DebugPrintln(WiFi.localIP());
  client.setNoDelay(false);
  DebugPrint("connecting to ");
  DebugPrintln(host);
 flipper.attach(0.1,senddata);
 delay(500);
}
 
void loop()
{
  if(!client.connected()){
    if(!client.connect(host, port)){
        DebugPrintln("connection failed");
        DebugPrintln("wait 1 sec...");
        delay(1000);
        return;
      }
   }

    if (client.available()) {
          String data=client.readStringUntil('
');
          DebugPrintln(data);
           if(data=="0104"){
            if(lockstatue){
                client.println(String("0113"));
            }else{
                client.println(String("0114"));
            }
          }else if(data=="0102"){//开锁命令
              lockstatue=1;
             digitalWrite(D1,HIGH);
             digitalWrite(D5,HIGH);
             client.println(String("0110")); 
             delay(1000);
             digitalWrite(D5,LOW);
          }else if(data=="0103"){//关锁
              lockstatue=0;
              digitalWrite(D2,LOW);
             digitalWrite(D5,HIGH);
             client.println(String("0111"));
             delay(1000);
             digitalWrite(D5,LOW);
          }
                 
    }

  delay(10);
}  

文章作者: 小游
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小游 !
  目录