Arduino+esp8266-01+舵机 制作基于局域网的遥控门禁

原文:https://www.cnblogs.com/leixiao-/p/9910990.html

这个最终的效果呢,就是可以通过手机连接上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的电源接口和安卓手机的相同,所以可以直接拿手机充电器供电,舵机和门把间的连接我是实在找不到其他东西了,才拿的纤维胶带,有条件的话,可以用硬质杠杆

动手能力再强点直接改造门锁也不错

  • 12
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要连接ArduinoESP8266-01,需要进行以下步骤: 1. 将ESP8266-01插入到Arduino的3.3V电源和GND引脚上,然后将ESP8266-01的TX引脚连接到Arduino的RX引脚,将ESP8266-01的RX引脚连接到Arduino的TX引脚。 2. 打开Arduino IDE,选择正确的板子和串口。 3. 在Arduino IDE中打开串口监视器,并将波特率设置为115200。 4. 在串口监视器中输入AT指令,如果ESP8266-01回复“OK”,则表示连接成功。 5. 现在可以开始使用ESP8266-01进行WiFi通信了。可以使用AT指令来连接WiFi网络、发送和接收数据等。 需要注意的是,ESP8266-01的工作电压为3.3V,不能直接连接到Arduino的5V引脚上,否则可能会损坏ESP8266-01。另外,ESP8266-01的TX和RX引脚需要使用软串口进行连接,不能直接使用Arduino的硬串口。 ### 回答2: 在连接 ArduinoESP8266-01 之前,你需要先检查每个设备上的引脚和电缆。 1. 引脚布局 ArduinoESP8266-01 都有不同的引脚结构。ESP8266-01 有 8 个引脚,是这样排列的: ``` ____ | | | 1 8| |____| 1 - RST 2 - GPIO0 3 - Unconnected 4 - GND 5 -TXD 6 - RXD 7 - Unconnected 8 - VCC ``` 相反,有许多不同的Arduino板,但是它们都有一个“数字引脚”保持一致,这样你就可以将电线插入正确的位置。 2. 连接电缆 你需要用2-3根杜邦线将 ArduinoESP8266-01 连接起来。请确保在连接过程中引脚匹配正确。 在连接过程中请注意以下步骤: - 将杜邦线连接到 Arduino 的 3.3V 和 ESP8266-01 的 VCC 引脚。 - 将杜邦线连接到 Arduino 的 GND 和 ESP8266-01 的 GND 引脚。 - 将杜邦线连接到 Arduino 的 RX 和 ESP8266-01 的 TXD 引脚。 - 将杜邦线连接到 Arduino 的TX 和 ESP8266-01 的RXD引脚。 3. 代码 ArduinoESP8266-01 之间的通讯需要代码来实现。首先你需要下载一个这样的电子书库 。在 Arduino IDE 中打开一个新的项目,在“库”菜单中搜索它,并安装它。 使用以下代码连接ArduinoESP8266-01。 ``` #include <SoftwareSerial.h> // Importing the library SoftwareSerial ESP(2, 3); // RX,TX void setup() { Serial.begin(9600); // Begin Serial communication ESP.begin(115200); // Begin software serial at a baud rate of 115200 Serial.println("ESP8266 Setup"); resetWiFi(); // Resetting any existing WiFi connectWiFi(); // Connecting to WiFi } void loop() { // Do something } void resetWiFi() { ESP.println("AT+RST"); // Resetting ESP8266 delay(1000); // Waiting for the ESP8266 to reset while (ESP.available()) { Serial.write(ESP.read()); // Writing data to Serial Monitor } } void connectWiFi() { ESP.println("AT+CWJAP=\"WiFi_SSID\",\"WiFi_Password\""); // Enter your WiFi SSID and Password delay(5000); // Waiting for ESP8266 to connect to the network while (ESP.available()) { Serial.write(ESP.read()); // Writing data to Serial Monitor } } ``` 这个代码实现了一些基本的操作: - 它包含了一个名为 SoftwareSerial 的实用程序库,它允许你设置一个软串行端口,并以 115200 的速率连接 ESP8266-01。 - 它包括了 setup()和 loop() 函数,这些基本的函数使得读取 ESP8266-01 状态和设置变得更容易。 - 它也定义了 resetWiFi() 和 connectWiFi() 函数,这两个函数在你试图连接到网络(慢或者无法连接)时非常有用。 - 库的联结和设置,与 ESP8266-01 进行基本的通讯。 最后,使用电缆和代码,你可以将两个设备连接起来并开始使用他们来实现许多有趣的项目。 ### 回答3: ArduinoESP8266-01是两个常用的电子元件,它们的联通可以实现很多有趣的功能。在编写代码之前,需要准备好以下几个部分: 1. ESP8266-01,这是一个带有WiFi模块的微控制器,可以连接到网络并发送HTTP请求。 2. Arduino Uno,这是一个非常流行的开源单板计算机,可以让你编写和运行C程序。 3. USB转串口模块,用于将Arduino连接到计算机。 4. 杜邦线,用于连接电路板上的各个部分。 在将两个元件连接起来之前,要确保它们的电源已经连接好了。ESP8266-01通常需要3.3V的电源,可以通过Arduino的3.3V引脚进行连接。同样,当Arduino接入电脑时,也需要连接一个5V的电源。 ESP8266-01的TX引脚可以通过杜邦线连接到Arduino的RX引脚,而ESP8266-01的RX引脚可以通过杜邦线连接到Arduino的TX引脚。这样就可以实现两台设备之间的串口通讯。 编写程序时需要注意的是,ESP8266-01的波特率通常为115200。在Arduino的代码中,需要将串口的波特率设置为相同的值。下面是一个连接ESP8266-01Arduino Uno的示例代码: ```c #include <SoftwareSerial.h> SoftwareSerial esp(10, 11); // RX, TX void setup() { Serial.begin(9600); esp.begin(115200); } void loop() { if (esp.available()) { Serial.print(char(esp.read())); } if (Serial.available()) { esp.print(char(Serial.read())); } } ``` 以上代码创建了一个名为``esp``的软串口,它在Arduino的引脚10和11上进行通讯。在``loop``循环中,该程序将缓冲区中的所有网络数据打印到Arduino串口上,也将缓存区内的所有Arduino数据发送到网络上。 当和ESP8266-01连接成功之后,你可以让它连接WiFi并发送HTTP请求,实现更多的功能。这里只提供了一个简单的入门示例,更多的用法和功能可以通过网络查询获得。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值