关闭视频

仅使用一片 ESP8266 的 1个 GPIO 驱动 WS2812B 型全彩 RGB LED

发表于:2021年06月04日 12:16更新于:2024年05月05日 07:51

本文描述了如何仅使用一片 ESP8266 的 1 个 GPIO 驱动 WS2812B 型全彩 RGB LED, 底层驱动参考

 

驱动程序还移植Adafruit_NeoPixel 的应用库,可实现多种常用特效。在此基础上还连接到了机智云物联网平台,利用其强大的代码自动生成工具。视频观看

 

 

 

具体步骤

Step1:在开发者中心新建产品;

 

Step2:添加数据点,可使用微信宠物屋 Demo 模板导入,删除不需要的即可;

 

Step3:在 MCU 开发栏目选择 SoC 方案生成代码 SDK;

 

Step4: 下载通用版本调试 APP,支持安卓和 IOS。下载地址

 

Step5:把下载的 SDK 改个名字,原来的有点长,不方便,我这里改为SoC_ESP8266_WS2812B_SmartLEDs
然后添加 WS2812B 型 RGB LED 的驱动文件(可在附件源码中找到这 2 个驱动文件):
把 Adafruit_NeoPixel.c 文件放到 SoC_ESP8266_WS2812B_SmartLEDs\app\driver 下
把 Adafruit_NeoPixel.h 文件放到 SoC_ESP8266_WS2812B_SmartLEDs\app\include\driver 下

 

本驱动提供如下功能:

 

Step6:用文本编辑器如 notepad++、SubelimeText 等打开目录SoC_ESP8266_WS2812B_SmartLEDs\app\user 下的 user_main.c 文件,然后做如下修改; 首先添加头文件:

 

我们此次使用的是 Gokit3 SoC 开发板,由于驱动 LED 的 GPIO 是 GPIO0(Gokit3 SoC 开发 板上对应 D6),而生成的代码包默认使用了 GPIO0 连接到了 Gokit3 SoC 版的按键 key1, 因此把按键 1 相关删除,一般不需要使用产测功能,若自己使用 esp8266-12f 搭建最小系 统,可保留此功能:

 

然后在主函数里面调用 LED 的初始化:

 

Step7:打开目录 SoC_ESP8266_WS2812B_SmartLEDs\app\Gizwits 下的 gizwits_product.c 文 件;
首先添加头文件:

 

然后在有 user handle 注释的地方添加用户代码: 如下是 ESP8266 接收到手机 APP 指令后执行的动作;

 

源码开发环境搭建,固件烧录教程查看工程源码查看