收藏官网首页
查看: 226541|回复: 276

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

 

321

主题

1054

帖子

4501

积分

论坛元老

Rank: 8Rank: 8

积分
4501
QQ
发表于 2017-5-2 13:39:19 | 显示全部楼层 |阅读模式
校园创客福利
本帖最后由 bigfanofloT 于 2017-5-4 18:05 编辑

前言:本文描述了如何仅使用一片esp8266的1个GPIO驱动WS2812B型全彩RGB LED,底层驱动参考了https://github.com/cnlohr/ws2812esp8266,驱动程序还移植Adafruit_NeoPixel的应用库,可实现多种常用特效。在此基础上还连接到了机智云物联网平台,利用其强大的代码自动生成工具,简单三步即完成了一个智能灯的开发。
视频:
实物图.png
Step1:在开发者中心新建产品;
1-开发者中心创建产品.png
Step2:添加数据点,可使用微信宠物屋Demo模板导入,删除不需要的即可;
2-添加数据点.png
Step3:在MCU开发栏目选择SoC方案生成代码SDK;
3-生成工程并下载.png
Step4: 下载通用版本调试APP,支持安卓和IOS:

4-下载调试APP.png
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下
本驱动提供如下功能:
ws2812b rgb led driver.png

ws2812b rgb led driverheader file.png
Step6:用文本编辑器如notepad++、SubelimeText等打开目录SoC_ESP8266_WS2812B_SmartLEDs\app\user下的user_main.c文件,然后做如下修改;

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

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

如下是ESP8266接收到手机APP指令后执行的动作;
用户代码1.png

用户代码2.png
源码开发环境搭建,固件烧录教程查看:
工程源码:
游客,如果您要查看本帖隐藏内容请回复
本文PDF:
使用ESP8266驱动WS2812B型RGB LED简单3步打造智能灯.pdf (1.2 MB, 下载次数: 596)
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

321

主题

1054

帖子

4501

积分

论坛元老

Rank: 8Rank: 8

积分
4501
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闪存空间的。 一会我再询问下客服确认下。 01.jpg
   客服确认了,是4M闪存的。

        看了程序,发现在Adafruit_NeoPixel.h 文件内有一行代码可以改变输出端口。请版主帮忙确认下,是不是我这里改成我需要的端口就行了。其它地方还要改吗?
         01.jpg
     比如我想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

36

主题

308

帖子

70

积分

注册会员

Rank: 2

积分
70
发表于 2017-5-2 13:55:30 | 显示全部楼层
校园创客福利
一楼我要了
G3机智云物联网云服务 287087942
有什么疑问,可以在论坛,qq群(优先在论坛哦,避免重复造轮子)
在论坛提问的回答率是100%!!!!!!!!
希望和大家一起交流学习.

2

主题

9

帖子

481

积分

中级会员

Rank: 3Rank: 3

积分
481
发表于 2017-5-2 14:24:47 | 显示全部楼层
本帖最后由 Genius 于 2017-5-2 14:44 编辑

亲测WS2812 RGB彩灯MCU和SOC方案实现  http://club.gizwits.com/thread-5436-1-1.html

0

主题

1

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2017-5-2 14:37:51 | 显示全部楼层
正好在做这个

16

主题

43

帖子

655

积分

高级会员

Rank: 4

积分
655
发表于 2017-5-2 15:21:19 | 显示全部楼层
首先,先赞一个

27

主题

89

帖子

742

积分

高级会员

Rank: 4

积分
742
发表于 2017-5-2 17:12:28 | 显示全部楼层
感谢分享!刚好在研究这个,有现成的库调用,就方便了。

2

主题

56

帖子

2056

积分

金牌会员

Rank: 6Rank: 6

积分
2056
发表于 2017-5-2 21:12:10 | 显示全部楼层
看看,谢谢分享!

27

主题

89

帖子

742

积分

高级会员

Rank: 4

积分
742
发表于 2017-5-3 20:35:44 | 显示全部楼层
本帖最后由 clide2000 于 2017-5-3 22:12 编辑

