基于ESP8266网页控制RGB三色灯的颜色 您所在的位置:网站首页 wi-fi网页 基于ESP8266网页控制RGB三色灯的颜色

基于ESP8266网页控制RGB三色灯的颜色

2023-06-10 05:11| 来源: 网络整理| 查看: 265

基于ESP8266网页控制RGB三色灯的颜色

首先让我们来了解一下的RGB三色灯的原理,RGB有四个引脚,最短的引脚接地,另外三个引脚接高电平,依次是亮红色,绿色,蓝色,这是三种最基本的配色,然而我们可以通过几种基础配色之间的叠加来产生其他的颜色,按道理最多有七种颜色。

其次我用的是Arduino IDLE环境,如果大家没有配置环境的建议去B站太极创客学习一波。

其次是实现的代码,把RGB的三个长引脚接到开发板的D5,D6,D7(我用的是nodemcu) 下面展示一些 内联代码片。

这是输入你的wifi账号的密码,请注意修改 // An highlighted block const char *ssid = ""; const char *password = "";

以下是完整代码 下面展示一些 内联代码片。

这里是我自己选择的三种颜色,大家想改其他颜色可以通过引脚的高低电平来修改,大家连接到WiFi之后,通过IDLE的串口监视器来获取IP地址,然后手机与ESP8266需要接到同一个wifi上,然后打开手机浏览器输入IP地址(例如:192.168.1.1) // An highlighted block #define RGBLED_R 14 //红色的引脚号 #define RGBLED_G 12 //绿色的引脚号 #define RGBLED_B 13 //蓝色的引脚号 #include #include #include #include /* Wifi ssid and pwd */ const char *ssid = "LHD1"; const char *password = "1234567890"; ESP8266WebServer server(80); String webPage = ""; /* 192.168.4.1 */ void handleRoot() { server.send(200, "text/html", "You are connected"); } void setup() { Serial.begin(9600); // 启动串口通讯 WiFi.begin(ssid, password); // 启动网络连接 Serial.print("Connecting to "); // 串口监视器输出网络连接信息 Serial.print(ssid); Serial.println(" ..."); // 告知用户NodeMCU正在尝试WiFi连接 int i = 0; // 这一段程序语句用于检查WiFi是否连接成功 while (WiFi.status() != WL_CONNECTED) { // WiFi.status()函数的返回值是由NodeMCU的WiFi连接状态所决定的。 delay(1000); // 如果WiFi连接成功则返回值为WL_CONNECTED Serial.print(i++); Serial.print(' '); // 此处通过While循环让NodeMCU每隔一秒钟检查一次WiFi.status()函数返回值 } // 同时NodeMCU将通过串口监视器输出连接时长读秒。 // 这个读秒是通过变量i每隔一秒自加1来实现的。 Serial.println(""); // WiFi连接成功后 Serial.println("Connection established!"); // NodeMCU将通过串口监视器输出"连接成功"信息。 Serial.print("IP address: "); // 同时还将输出NodeMCU的IP地址。这一功能是通过调用 Serial.println(WiFi.localIP()); // WiFi.localIP()函数来实现的。该函数的返回值即NodeMCU的IP地址。 webPage += "ESP8266 CAR"; webPage += "skyblue"; webPage += "pink"; webPage += "blue"; // preparing GPIOs pinMode(RGBLED_R, OUTPUT); //digitalWrite(ENA, 0); pinMode(RGBLED_G, OUTPUT); //digitalWrite(ENB, 0); pinMode(RGBLED_B, OUTPUT); // digitalWrite(IN_1, 0); server.on("/", []() { server.send(200, "text/html", webPage); }); server.on("/pink", []() { server.send(200, "text/html", webPage); pink(); }); server.on("/skyblue", []() { server.send(200, "text/html", webPage); skyblue(); }); server.on("/blue", []() { server.send(200, "text/html", webPage); blue(); }); server.begin(); Serial.println("HTTP server started"); } void pink(){ digitalWrite(RGBLED_R,LOW); digitalWrite(RGBLED_B,HIGH); digitalWrite(RGBLED_G,HIGH); } void skyblue(){ digitalWrite(RGBLED_R,HIGH); digitalWrite(RGBLED_G,HIGH); digitalWrite(RGBLED_B,LOW); } void blue(){ digitalWrite(RGBLED_R,HIGH); digitalWrite(RGBLED_G,HIGH); digitalWrite(RGBLED_B,HIGH); } void loop() { server.handleClient();

以下是效果图 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有