作品是基于涂鸦CBU模组的DIV幻彩灯,主控板使用Arduino UNO,手机APP使用涂鸦智能APP。
1、多种情景模式
2、定时关灯操作
3、本地音乐模式
4、颜色控制
https://github.com/nickzhuang0613/colour-led.git
硬件:altium designer 2015
软件:Visual Studio 2017 + Arduino IDE + Arduino IDE for Visual Studio
https://www.bilibili.com/video/BV1wU4y157B8/
a.打开涂鸦IOT页面【https://iot.tuya.com/】
b.点击“创建产品”
c.依次选择 “照明”、“幻彩灯带”创建产品
d.根据提示完成产品的方案选择和产品信息,然后点击"创建产品"
e. 进入产品开发页面,完成产品控制面板等开发,复制产品PID备用
查找灯珠资料,评估灯珠功耗和模组的功耗以及主控的电源系统驱动能力,确定方案的灯珠数目;以及产品整体表现形式。【我自己的:模组集成在灯板上,方便后期裁剪做成球泡灯】\
(1)制作PCB需要用到的封装【CBU模组和WS2812灯珠】
a.WS2812灯珠
b.CBU模组
(2)PCB设计
(3)外发打板
按照原理图购置需要的物料和主控板
(1)焊接,确保所有模块电源系统没有焊接出错
(2)通电,确保模块工作起来后主板电源系统稳定而且保证灯组通电也会稳定
根据原理图完成对板载LED的控制,以实现调试代码的时候作为指示。
class LED
{
public:
LED(uint8_t pin = 13);
~LED();
void led_on(void);
void led_off(void);
void led_toggle(void);
public:
bool led_status;
private:
uint8_t led_pin;
};
(1)安装“Adafruit_NeoPixel”库
(2)继承“Adafruit_NeoPixel”库,完成对WS2812灯珠的基本驱动
class WS2812 : public Adafruit_NeoPixel
{
public:
WS2812(uint16_t n, uint16_t pin = 6, neoPixelType type = NEO_GRB + NEO_KHZ800);
~WS2812();
void ws2812_fill(uint32_t color);
void ws2812_fill(uint32_t color, uint32_t interinterval);
void ws2812_fill(const uint32_t *color, uint16_t n);
void ws2812_fill(const uint32_t *color, uint16_t n, uint32_t interinterval);
void ws2812_rainbow();
void ws2812_data_ctl(const unsigned char value[], uint16_t length);
public:
private:
uint16_t ctl_pin;
uint16_t led_num;
};
(1)安装涂鸦的WIFI库“Tuya_WiFi_MCU_SDK”
(2)参考DataPointType实例,完成CBU模组的驱动
(3)涂鸦IOT生成App,借助Arduino串口完成CBU模组驱动的调试
综合所有模块,完成需要的功能
涂鸦模组MCU SDK进行开发比较简单,步骤也比较明晰。适合需要快速接入云实现产品落地的公司。