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

基于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 <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266WiFiMulti.h>/* 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 += "";webPage += "";webPage += "";// preparing GPIOspinMode(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();

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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部