【Arduino】基于ESP8266的WiFi灯控

目录

一、认识Arduino和ESP8266

Arduino

ESP8266

ESP8266和Arduino的搭配优势

二、材料和工具

编程软件:

开发模块:

材料:

三、硬件连接及原理

ESP8266模块引脚图

 控制ESP8266连接WiFi网络和控制灯的亮灭的原理

四、代码

五、效果展示


一、认识Arduino和ESP8266

Arduino

Arduino是一种开源电子原型平台,包括硬件和软件,可用于创建交互式电子项目。它的设计简单,易于使用,适合初学者和专业人士。

Arduino软件是用于编写和上传代码到Arduino板的集成开发环境(IDE)。该软件支持基于C++的编程语言,并包含许多库和示例代码,使用户能够轻松地开始编程和开发Arduino项目。用户可以在Arduino软件中编写代码、调试和上传到Arduino板上运行。该软件跨平台支持,可在Windows、Mac和Linux操作系统上运行。Arduino IDE也提供了丰富的文档和教程,帮助用户学习和掌握Arduino编程技能。

ESP8266

ESP8266是一款低成本、高性能的WiFi模块,由乐鑫技术公司设计。它集成了WiFi芯片和处理器,可实现在Arduino等开发板上轻松添加无线网络连接功能。ESP8266模块支持标准IEEE 802.11 b/g/n协议,能够通过串口或SPI通信与Arduino等主控板连接。由于其小巧、灵活和强大的特性,ESP8266模块在物联网、智能家居、传感器网络等领域得到广泛应用。用户可以通过Arduino IDE或ESP8266的专用开发环境进行编程和控制,从而实现各种基于WiFi的应用和项目。

ESP8266和Arduino的搭配优势

ESP8266和Arduino的搭配优势在于,ESP8266拥有Wi-Fi连接功能,而Arduino则具有丰富的外围设备和传感器支持,两者搭配可以实现更为复杂的物联网应用,如远程控制、数据传输和监控等。此外,Arduino的编程环境也可以很方便地支持ESP8266,使得开发人员可以更容易地进行Wi-Fi通信项目的开发。因此,ESP8266和Arduino的结合可以提供强大的功能和更丰富的应用场景。

二、材料和工具

编程软件:

Arduino IDE

开发模块:

ESP8266模块

材料:

USB数据线

三、硬件连接及原理

把准备好的ESP8266用USB数据线连接电脑。

ESP8266模块引脚图

 控制ESP8266连接WiFi网络和控制灯的亮灭的原理

控制ESP8266连接WiFi网络和控制灯的亮灭的原理是通过编写代码,利用ESP8266的WiFi模块来连接指定的WiFi网络,然后通过发送指令来控制连接在ESP8266上的灯开关。

具体步骤如下:

1.配置ESP8266连接到WiFi网络:通过编写代码,设置ESP8266连接的WiFi网络名称和密码,并连接到WiFi网络,获取IP地址。

2.控制灯的亮灭:通过编写代码,在连接的WiFi网络中设定一个IP地址和端口号,用于接收控制指令。当接收到控制指令时,根据指令的内容控制连接在ESP8266上的灯的亮灭。

原理是通过WiFi模块连接网络进行通信,发送控制指令来控制设备的状态。通过这种方式,可以实现远程控制ESP8266连接的灯的亮灭,实现智能家居等应用。

四、代码

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

#ifndef STASSID
#define STASSID "your-ssid"
#define STAPSK "your-password"
#endif

const char* ssid = STASSID;
const char* password = STAPSK;
ESP8266WebServer server(80);
const int led = 2;//led管脚


void setup(){
  pinMode(led, OUTPUT);
  digitalWrite(led, 0);
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin("灭亡迅雷站", "666666");//打开手机的共享热点,在第一个引号中输入热点名称,第二个引号输入热点密码
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  server.on("/",HTTP_GET, handleRoot);//主页
  server.on("/LED1",HTTP_POST, Led_ON);//led开
  server.on("/LED2",HTTP_POST, Led_OFF);//关
  server.onNotFound(handleNotFound);
  server.begin();
  Serial.println("HTTP server started");
}


void handleRoot(){
  server.send(200, "text/html", "<form action=\"/LED1\"method=\"POST\">"//按钮1
              "<input type=\"submit\"value=\"LED_ON\"style=\"font-size:30px; width:200px; height:100px; background-color:red\"></form>"
                                "<form action=\"/LED2\"method=\"POST\">"//按钮2
              "<input type=\"submit\"value=\"LED_OFF\"style=\"font-size:30px; width:200px; height:100px; background-color:blue\"></form>");
 
}

void Led_ON(){
  digitalWrite(2, 0);
  server.sendHeader("Location","/");
  server.send(303);
  delay(500);
  }

void Led_OFF(){
  digitalWrite(2, 1);
  server.sendHeader("Location","/");
  server.send(303);
  delay(500);
  }
void handleNotFound(){
  server.send(404,"text/plain","404:Not found");
  }

void loop() {
  server.handleClient();
  MDNS.update();

}

五、效果展示

在手机上输入已经连接了ESP8266的IP地址,复制到浏览器,进入页面就可以控制灯的亮灭。

按下LED_OFF,灯灭。

按下LED_ON,灯亮。

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Arduino可以通过编写程序来控制ESP8266。在Arduino IDE中,可以使用类似于Arduino程序开发的方式来开发ESP8266程序。通过编写代码,可以实现对ESP8266的各种功能控制,比如控制LED灯的亮灭。以下是一个简单的示例程序,可以通过ESP8266开发板控制LED灯的亮灭: ```cpp #include <ESP8266WebServer.h> #include <ArduinoOTA.h> const char* ssid = "XXXX"; // WIFI名和密码 const char* password = "XXXXXXXXX"; void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.waitForConnectResult() != WL_CONNECTED) { Serial.println("Failed"); delay(5000); ESP.restart(); } ArduinoOTA.begin(); // 开启 arduino 的 OTA Serial.print("IP address: "); Serial.println(WiFi.localIP()); pinMode(2, OUTPUT); digitalWrite(2, LOW); pinMode(4, OUTPUT); digitalWrite(4, HIGH); } void loop() { ArduinoOTA.handle(); } ``` 在这个示例程序中,首先设置了WiFi的连接信息,然后在`setup()`函数中进行WiFi连接和OTA的初始化。接着设置了两个引脚的模式和初始状态,其中引脚2用于控制LED灯的亮灭。最后,在`loop()`函数中调用`ArduinoOTA.handle()`来处理OTA更新。 通过编写类似的程序,可以实现更多功能的控制和交互。需要注意的是,在将代码下载到ESP8266开发板后,可以通过串口监视器来查看调试信息,如果调试信息已经结束,可以按下ESP8266开发板的复位键,让ESP8266重新启动,就可以看到WiFi连接成功所获得的IP地址了。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [使用Arduino开发ESP8266应用(OneNET平台实现温湿度数据存储和LED灯控制)](https://blog.csdn.net/aaronmeng/article/details/120450170)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [基于ArduinoEsp8266的四类控制模式](https://blog.csdn.net/weixin_44301884/article/details/104456058)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值