#include <ESP8266WiFi.h> //加入ESP8266wifi头文件
#include <FastLED.h>
#define LED_PIN 0 //LED信号线IN
#define NUM_LEDS 16 //级联了16颗LED
CRGB leds[NUM_LEDS];
#define LEDPIN 2
WiFiClient client;
const char *ssid = "vivo"; //ssid,你家的wifi名称
const char *password = "a123456789";//wifi密码
const char *host = "0.0.0.0"; //改为上图所示的IP地址(改为你自己的)
const int tcpPort = 8080;//改为上图所示的本地端口号(改为你自己的)
void setup()
{
Serial.begin(115200);
pinMode(LEDPIN,OUTPUT);
delay(10);
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
FastLED.setBrightness(10);//可以设置全局亮度,调低亮度不刺眼
WiFi.begin(ssid, password);//启动
//在这里检测是否成功连接到目标网络,未连接则阻塞。
while (WiFi.status() != WL_CONNECTED)
{
Serial.println("WiFi connection failed......");
delay(500);
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP()); //WiFi本地IP
}
void loop()
{
while (!client.connected()) //若未连接到电脑服务端,则esp8266客户端进行连接。
{
if (!client.connect(host, tcpPort))//实际上这一步就在连接服务端,如果连接上,该函数返回true
{
Serial.println("connection....");
delay(500);
}
}
while (client.available())//available()表示是否可以获取到数据
{
char val = client.read();//read()表示从网络中读取数据。
//Serial.println(val); //打印出来接收到的值
//改变h即可改变颜色
if(val=='a'){
for (int i = 0,h=200; i < NUM_LEDS; i++) {
leds[i] = CHSV( h, 255, 255);
FastLED.show();
}
}
if(val=='b'){
for (int i = 0,h=0; i < NUM_LEDS; i++) {
leds[i] = CHSV( h, 255, 255);
FastLED.show();
}
}
if(val=='c'){
for (int i = 0,h=100; i < NUM_LEDS; i++) {
leds[i] = CHSV( h, 255, 255);
FastLED.show();
}
}
if(val=='d'){
for (int i = 0,h=60; i < NUM_LEDS; i++) {
leds[i] = CHSV( h, 255, 255);
FastLED.show();
}
}
}
}
代码如上图所示