目录

前言

一、硬件篇

1.1 . 材料准备

二、代码篇

 2.1.安装环境

       2.1.1.安装Arduino IDE

        2.1.2.安装esp 8266 SDK

      2.1.3.安装相应的库

2.2.部分代码解析

   2.2.1.点灯科技的配置

2.2.2.部分需要修改的地方

2.2.3.部分模式代码

3.1.点灯科技APP设置

4.实物图片及视频

5.做氛围灯途中的心得和体会

总结


前言

随着科技发展,我们的生活逐渐智能化,本文就介绍如何通过esp8266与其他模块配合来实现远程操控灯带呈现出不同的效果。


一、硬件篇

1.1 . 材料准备

esp8266 12f ; ws2812灯带(建议买1m60颗的);max9814;USB转TTL模块;TP4056充电模块;锂电池;灯筒(淘宝搜索,几块钱一个的那种,叫商家发散件);飞线若干,热熔枪,电烙铁

1.2 各模块介绍

ESP8266-12F

下载模式时(注意拉低GPIO0电平)

GPIO0GPIO2GPIO15VCCGNDTXRX
低电平高电平低电平VCCGNDRXTX

                      ESP8266TXUSB转TTLRX,然后RXUSB转TTLTX

运行模式时

                       

GPIO2GPIO15ENVCCGND
高电平低电平高电平VCCGND

MAX9814

接线方式

GNDV+OUT
GNDVCC接esp的ADC口

WS2812

接线方式

GNDVCCPIN
GNDVCCGPIO5

二、代码篇

 2.1.安装环境

       2.1.1.安装Arduino IDE

Arduino IDE 下载地址

安装后大概是这个界面

        2.1.2.安装esp 8266 SDK

        esp8266 SDK下载

        跟着网址上的步骤安装好,然后按图里的选项选择开发板

      2.1.3.安装相应的库

库文件下载地址

下载完在项目一栏选择加载库,选择添加zip库,然后要是在后面的编译过程中发现缺少某个库的话,就在工具一栏点击管理库,在线下载缺少的库就行了

2.2.部分代码解析

   2.2.1.点灯科技的配置

我们使用的是点灯科技来远程控制和连接小爱同学,可以通过点灯科技的官网的说明及下载示例来进行配置

部分引用的库

#include<MegunoLink.h>
#include<Filter.h>  
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

#include <DNSServer.h>//密码直连将其三个库注释
#include <ESP8266WebServer.h>
#include <CustomWiFiManager.h>


#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT
#define BLINKER_WITHOUT_SSL
#include <FastLED.h>
#include <Blinker.h>
#include <Adafruit_NeoPixel.h>

2.2.2.部分需要修改的地方

#define MIC_PIN   A0//ADC
#define NOISE 500                  //声音
#define TOP   (NUMPIXELS+2)
#define LED_TYPE  WS2812B//灯板型号
#define BRIGHTNESS  100     
#define COLOR_ORDER GRB

// web配网页面自定义我的图标请随便使用一个图片转base64工具转换https://tool.css-js.com/base64.html, 64*64
const char Icon[] PROGMEM = "data:image/jpeg;base64,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";
// **************************//


char auth[] = "***********";                       //修改blinker设备的授权码
#define PIN             5                          //定义gpio5为灯带输出口
#define NUMPIXELS      54                         //ws2812 灯数  如果直接接灯带 建议灯珠60以内=====请更改=====
int openState = 7;//默认灯效模式,上电后自动启动特定模式

//uint8_t colorR, colorG, colorB, colorW, _colorW;  //如果需要上电默认不亮灯或者0模式则使用此行初始值设置并注释掉下方5行初始值设置

uint8_t colorR = 150;
uint8_t colorG = 0;
uint8_t colorB = 150;
uint8_t colorW = 100;
uint8_t _colorW = 0;

int interval = 25;/灯效节奏
bool wsState;
uint8_t wsMode;
int brt_set = 100;//未调整亮度时呼吸灯初始亮度

//********************************************************************************************************************************
//********************************************************************************************************************************

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);//Adafruit_NeoPixel
CRGB leds[NUMPIXELS];//FASTLED
int lvl = 0, minLvl = 0, maxLvl = 250; //根据需要调整麦克风接收“最小值”和“最大值”

//音频过滤实现平滑原始音频信号
ExponentialFilter<long> ADCFilter(5,0);

2.2.3.部分模式代码

void music_vu()//律动模式
    {
  
          int n, height;
          n = analogRead(MIC_PIN);
          n = abs(1023 - n);
          n = (n <= NOISE) ? 0 : abs(n - NOISE);
          ADCFilter.Filter(n);
          lvl = ADCFilter.Current();
          height = TOP * (lvl - minLvl) / (long)(maxLvl - minLvl);
          if(height < 0L) height = 0;
          else if(height > TOP) height = TOP;
          for(uint8_t i = 0; i < NUMPIXELS; i++) 
          {
          if(i >= height) leds[i] = CRGB(0,0,0);
          else leds[i] = Wheel( map( i, 0, NUMPIXELS-1, 30, 150 ) );
              }
  FastLED.show();
     }



void breath()//呼吸灯
{
  for (int brt = brt_set; brt > -1 ; brt--) {
    if (openState == 3)
    {
      colorW = brt;
      pixelShow();
      Blinker.delay(interval);
    }
  }
  Blinker.delay(2000);
  for (int brt = 0; brt < brt_set + 1; brt++) {
    if (openState == 3)
    {
      colorW = brt;
      pixelShow();
      Blinker.delay(interval);
    }

  }


}

需要完整代码的我会在下方放出链接

3.1.点灯科技APP设置

           在点灯科技官网下载点灯APP,点添加设备,接入阿里云,把得到的密钥复制到你的代码中,并在界面配置中把文本复制,然后点更新配置。(文本我会打包放在代码压缩包里面)

4.实物图片及视频

由于没办法上传视频,我就放在网盘里了,有兴趣的朋友可以看看

律动模式和彩虹灯模式

5.做氛围灯途中的心得和体会

        我也是半路出家,在b站上看到觉得好玩就自己动手试试,前期环境的搭建和库的寻找就花了我不少的时间,东拼西凑代码也用了不少时间,在用TTL上传代码的时候注意有时候得外接电源,不然单纯TTL供电不足一直上传不了,找了很久的原因,后来我用了stm32f103开放板来当工具人,如果没有stm32的朋友用其他的也可以,主要就是用来供电和接地。

最直观的感受,当我做了很久,完成接上电源那一刻,灯不亮,内心很绝望,但不甘心,重新接线他亮了,顿时就感觉一切都值得了


总结

总的来说,做这个灯让我提升很多,无论是从代码理解上还是焊接能力上,对耐心也有一定的提高,有兴趣的朋友可以自己动手试试看

代码链接

esp8266代码

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