基於wemos di製作手機app智慧宿舍開門系統

不許人間有憂愁發表於2021-01-02
  在學校期間,很多學生出門都忘記帶鑰匙,。同樣,我跟我舍友也是,出門很經常不帶鑰匙,每次都要去宿管哪裡拿,很麻煩。所以我就在淘寶買了一些模組,用手機就能開門了。幾十元就搞掂,絕對經濟實惠。
  工作原理:wemos d1作為伺服器,wemos d1要和手機在同一個網路內(手機和開發板連同一個wifi),在arduino軟體編輯、燒錄程式碼後,通過串列埠除錯助手,獲取wemos d1的ip地址,開啟手機app(名稱:tcp連線),輸入ip地址,埠號(8888,程式碼有),連線伺服器後,在訊息哪裡傳送數字1,舵機開始旋轉,蜂鳴器響。
  所需要的材料:wemos d1開發板,蜂鳴器,sg90舵機,手機app:tcp連線(安卓使用者)。
  實物圖:
 ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20210102130555832.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTc5ODcyMw==,size_16,color_FFFFFF,t_70#pic_center)

在這裡插入圖片描述
具體怎樣安裝,看自己的宿舍門。
接線:
蜂鳴器:vcc-----3.3v
GND------GND
I/O--------D6
舵機:正極-------5V
負極-------GND
訊號線--------D5

手機APP的操作:
在這裡插入圖片描述
程式碼如下:
#include<ESP8266WiFi.h>
#include<Servo.h>
char* ssid = “TP-LINK_F6A7”; //“wifi熱點名稱”
char* passwd = “D734918698*”; //wifi熱點密碼”
int port = 8888; //埠號
WiFiServer server(port); // 設定伺服器埠號
Servo duoji;//舵機
void initWifiSta()//實現wemos d1網路連線的函式
{
WiFi.mode(WIFI_STA); // 設定STA模式
WiFi.begin(ssid, passwd); //連線網路
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println(WiFi.localIP()); //通過串列埠列印wemos的IP地址
}

void setup() {
// put your setup code here, to run once:
Serial.begin(115200);//設定波特率
initWifiSta();//連線網路
server.begin();//開啟服務
duoji.attach(D5);//設定D5為舵機的輸出埠
pinMode(D6,OUTPUT);//設定D6為蜂鳴器的輸出埠
digitalWrite(D6,HIGH);//因為上電覆位時,蜂鳴器會響,先初始化它不響
}

void loop() {
// put your main code here, to run repeatedly:
char cmd;
WiFiClient client = server.available(); //服務初始化
while (client.connected()) { //等待客戶端連線
while (client.available() > 0) { //有資料到來,類似串列埠的那個函式
cmd = client.read();//讀取資料
if(cmd==‘1’){
duoji.write(120);//舵機旋轉120度
digitalWrite(D6,LOW);//蜂鳴器警報
delay(5000);
duoji.write(0);//舵機旋轉到0度
digitalWrite(D6,HIGH);//蜂鳴器不響
}
}

}
}
程式碼編輯軟體用arduino軟體。

希望這篇文章對你有用,如果有什麼遺漏或者不懂得歡迎留言。

相關文章