Arduino开发:网页控制ESP8266三色LED灯闪烁

  1. 根据板卡原理RGB三色LED对应引脚:

int LEDR=12、int LEDG=14、int LEDB=13;

  1. 设置串口波特率为115200

Serial.begin(115200);

  1. 源代码如下所示:

#include <ESP8266WiFi.h> // 提供 Wi-Fi 功能的库

#include <ESP8266WebServer.h> // 提供网站服务器功能的库

const char ssid[] ="*************";//你的WIFI名称

const char pass[] ="************";//你的WIFI密码

int LEDR=12;

int LEDG=14;

int LEDB=13;

ESP8266WebServer server(80); // 声明网站服务器对象与端口号

void pageIndex(){

String HTML="<!DOCYPYE html><html><meta charset=\"UTF-8\"/><title>LYU-IOT控制LED</title><body>\

<h1 align=\"center\">网页控制LYU-IOT-ESP12F三色LED亮灭</h1>\

<p><form action=\"/LB\" method=\"POST\" align=\"center\"><input type=\"submit\" value=\"LEDB闪烁控制\"> </form></p>\

<p><form action=\"/LG\" method=\"POST\" align=\"center\"><input type=\"submit\" value=\"LEDG闪烁控制\"> </form></p>\

<p><form action=\"/LR\" method=\"POST\" align=\"center\"><input type=\"submit\" value=\"LEDR闪烁控制\"> </form></p>\

</body></html>";

server.send(200,"text/html",HTML);

}

void LEDBControl(){

digitalWrite(LEDB,!digitalRead(LEDB));

server.sendHeader("Location","/");

server.send(303);

Serial.println("\r\n LEDB is work\r\n");

}

void LEDGControl(){

digitalWrite(LEDG,!digitalRead(LEDG));

server.sendHeader("Location","/");

server.send(303);

Serial.println("\r\n LEDG is work\r\n");

}

void LEDRControl(){

digitalWrite(LEDR,!digitalRead(LEDR));

server.sendHeader("Location","/");

server.send(303);

Serial.println("\r\n LEDR is work\r\n");

}

void PageNULL(){

server.send(404,"text/plain","404 Not Found The Server");

}

void setup() {

pinMode(LEDG, OUTPUT);

pinMode(LEDR, OUTPUT);

pinMode(LEDB, OUTPUT);

Serial.begin(115200);

WiFi.begin(ssid, pass);

// 若要指定 IP 地址,请自行在此加入 Wi-Fi.config() 语句

while (WiFi.status() != WL_CONNECTED)

{

delay(500); // 等待 Wi-Fi 连接

Serial.print("." );

}

Serial.println("");

Serial.print("WiFi connected, IP:");

Serial.println(WiFi.localIP()); // 显示 ESP8266 设备的 IP 地址

server.begin();

server.on("/",HTTP_GET,pageIndex);

server.on("/LB",HTTP_POST,LEDBControl);

server.on("/LG",HTTP_POST,LEDGControl);

server.on("/LR",HTTP_POST,LEDRControl);

server.onNotFound(PageNULL);

Serial.println("HTTP server started.");

}