其他朋友,有没有遇到初始化以后,总是亮着一个绿灯。
然后在调色时,有时候也会出一个灯颜色不正常。
有时全部关闭后,还是亮一个绿灯的情况?
我这测试了12颗灯的灯板。有这样的情况。

和作者沟通过了。应该是我调用的方法有问题。
大家不要被我误导了。

点评

你用的什么?  详情 回复 发表于 2017-5-3 21:16

321

主题

1054

帖子

4501

积分

论坛元老

Rank: 8Rank: 8

积分
4501
QQ
 楼主| 发表于 2017-5-3 21:16:28 | 显示全部楼层
clide2000 发表于 2017-5-3 20:35
其他朋友,有没有遇到初始化以后,总是亮着一个绿灯。
然后在调色时,有时候也会出一个灯颜色不正常。
有时 ...

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

6

主题

38

帖子

801

积分

高级会员

Rank: 4

积分
801
发表于 2017-5-3 23:34:30 | 显示全部楼层
望楼主能提供硬件连接方式,十分感谢

点评

说了啊,ws2812b型LED就3根线,电源VCC接5V,GND接地,数据线接ESP8266的GPIO0,在Gokit3 SoC上是D6  详情 回复 发表于 2017-5-4 13:04

8

主题

144

帖子

3308

积分

论坛元老

Rank: 8Rank: 8

积分
3308
发表于 2017-5-4 17:12:12 | 显示全部楼层

已解决

本帖最后由 peter58 于 2017-5-4 17:33 编辑

我的怎么用你的源码和我自已的数据点编译报错,好像库文件有问题;在MIAN.C里屏蔽了#include "driver/Adafruit_NeoPixel.h"可以通过。

在main.c 里lZ在初始化 是用的小写ws2812B_Init();改为:WS2812B_Init();编译通过,我当时是COPY   LZ的,所以报错。

6

主题

38

帖子

801

积分

高级会员

Rank: 4

积分
801
发表于 2017-5-4 19:50:26 | 显示全部楼层
bigfanofloT 发表于 2017-5-4 13:04
说了啊,ws2812b型LED就3根线,电源VCC接5V,GND接地,数据线接ESP8266的GPIO0,在Gokit3 SoC上是D6 ...

十分感谢,我试一试,

16

主题

69

帖子

4892

积分

论坛元老

Rank: 8Rank: 8

积分
4892
发表于 2017-5-4 22:02:51 | 显示全部楼层
厉害 ,谢谢分享

16

主题

43

帖子

655

积分

高级会员

Rank: 4

积分
655
发表于 2017-5-5 00:31:39 | 显示全部楼层
正在尝试,感谢分享

6

主题

38

帖子

801

积分

高级会员

Rank: 4

积分
801
发表于 2017-5-5 12:07:43 | 显示全部楼层
汉枫LPB120模块
楼主你好,感谢您的热心,有直接做好的SOC.bin固件吗?自己制作固件方式比较复杂,不太会使用linux操作系统,求固件

点评

有啊,你在源码里面的bin文件夹下找  详情 回复 发表于 2017-5-5 12:24

321

主题

1054

帖子

4501

积分

论坛元老

Rank: 8Rank: 8

积分
4501
QQ
 楼主| 发表于 2017-5-5 12:24:29 | 显示全部楼层
SmartKing 发表于 2017-5-5 12:07
楼主你好,感谢您的热心,有直接做好的SOC.bin固件吗?自己制作固件方式比较复杂,不太会使用linux ...

有啊,你在源码里面的bin文件夹下找

点评

bin文件下有好多固件,是user1.4096.new.6.bin 这个吗?  详情 回复 发表于 2017-5-5 16:57
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

16

主题

67

帖子

1113

积分

金牌会员

Rank: 6Rank: 6

积分
1113
QQ
发表于 2017-5-5 15:30:36 | 显示全部楼层
我在学习中,刚会烧录,一脑袋浆糊

点评

加油~~~有什么问题可以加群讨论或者发论坛哦  详情 回复 发表于 2017-5-5 15:41
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

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

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