找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 28155|回复: 35
收起左侧

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

  [复制链接]
ID:184786 发表于 2017-5-4 18:31 | 显示全部楼层 |阅读模式
这个智能灯方案很不错,只用了一个无线WIFI esp8266芯片,驱动ws2812b型RGB LED,效果很赞,在群里看到的,特分享下,若是侵犯了版权,联系我删除就行了~

实物图.png

0.png

1.源码编译方式
  1. cd app/
  2. ./gen_misc.sh
  
2.库编译方式
  1. 先用源码编译方式,生成libgagent.a 库路径为:"app/gagent/.output/eagle/debug/lib"
  2. cp app/gagent/.output/eagle/debug/lib/libgagent.a ../lib/
  3. mv makefile makefile_src
  4. mv makefile_lib makefile
  5. ./gen_misc.sh
  
3.烧录固件
  esp_init_data_default.bin          0x3fc000
  blank.bin                          0x3fe000
  boot_v1.6.bin                      0x00000
  user1.4096.new.6.bin               0x01000
  
  选项:CrystalFreq=26M  SPI_SPEED=40MHz SPI_MODE=QIO FLASH_SIZE=32Mbit-C1, 其他默认,串口115200
  进入uart烧录模式后,点击start下载即可!
  
4.OTA测试
    OTA固件版本号位置:gizwits_product.h
        #define SDK_VERSION                             "02"        //OTA固件版本号 必须为两位数
    MAC:
        查看云端产品管理->运行状态->在线设备详情->设备MAC
    注意:
        1.编译固件时的Makefile与烧录工具的设置:
            "FLASH SIZE" : 32Mbit-C1
            "SPI MODE" : QIO
        2.推送的“OTA固件版本号”必须大于正工作的软件版本。
        3.固件类型:WiFi 推送方式:v4.1
  1. /**
  2. ************************************************************
  3. * @file         user_main.c
  4. * @brief        SOC版 入口文件
  5. * @author       Gizwits
  6. * @date         2016-09-05
  7. * @version      V03010201
  8. * @copyright    Gizwits
  9. *
  10. * @note         机智云.只为智能硬件而生
  11. *               Gizwits Smart Cloud  for Smart Products
  12. *               链接|增值ֵ|开放|中立|安全|自有|自由|生态
  13. *               www.gizwits.com
  14. *
  15. ***********************************************************/
  16. #include "ets_sys.h"
  17. #include "osapi.h"
  18. #include "user_interface.h"
  19. #include "gagent_soc.h"
  20. #include "user_devicefind.h"
  21. #include "user_webserver.h"
  22. #include "gizwits_protocol.h"
  23. #include "driver/hal_key.h"

  24. #include "driver/Adafruit_NeoPixel.h"

  25. #if ESP_PLATFORM
  26. #include "user_esp_platform.h"
  27. #endif

  28. #ifdef SERVER_SSL_ENABLE
  29. #include "ssl/cert.h"
  30. #include "ssl/private_key.h"
  31. #else
  32. #ifdef CLIENT_SSL_ENABLE
  33. unsigned char *default_certificate;
  34. unsigned int default_certificate_len = 0;
  35. unsigned char *default_private_key;
  36. unsigned int default_private_key_len = 0;
  37. #endif
  38. #endif


  39. /**@name Gizwits模块相关系统任务参数
  40. * @{
  41. */
  42. #define userQueueLen    200                                                 ///< 消息队列总长度
  43. LOCAL os_event_t userTaskQueue[userQueueLen];                               ///< 消息队列
  44. /**@} */

  45. /**@name 用户定时器相关参数
  46. * @{
  47. */
  48. #define USER_TIME_MS 1000                                                    ///< 定时时间,单位:毫秒
  49. LOCAL os_timer_t userTimer;                                                 ///< 用户定时器结构体
  50. /**@} */

  51. /**@name 按键相关定义
  52. * @{
  53. */
  54. #define GPIO_KEY_NUM                            1                           ///< 定义按键成员总数
  55. #define KEY_1_IO_MUX                            PERIPHS_IO_MUX_MTMS_U       ///< ESP8266 GPIO 功能
  56. #define KEY_1_IO_NUM                            14                          ///< ESP8266 GPIO 编号
  57. #define KEY_1_IO_FUNC                           FUNC_GPIO14                 ///< ESP8266 GPIO 名称
  58. LOCAL key_typedef_t * singleKey[GPIO_KEY_NUM];                              ///< 定义单个按键成员数组指针
  59. LOCAL keys_typedef_t keys;                                                  ///< 定义总的按键模块结构体指针   
  60. /**@} */

  61. /** 用户区当前设备状态结构体*/
  62. dataPoint_t currentDataPoint;


  63. /**
  64. * key2按键短按处理
  65. * @param none
  66. * @return none
  67. */
  68. LOCAL void ICACHE_FLASH_ATTR key2ShortPress(void)
  69. {
  70.     os_printf("#### key2 short press, soft ap mode \n");

  71.     gizwitsSetMode(WIFI_SOFTAP_MODE);
  72. }

  73. /**
  74. * key2按键长按处理
  75. * @param none
  76. * @return none
  77. */
  78. LOCAL void ICACHE_FLASH_ATTR key2LongPress(void)
  79. {
  80.     os_printf("#### key2 long press, airlink mode\n");

  81.     gizwitsSetMode(WIFI_AIRLINK_MODE);
  82. }

  83. /**
  84. * 按键初始化
  85. * @param none
  86. * @return none
  87. */
  88. LOCAL void ICACHE_FLASH_ATTR keyInit(void)
  89. {
  90.     singleKey[0] = keyInitOne(KEY_1_IO_NUM, KEY_1_IO_MUX, KEY_1_IO_FUNC,
  91.                                 key2LongPress, key2ShortPress);
  92.     keys.singleKey = singleKey;
  93.     keyParaInit(&keys);
  94. }

  95. /**
  96. * 用户数据获取

  97. * 此处需要用户实现除可写数据点之外所有传感器数据的采集,可自行定义采集频率和设计数据过滤算法
  98. * @param none
  99. * @return none
  100. */
  101. void ICACHE_FLASH_ATTR userTimerFunc(void)
  102. {
  103.         /*

  104.     */  
  105.         //setAllPixelColor(0,50,0);
  106.     system_os_post(USER_TASK_PRIO_0, SIG_UPGRADE_DATA, 0);
  107. }

  108. /**
  109. * @brief 用户相关系统事件回调函数

  110. * 在该函数中用户可添加相应事件的处理
  111. * @param none
  112. * @return none
  113. */
  114. void ICACHE_FLASH_ATTR gizwitsUserTask(os_event_t * events)
  115. {
  116.     uint8_t i = 0;
  117.     uint8_t vchar = 0;

  118.     if(NULL == events)
  119.     {
  120.         os_printf("!!! gizwitsUserTask Error \n");
  121.     }

  122.     vchar = (uint8)(events->par);

  123.     switch(events->sig)
  124.     {
  125.     case SIG_UPGRADE_DATA:
  126.         gizwitsHandle((dataPoint_t *)¤tDataPoint);
  127.         break;
  128.     default:
  129.         os_printf("---error sig! ---\n");
  130.         break;
  131.     }
  132. }

  133. /**
  134. * @brief user_rf_cal_sector_set

  135. * 用flash中的636扇区(2544k~2548k)存储RF_CAL参数
  136. * @param none
  137. * @return none
  138. */
  139. uint32 user_rf_cal_sector_set()
  140. {
  141.     return 636;
  142. }

  143. /**
  144. * @brief 程序入口函数

  145. * 在该函数中完成用户相关的初始化
  146. * @param none
  147. * @return none

  148. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码


全部资料下载:
SoC_ESP8266_WS2812B_SmartLEDs.zip (8.96 MB, 下载次数: 402)

评分

参与人数 3黑币 +110 收起 理由
leewj129 + 5 赞一个!
qjzyx + 5 赞一个!
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:204627 发表于 2017-5-25 10:52 | 显示全部楼层
不错!!!!
回复

使用道具 举报

ID:68875 发表于 2017-9-29 21:40 | 显示全部楼层
good job
回复

使用道具 举报

ID:198608 发表于 2017-10-6 00:04 来自手机 | 显示全部楼层
楼主给个联系方式,学习一下
回复

使用道具 举报

ID:249545 发表于 2017-11-26 15:31 | 显示全部楼层
楼主不辞劳苦贴出ESP8266的控制原理和源代码,这才是51HEI的真正好老师!
回复

使用道具 举报

ID:280635 发表于 2018-1-29 13:52 | 显示全部楼层
可以可以,下载下来学习学习
回复

使用道具 举报

ID:223291 发表于 2018-2-13 16:48 | 显示全部楼层
谢谢大佬分享
回复

使用道具 举报

ID:266116 发表于 2018-2-13 20:42 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

ID:231727 发表于 2018-2-24 23:06 | 显示全部楼层
不错,正好手头上有几片8266
回复

使用道具 举报

ID:294842 发表于 2018-3-21 09:17 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

ID:263813 发表于 2018-4-23 14:22 | 显示全部楼层
不错,可以做个WiFIPOV
回复

使用道具 举报

ID:322161 发表于 2018-5-4 16:01 | 显示全部楼层
感谢,正在学全彩灯
回复

使用道具 举报

ID:310103 发表于 2018-5-30 14:46 | 显示全部楼层
已下载币就不足了。
回复

使用道具 举报

ID:293861 发表于 2018-6-5 14:47 | 显示全部楼层
支持楼主,我想下载
回复

使用道具 举报

ID:65882 发表于 2018-6-21 13:39 | 显示全部楼层
看看这个原理图, 学习学习
回复

使用道具 举报

ID:381713 发表于 2018-8-1 15:10 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:275125 发表于 2018-9-11 14:03 | 显示全部楼层
赞一个
回复

使用道具 举报

ID:348669 发表于 2018-10-17 23:12 | 显示全部楼层
膜拜大佬
回复

使用道具 举报

ID:373838 发表于 2018-10-25 08:05 | 显示全部楼层
1. cd app/
  2. ./gen_misc.sh
  
2.库编译方式
  1. 先用源码编译方式,生成libgagent.a 库路径为:"app/gagent/.output/eagle/debug/lib"
  2. cp app/gagent/.output/eagle/debug/lib/libgagent.a ../lib/
  3. mv makefile makefile_src
  4. mv makefile_lib makefile
  5. ./gen_misc.sh

这个命令在哪里输入啊,自带的tools 有个exe文件是干嘛的,打开后会有个命令窗口
回复

使用道具 举报

ID:406155 发表于 2018-12-7 14:13 | 显示全部楼层
支持楼主,感谢!
回复

使用道具 举报

ID:458443 发表于 2018-12-30 10:36 | 显示全部楼层
不错,试试
回复

使用道具 举报

ID:60656 发表于 2019-1-6 22:50 | 显示全部楼层

支持楼主,感谢!
回复

使用道具 举报

ID:473395 发表于 2019-1-27 17:09 | 显示全部楼层
很不不粗啊,下载
回复

使用道具 举报

ID:353239 发表于 2019-2-25 10:15 | 显示全部楼层
楼主 你好 你这个源码包里面 没有gagent得源码呀,你这么有这个源码吗?
回复

使用道具 举报

ID:71182 发表于 2019-3-28 23:12 | 显示全部楼层
正好需要,谢谢分享
回复

使用道具 举报

ID:637790 发表于 2019-11-7 22:13 | 显示全部楼层
感谢分享  正在学习中
回复

使用道具 举报

ID:650412 发表于 2020-2-26 21:01 | 显示全部楼层
能让灯亮了
回复

使用道具 举报

ID:97300 发表于 2020-3-7 16:31 | 显示全部楼层
谢谢,学习一下
回复

使用道具 举报

ID:713171 发表于 2020-3-21 23:42 | 显示全部楼层
感谢分享,太棒了
回复

使用道具 举报

ID:637646 发表于 2020-4-23 18:50 | 显示全部楼层
楼主辛苦了,好资料
回复

使用道具 举报

ID:97300 发表于 2020-4-24 21:19 | 显示全部楼层
先学习一下!谢谢
回复

使用道具 举报

ID:618406 发表于 2020-4-27 15:21 | 显示全部楼层
正学习呢,下载
回复

使用道具 举报

ID:618406 发表于 2020-4-27 15:21 | 显示全部楼层

感谢分享  正在学习中
回复

使用道具 举报

ID:724172 发表于 2020-9-3 15:21 | 显示全部楼层
感谢 了。找这都找太久了,差点就忘记了
回复

使用道具 举报

ID:671721 发表于 2020-11-1 14:55 | 显示全部楼层
使用ESP8266驱动WS2812B型RGB LED简单3步打造智能灯
http://www.51hei.com/bbs/dpj-83580-1.html
(出处: http://www.51hei.com/bbs/)
回复

使用道具 举报

ID:671956 发表于 2022-1-17 09:07 | 显示全部楼层
谢谢使用ESP8266驱动WS2812B型RGB LED简单3步打造智能灯
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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