当前位置:   article > 正文

【Arduino】基于ESP8266的WiFi灯控_arduino 8266

arduino 8266

目录

一、认识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连接的灯的亮灭,实现智能家居等应用。

四、代码

  1. #include <ESP8266WiFi.h>
  2. #include <WiFiClient.h>
  3. #include <ESP8266WebServer.h>
  4. #include <ESP8266mDNS.h>
  5. #ifndef STASSID
  6. #define STASSID "your-ssid"
  7. #define STAPSK "your-password"
  8. #endif
  9. const char* ssid = STASSID;
  10. const char* password = STAPSK;
  11. ESP8266WebServer server(80);
  12. const int led = 2;//led管脚
  13. void setup(){
  14. pinMode(led, OUTPUT);
  15. digitalWrite(led, 0);
  16. Serial.begin(115200);
  17. WiFi.mode(WIFI_STA);
  18. WiFi.begin("灭亡迅雷站", "666666");//打开手机的共享热点,在第一个引号中输入热点名称,第二个引号输入热点密码
  19. Serial.println("");
  20. // Wait for connection
  21. while (WiFi.status() != WL_CONNECTED) {
  22. delay(500);
  23. Serial.print(".");
  24. }
  25. Serial.println("");
  26. Serial.print("Connected to ");
  27. Serial.println(ssid);
  28. Serial.print("IP address: ");
  29. Serial.println(WiFi.localIP());
  30. server.on("/",HTTP_GET, handleRoot);//主页
  31. server.on("/LED1",HTTP_POST, Led_ON);//led开
  32. server.on("/LED2",HTTP_POST, Led_OFF);//
  33. server.onNotFound(handleNotFound);
  34. server.begin();
  35. Serial.println("HTTP server started");
  36. }
  37. void handleRoot(){
  38. server.send(200, "text/html", "<form action=\"/LED1\"method=\"POST\">"//按钮1
  39. "<input type=\"submit\"value=\"LED_ON\"style=\"font-size:30px; width:200px; height:100px; background-color:red\"></form>"
  40. "<form action=\"/LED2\"method=\"POST\">"//按钮2
  41. "<input type=\"submit\"value=\"LED_OFF\"style=\"font-size:30px; width:200px; height:100px; background-color:blue\"></form>");
  42. }
  43. void Led_ON(){
  44. digitalWrite(2, 0);
  45. server.sendHeader("Location","/");
  46. server.send(303);
  47. delay(500);
  48. }
  49. void Led_OFF(){
  50. digitalWrite(2, 1);
  51. server.sendHeader("Location","/");
  52. server.send(303);
  53. delay(500);
  54. }
  55. void handleNotFound(){
  56. server.send(404,"text/plain","404:Not found");
  57. }
  58. void loop() {
  59. server.handleClient();
  60. MDNS.update();
  61. }

五、效果展示

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

按下LED_OFF,灯灭。

按下LED_ON,灯亮。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/1013188
推荐阅读
相关标签
  

闽ICP备14008679号