Kara 发表于 2019-12-24 16:46:38

方案推荐:借助机智云物联网平台 用esp8266做一个商业化的...

方案推荐:借助机智云物联网平台用esp8266做一个商业化的七彩RGB灯泡可调整体方案项目,炫彩夺目高大尚

时间如梭,大四选完毕设题之后,大学生的毕业季即将要来临了。很多人愁着做毕设找不到好的题材!我在这里分享一个比较简单而炫酷的智能灯带作品,具有低成本制作、APP遥控调光、Wifi智能场景.......等功能。
这是我昨天在一个商店看到的一个智能灯泡的截图。
首先给大家一个昨晚拍的diy图片,我想只有那个手机里面的界面吸住了你把?但是,我郑重告诉你,这个圆盘的取色可以直接同步到右边的灯带哦!咳咳!下面听我完整为大家详细阐述整个制作流程!我的键盘开始疯狂翘起来了!

二、制作准备材料
2.1 材料:
[*]机智云物联网平台 账号一个,请自行注册:dev.gizwits.com
[*]AndroidStudio开发环境,请自行搭建!
[*]esp8266 nonos sdk开发环境准备,请自行搭建!
[*]硬件准备:esp8266模组,ws2812b灯珠,以及杜邦线若干条!

2.2 我的硬件:

2.3 电路图:

三、机智云物联网平台注册产品。
为什么选择机智云物联网平台 ,因为我个人比较喜欢它的自动生成代码工程的功能!包括上位机和mcu代码,非常方便!
至于整个注册账号流程我不多说了,下面主要列下数据点:
那么我们开始生成 esp8266代码啦!我们选择 32Mbit的,soc方案;应用配置我们选择 安卓就好了!

四、ws2812 灯珠认识
关于这个灯珠的资料网上多的是,我总的概述:
[*]1、每颗灯珠内置一个驱动芯片,我们只需要和这个驱动芯片通讯就可以达成调光的目的了!所以,我们不需要用 pwm 调节!!!
[*]2、其的管脚引出有四个,2个是供电用 的!还有2个是通讯的,DIN是输入,DOUT是输出!以及其是 5v 电压供电!切记!
[*]3、根据不同的厂商生产不同,驱动的方式有所不一样!下面发送数据顺序是:green -- Red -- Blue ,或者还有一种是 Red --- green -- blue , 如果发现你想调节红色变成看绿色,但是蓝色没变化!说明驱动问题!







4.1 机智云社区提供的esp8266驱动ws2812下载:机智云社区下载传送门:club.gizwits.com/thread-6116-1-1.html
咳咳!这个机智云社区发现的这个驱动一个缺点是:只能是 gpio0来和灯珠通讯!之后,我和群里的一个小伙伴彭工细聊了下,发现驱动写得有问题,之后,我们整理下,也就兼容全部 io 了。除了 gpio16!!
4.2 整理过后的驱动适配:根据自己的硬件连接在 ws2812.h适配修改,以下面的gpio12为例!
[*]// gpio口配置
[*]#define WS2812_PIN 12
[*]#define WS2812_FUN FUNC_GPIO12
[*]#define WS2812_MUX PERIPHS_IO_MUX_MTDI_U
[*]#define PIXEL_MAX   24//灯珠个数

上面提到 不同的厂商驱动的方式顺序有所不一样,如果发现不正确,请修改 ws2812.c下面的宏定义:
[*]#if 0
[*]#define RGB_TO_GRB(c)   (uint32)((c&0x000000ff)|((c>>8)&0x0000ff00)|((c<<8)&0x00ff0000))
[*]#else
[*]#define RGB_TO_GRB(c)   c
[*]#endif

具体的修改内容我就不贴了!看源码把!
五、esp8266 工程概述5.1 程序入口:
[*]因为我喜欢用波特率74880来看信息打印,所以去掉了机智云的串口方式!注意我们要把 初始化灯珠的代码放在这里!基本如下了!
void ICACHE_FLASH_ATTR user_init(void){    uint32_t system_free_size = 0;    wifi_station_set_auto_connect(1); //设置自动连接    wifi_set_sleep_type(NONE_SLEEP_T);//不允许睡眠    espconn_tcp_set_max_con(10);    GIZWITS_LOG( "---------------SDK version:%s--------------\n", system_get_sdk_version());    WS2812_Init();    gizwitsInit();}
5.2 业务处理:
[*]其实整个业务处理是在 gizwits_product.c文件进行的!这里面的 gizwitsEventProcess()方法是处理从机智云 app下发的数据处理,这些数据定义都在服务器定义相约好的!有枚举、调色!
代码长注释又多扫码查看
原理图还有一个按键,我这里 的业务是 长按是 配网模式 ,短按是切换颜色,代码如下:代码长注释又多扫码查看
六、安卓工程概述此章节读懂更需要一定的安卓基础,您可以从机智云自动生成应用下载自动生成的安卓工程,当然了,也可以直接从我打开工程!
官网提供的那个自动生成的安卓工程的控制界面是简陋的,我们需要去修改下控制界面,达到我们的需求!
这个七彩控件的制作博文,请到我这个博文:http://club.gizwits.com/thread-8164-1-1.html
集成进去的流程需要安卓基础,如果不懂集成流程,可以留言问我!下面是集成好的截图!
其中 GosDeviceControlActivity.java是我们主控制代码。只要你学过安卓基础,这个非常容易上手!下面我只贴这个七彩控件下发的代码:
[*]mMSeekBarColorPicker.setGizwitLight(true);
[*]         //设置点击事件回调
[*]      mMSeekBarColorPicker.setSeekBarColorPickerChangeListener(new SeekBarColorPicker.SeekBarColorPickerChangeListener() {
[*]            @Override
[*]            public void onProgressChange(SeekBarColorPicker seekBarColorPicker, int color, String htmlColor) {
[*]                data_LED_R = Color.red(color);
[*]                data_LED_G = Color.green(color);
[*]                data_LED_B = Color.blue(color);
[*]                sendRgbCmd(KEY_LED_R, data_LED_R, KEY_LED_G, data_LED_G, KEY_LED_B, data_LED_B);
[*]            }
[*]      });

编译后,界面就这样了:当然,如果想让这个智能灯带实现Echo、Google Home等智能音箱控制,也是可以实现的。
实现放式参考:http://docs.gizwits.com/zh-cn/UserManual/echo.htmlhttp://docs.gizwits.com/zh-cn/UserManual/Google_Home_GoKit.html





文章由 物联网平台 机智云www.gizwits.com 整理发布





页: [1]
查看完整版本: 方案推荐:借助机智云物联网平台 用esp8266做一个商业化的...