void loop() {

server.handleClient(); // 处理用户连接

}

  1. 运行结果如图所示:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ArduinoESP8266都可以用来控制LED。其中,Arduino是一种微控制器,可以通过编写程序来控制各种电子元件,包括LED。而ESP8266则是一种Wi-Fi模块,可以通过无线网络连接到互联网,并通过编写程序来控制LED。两者都可以使用各种编程语言来编写程序,如C++、Python等。在控制LED时,需要将LED连接到ArduinoESP8266的数字输出引脚上,并编写程序来控制输出电平,从而控制LED的亮灭。 ### 回答2: ArduinoESP8266都是常用的微控制器板,它们可以轻松地控制各种设备,包括LED。在使用之前,必须确保这些板已经正确连接。通常,Arduino可以通过USB线连接到计算机进行编程和调试,而ESP8266则可以通过Wi-Fi无线网络连接到网络以实现远程控制。 要控制LED,需要在ArduinoESP8266板上连接一个电路。首先,将一个端标记为正极的LED连接到电路,然后将负极与ArduinoESP8266板上的数字引脚连接。接下来,我们可以使用以下示例代码来控制LED的亮度: ``` void setup() { pinMode(2, OUTPUT); //将引脚2设置为输出模式 } void loop() { analogWrite(2, 100); //设置引脚2的PWM输出为100 delay(1000); //延迟1秒 analogWrite(2, 255); //设置引脚2的PWM输出为255 delay(1000); //延迟1秒 } ``` 上述代码将设置引脚2的PWM输出为100,让LED以较低的亮度发光。然后,它会将引脚2的PWM输出增加到255,让LED以最大亮度发光,随后延迟1秒。 通过ESP8266,还可以通过Wi-Fi网络连接到互联网,实现远程控制。可以使用以下代码实现: ``` #include <ESP8266WiFi.h> const char* ssid = "your_SSID"; //输入Wi-Fi网络的名称 const char* password = "your_WIFI_password"; //输入Wi-Fi网络的密码 void setup() { pinMode(2, OUTPUT); //将引脚2设置为输出模式 Serial.begin(115200); //初始化串口 delay(10); Serial.println('\n'); Serial.print("连接到Wi-Fi网络:"); Serial.println(ssid); WiFi.begin(ssid, password); //连接到Wi-Fi网络 while (WiFi.status() != WL_CONNECTED) { //等待Wi-Fi连接 delay(500); Serial.print("."); } Serial.println(""); Serial.println("Wi-Fi已连接"); Serial.print("IP地址: "); Serial.println(WiFi.localIP()); //显示本地IP地址 } void loop() { digitalWrite(2, HIGH); //将引脚2输出高电平 delay(1000); //延迟1秒 digitalWrite(2, LOW); //将引脚2输出低电平 delay(1000); //延迟1秒 } ``` 上述代码将连接到Wi-Fi网络,并通过远程控制LED。在这个例子中,LED将每一秒钟交替亮和灭。连接到Wi-Fi网络后,可以在浏览器中输入Arduino的IP地址,以控制LED的亮灭。 总之,ArduinoESP8266可以轻松实现LED控制,这为更多的物联网和智能家居应用提供了技术基础。同时,通过ESP8266的远程网络控制,可以实现更灵活的控制和更强的互联网应用需求。 ### 回答3: ArduinoESP8266是两个常用的微控制器,都可以用来控制LED。下面将分别介绍各自控制LED的方法。 一、Arduino控制LED 1. 准备材料 麻雀虽小,五脏俱全。控制一个LED需要以下几个材料: - 一个Arduino控制器 - 一个LED - 一个220欧姆电阻 - 一些杜邦线 2. 接线 将Arduino的数字输出口与LED的正极连接,一般情况下我们将LED的另一端连接到电源正极,但是要注意,Arduino的数字输出口输出的电压只有5V,如果你LED的额定工作电压为3V,此时需要再加一个电阻限制电流。将220欧姆电阻接在LED的负极处,再将电阻的另一端接到电源地。 3. 编程 Arduino上的程序代码是使用Arduino编译器来编译的。下面是一个简单的程序,可以将LED以一定的频率闪烁: void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); } 将数字输出口13设置为输出口,然后在循环函数中依次将13口输出高电平、低电平,以达到闪烁LED的效果。 二、ESP8266控制LED 1. 准备材料 控制ESP8266控制LED所需材料: - 一个ESP8266开发板 - 一个LED - 一个220欧姆电阻 - 一些杜邦线 2. 接线 将ESP8266的数字输出口与LED的正极连接,同样要注意电压问题。将220欧姆电阻接在LED的负极处,再将电阻的另一端接到电源地。 3. 编程 ESP8266的编程环境是基于Arduino IDE搭建的。接下来是一个简单程序,可以让LED以一定的频率闪烁: #define LED D2 void setup() { pinMode(LED, OUTPUT); } void loop() { digitalWrite(LED, HIGH); delay(1000); digitalWrite(LED, LOW); delay(1000); } 与Arduino控制LED的程序类似,只需要将数字输出口设为LED,并通过循环让LED闪烁即可。 总之,无论是Arduino还是ESP8266都是非常好的控制LED的工具,只需要遵循正确的接线和编程方法,你就可以自己DIY出各种各样的有趣小玩意儿了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值