Arduino+esp8266-01+舵機 制作基於局域網的遙控門禁


這個最終的效果呢,就是可以通過手機連接上esp8266創建的wifi,然后連接其創建的服務器,發送特定指令就可實現遙控開門

(做工比較粗糙還請不要見笑...)

 

一、原理

其實這個一看就會明白,非常簡單的,由Arduino連接一個舵機和一個esp8266模塊,esp8266工作為AP模式,發出熱點信息,並且創建服務端,手機連接wifi,然后作為客戶端連接服務端,向其發送數據,esp8266收到數據后會通過串口通信傳遞給Arduino,Arduino如果接受到 open 這條信息便控制舵機開始旋轉

分步實現的細節在下面兩篇文章

Arduino leonardo+esp8266-01作服務端與APP進行數據通信

Arduino控制舵機

 

二、程序

(esp8266-01需要提前設置為AP或者AP+Station模式,具體見上面文章)

 1 #include <Servo.h>
 2 String string = "";
 3 Servo myservo;
 4 
 5 void setup() {
 6   myservo.attach(10);
 7   Serial.begin(115200);
 8   Serial1.begin(115200);
 9   delay(1000);
10   Serial1.print("AT+CIPMUX=1\r\n");    
11   delay(1000);
12   Serial1.print("AT+CIPSERVER=1,8080\r\n");   
13   delay(1000);
14   myservo.write(180);
15   delay(1000);
16   myservo.detach();
17 }
18 
19 void loop() {
20 
21   while (Serial1.available() > 0)
22   {
23     char c = Serial1.read();
24     string += c;
25     if (Serial1.available() == 0)
26     {
27       if (string.indexOf("open") >=0)
28       {
29         myservo.attach(10);
30         delay(500);
31         myservo.write(10);
32         delay(3000);
33         myservo.write(180);
34         delay(1000);
35         myservo.write(175);
36         delay(1000);
37         myservo.detach();
38       }
39       Serial.print(string);
40       string = "";
41     }
42     delay(10);
43   }
44 
45   while (Serial.available() > 0)
46   {
47     char c = Serial.read();
48     string += c;
49     if (Serial.available() == 0)
50     {
51       Serial1.print(string);//發送AT命令
52       string = "";
53     }
54     delay(10);
55   }
56   
57 }

 

三、測試

 和之前文章相同,手機下載網絡調試助手,選擇TCP Client,並連接esp8266創建的wifi。然后新增一個鏈接,這里需要設置的ip在一開始是查看了的,一般都不會變,端口為自己設定的8080

然后發送 open ,就會看到舵機會旋轉

 

 

四、安裝

這是我很久前做的了,這次只是整理一下步驟,寫個學習筆記,沒再往門上裝,就拿上次視頻截的圖湊合湊合

 

Arduino leonardo的電源接口和安卓手機的相同,所以可以直接拿手機充電器供電,舵機和門把間的連接我是實在找不到其他東西了,才拿的纖維膠帶,有條件的話,可以用硬質杠桿

動手能力再強點直接改造門鎖也不錯


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM