收藏官网首页
查看: 239275|回复: 277

[资料] 使用ESP8266驱动WS2812B型RGB LED简单3步打造智能灯

 

321

主题

1054

帖子

4502

积分

论坛元老

Rank: 8Rank: 8

积分
4502
QQ
跳转到指定楼层
#
发表于 2017-5-2 13:39:19 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
汉枫LPB120模块
本帖最后由 bigfanofloT 于 2017-5-4 18:05 编辑

前言:本文描述了如何仅使用一片esp8266的1个GPIO驱动WS2812B型全彩RGB LED,底层驱动参考了https://github.com/cnlohr/ws2812esp8266,驱动程序还移植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文件,然后做如下修改;

首先添加头文件:
我们此次使用的是gokit3SoC开发板,由于驱动LED的GPIO是GPIO0(Gokit3 SoC开发板上对应D6),而生成的代码包默认使用了GPIO0连接到了Gokit3 SoC版的按键key1,因此把按键1相关删除,一般不需要使用产测功能,若自己使用esp8266-12f搭建最小系统,可保留此功能:
然后在主函数里面调用LED的初始化:
Step7:打开目录SoC_ESP8266_WS2812B_SmartLEDs\app\Gizwits下的gizwits_product.c文件;

首先添加头文件:
然后在有userhandle注释的地方添加用户代码:

如下是ESP8266接收到手机APP指令后执行的动作;

源码开发环境搭建,固件烧录教程查看:
工程源码:
游客,如果您要查看本帖隐藏内容请回复
本文PDF:
使用ESP8266驱动WS2812B型RGB LED简单3步打造智能灯.pdf (1.2 MB, 下载次数: 598)
WS2812B数据手册:
WS2812B规格书.pdf (433.51 KB, 下载次数: 306)

1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

321

主题

1054

帖子

4502

积分

论坛元老

Rank: 8Rank: 8

积分
4502
QQ
推荐
 楼主| 发表于 2017-5-4 13:04:17 | 只看该作者
SmartKing 发表于 2017-5-3 23:34
望楼主能提供硬件连接方式,十分感谢

说了啊,ws2812b型LED就3根线,电源VCC接5V,GND接地,数据线接ESP8266的GPIO0,在Gokit3 SoC上是D6

点评

请问一下亮度调节应该怎么写,还有就是我的APP发送的指令为什么有时候后面几个灯颜色没有改变  详情 回复 发表于 2017-8-5 22:15
十分感谢,我试一试,  详情 回复 发表于 2017-5-4 19:50
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

0

主题

5

帖子

128

积分

注册会员

Rank: 2

积分
128
推荐
发表于 2019-5-20 22:46:12 | 只看该作者
楼主,请问枚举类型在product.c里面        case EVENT_location:
            currentDataPoint.valuelocation = dataPointPtr->valuelocation;
            GIZWITS_LOG("Evt: EVENT_location %d\n", currentDataPoint.valuelocation);
                    uart0_sendStr("####please please please location!!!!!!!: \r\n");
            switch(currentDataPoint.valuelocation)
            {
            case location_VALUE0:
                    uart0_sendStr("####Choose beijing location: \r\n");
                    statu[0]=1;//user handle
                    currentDataPoint.valuelocation = 0;
                break;
            case location_VALUE1:
                    uart0_sendStr("####Choose xi'an location: \r\n");
                    statu[1]=1;//user handle
                    currentDataPoint.valuelocation = 1;

                break;

为啥在手机上选择了第一个或者第二个,串口没打印,灯也没变化,程序测试串口和灯用着布尔型数据点没问题。求解

16

主题

67

帖子

1113

积分

金牌会员

Rank: 6Rank: 6

积分
1113
QQ
推荐
发表于 2017-5-7 14:41:36 | 只看该作者
本帖最后由 彩色笔 于 2017-5-7 19:16 编辑
bigfanofloT 发表于 2017-5-7 11:54
你这是nodemcu吗?它的flash是1MB的,无法使用的哦,使用ESP8622-12F模块,4MB Flash的,如何修改GPIO参 ...

就的,我用的是安信可公司的NodeMCU,根据官方网址上提供的,是说有4M闪存空间的。 一会我再询问下客服确认下。
   客服确认了,是4M闪存的。

        看了程序,发现在Adafruit_NeoPixel.h 文件内有一行代码可以改变输出端口。请版主帮忙确认下,是不是我这里改成我需要的端口就行了。其它地方还要改吗?
        
     比如我想GPIO5口连接LED,将#define WSGPIO 0 改为#define WSGPIO 5 是不是就可以了?   其它地方还要修改吗?   
     还有个问题,下面那行代码 #define PIXEL_MAX 16 //the total numbers of LEDs you are used in your project   设定了连接的LED总数,这个总数的数值是可以随意调的吗?
     

点评

这个不行的,需要用gpio0,你看注释  详情 回复 发表于 2017-5-8 14:45

0

主题

1

帖子

20

积分

新手上路

Rank: 1

积分
20
274#
发表于 2024-4-5 21:47:02 | 只看该作者
教您5分钟接入机智云,实现傻瓜式开发
收获大大的,收获大大的,收获大大的,

0

主题

5

帖子

75

积分

注册会员

Rank: 2

积分
75
272#
发表于 2022-12-5 10:06:39 | 只看该作者
没看出来‘Gokit3 SoC版的按键key1,因此把按键1相关删除,一般不需要使用产测功能,若自己使用esp8266-12f搭建最小系统,可保留此功能:’,那是什么都不用改吗

0

主题

8

帖子

55

积分

注册会员

Rank: 2

积分
55
271#
发表于 2022-11-18 13:59:36 | 只看该作者
正好在做这个

0

主题

1

帖子

18

积分

新手上路

Rank: 1

积分
18
270#
发表于 2022-10-20 20:22:23 | 只看该作者
感谢大佬的分享

0

主题

1

帖子

9

积分

新手上路

Rank: 1

积分
9
268#
发表于 2022-5-10 21:35:33 | 只看该作者
好喜欢这个驱动程序呀!下载了看看

0

主题

4

帖子

59

积分

注册会员

Rank: 2

积分
59
267#
发表于 2022-4-4 15:07:19 | 只看该作者
刚玩,看看先向前辈门学习

0

主题

1

帖子

18

积分

新手上路

Rank: 1

积分
18
266#
发表于 2022-3-23 00:52:22 | 只看该作者
ssssssssssssssssssssss

0

主题

1

帖子

29

积分

新手上路

Rank: 1

积分
29
265#
发表于 2022-3-9 17:27:28 | 只看该作者
学习学习,膜拜

0

主题

1

帖子

13

积分

新手上路

Rank: 1

积分
13
264#
发表于 2022-1-3 12:41:09 | 只看该作者
汉枫LPB120模块
楼主上面用GPIO计数延时的好像不能用

0

主题

1

帖子

15

积分

新手上路

Rank: 1

积分
15
258#
发表于 2021-8-4 14:57:16 | 只看该作者
学习一下!                                            

0

主题

6

帖子

158

积分

注册会员

Rank: 2

积分
158
257#
发表于 2021-6-24 17:06:32 | 只看该作者
你好,帖子不错!

5

主题

10

帖子

538

积分

高级会员

Rank: 4

积分
538
256#
发表于 2021-6-16 20:58:46 | 只看该作者
厉害了  我也要试试

0

主题

2

帖子

37

积分

新手上路

Rank: 1

积分
37
255#
发表于 2021-6-10 18:25:20 | 只看该作者
刚好需要,,,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表