文档中心
机智云 文档中心
English
热搜词
APP
SDK
Android
ios
WIFI
Arduino Uno WiFi智能小夜灯
文档编辑

1. 前文需知

1.1 项目说明

智能灯作为一种最为常见的智能家居设备,在市场前景以及低门槛的驱动下,该产品已经成为开发者已经众多厂家青睐的大众化产品。你可以使用手机控制灯光开启或关闭、调节亮度及颜色甚至与音响系统同步闪烁,这种体验听上去就很有趣。

本作品希望通过将使用Arduino Uno WiFi板结合GoKit2上的功能板,配合WS2812 8段RGB灯珠板子,使用机智云云端服务器,改造成可用手机来控制的无线wifi小彩灯,还原这个受大众欢迎的炫彩智能灯神秘的本质。

1.2 彩灯功能说明

  • 开关
  • 多种模式自由切换,这些模式包括:自定义、呼吸灯、霹雳游侠、极光、温馨

附注:本例只实现彩灯的一些常用功能,更多的自定义和应用场景,用户可根据自己 的需求自定义完成

1.3 项目所使用的硬件清单

Arduino Uno WiFi 1片
GoKit2 扩展版 1片
8位 WS2812 5050 RGB LED 小板 1个
杜邦线若干

1.4 项目所用的开发环境

Arduino IDE(1.7.10以上版本)

1.5 项目所使用的源码

WS2812 5050 RGB LED Arduino 库文件
机智云云端自动生成源码(基于ArduinoUnoWiFi 平台)

1.6 其他

机智云开发者账号
智能小夜灯的数据点文件或者自己云端新建

2.项目制作

2.1 硬件部分

使用烙铁将杜邦线,按照下图把WS2812 RGB小灯板的接线线焊接起来。

Alt text

然后把小灯板的VCC、GND、DIN引脚分别按照下图图片所展示的效果图,将杜邦线的另一端接到GoKit2拓展版的扩展接口排针上。

  • DIN -> D9

Alt text

2.2 云端部分

2.2.1 注册GizWits账号

登陆 http://dev.gizwits.com/zh-cn/developer/ 进行注册账号

2.2.2 新建一个名为“智能小夜灯”的产品

新建产品方式参加以下链接图示部分:新建产品教程

Alt text

2.2.3 云端数据点

本次项目一共5个数据点,细节可以参考下图:

Alt text

新建项目的数据点可以通过两种方式来完成,一种是手动新建,新建方式可以点击下图右上角的“定义数据点教程”查看并建立本次项目的数据点;另一种是通过别人导出的数据点Excel表格完成数据点的新建,导入方式参考下图,这里不做重点描述,这次项目的数据点Excel表格通过下方链接获取。

Alt text

本次项目数据点Excel表格下载链接:
下载地址 ====> 点击下载

手动添加数据点参考一下链接:手动添加数据点教程
Alt text

注意:数据点环节很重要,如果没有数据点,则无法使用自动生成工具。

2.2.4 使用云端自动生成工具,生成项目源码

云端自动生成工具的详细介绍和使用方式,请参考“ArduinoUNOWiFi接入机智云介绍”文档的介绍和操作。

到这里整个工程项目的准备工作就完成了,下面是修改函数部分的指引。

2.3 获取源码

2.3.1 下载云端自动生成源码

ArduinoUNOWiFi 云端自动生成源码,创建之后在项目如图所示的地方获得,下载下来后跟据自己的习惯修改文件夹的名字,本次项目将文件修改为“GizLamp”

Alt text

2.3.2 下载WS2812驱动库文件

库文件链接:https://github.com/adafruit/Adafruit_NeoPixel
本次项目所需要的文件如下

Alt text

2.3.3 Arduino IDE安装

请参考“Arduino Uno WiFi接入机智云介绍”文档中,第“3.1 Arduino IDE的下载和安装”章节

2.3.4 工程文件和Libraries文件导入到

请参考“ArduinoUNOWiFi接入机智云介绍”文档中,第“3.2 自动生成接入库导入Arduino IDE”章节

2.4 修改源码

2.4.1 程序预览

首先,我们使用Arduino IDE打开云端自动生成工具生成的simpleTry.ino文件,并预览一下,如下图:

Alt text

然后,我们参见“ArduinoUnoWiFi SDK之API介绍”文档里的对“事件处理”这一部分的描述以及举例部分程序结构:

Alt text

之后,在继续看一下myGizwits.hasBeenSet()myGizwits.read(,)这两条函数的解析:

Alt text

Alt text

通过对比的我们应该了解到这套程序的思路是,如果需要在这套程序中读取一个云端下发的数据,首先需要通过myGizwits.hasBeenSet()这条函数判断这个数据点事件有是否发生,如果数据点事件发生了就通过myGizwits.read(,)这个函数去把发生的事件所产生的数据读取出来,然后再做相应的判断。

注意:read(,)在“ArduinoUnoWiFi SDK之API介绍”一共有四条,读取不同是据点事 件时,返回值的参数会有差异,使用之前参考“ArduinoUnoWiFi SDK之API介绍”文 档

应该大体有个理解啦吧!其实你会发现所有你要操作的事件都完成好了!!好,那我们开始修改程序,首先从“2.4.2引用部分开始”

2.4.2 引用部分

1)添加WS2812驱动H文件

#include <Adafruit_NeoPixel.h>
Alt text

2)定义WS2812的数据通信引脚,以及RGB灯数量。
#define PIN 9 //使用arduino uno wifi的9号引脚
#define NUM_LEDS 8 //WS2812小板的数量是8个
Alt text

3)初始化LED数量、通信引脚号和驱动模式

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
Alt text

1)该函数中NUM_LEDS,表示控制的点亮多少个全彩灯珠,如果你想改变灯珠点亮的个数你可以 在 这里进行修改。
2)PIN表示的是与开发板所连的第几个端口,我们这里使用的是第9个端口,你可根 据自己的需要 修改对应的端口。
3)关于NEO_GRB+NEO_KHZ800,这包括了与开发板所连的具体类型。具体的介绍可以参考文本最 后 Adafruit_NeoPixel库文件的解析,以及根据指导完成更多的案例。

引用部分完整修改参考如下

Alt text

接着修改“2.4.3 void setup(){}部分”

2.4.3 void setup(){}部分

将以下代码添加到“void setup(){}”函数里面用于初始化

strip.begin();
strip.show();// Initialize all pixels to ‘off’
Alt text

最后修改“2.4.4 void loop(){}部分”

2.4.4 void loop(){}部分

这一部份我们刚才已经熟悉过啦,那直接修改吧。首先,把所有自动生成工具,所定义的变量全部找出来,如下:
Alt text

注:红色部分是从绿色部分复制出来的,绿色部分是自动工具自动生成的。
然后,移动操作事件,如下:
Alt text

完成以上动作之后,只要在//user add这部分添加相应的驱动函数,就可以完成一个简单的彩灯,不过程序需要优化,才能有比较友好的用户体验。
需要注意地方是:

彩灯场景切换事件(EVENT_SCENE)
以及用户自定义事件(EVENT_RLAMP||EVENT_GLAMP||EVENT_BLAMP),均使用以下函数 读取云端下发的数值;只不过场景切换事件在云端创建的数据点类型是枚举型,使用 以下函数读取云端下的数值时,该函数返回的值为:0,1,2,3,4;而在用户自定义事件 下实用函数,返回的值为:0~255
Alt text

2.5 编译烧录

请参考“ArduinoUNOWiFi接入机智云介绍”文档中,第“3.3.2上传simpleTry.ino(数据点示例)”章节

  • 注意:这里的案例修改是彩灯部分程序,不包含配置wifi入网环节,产品联网需要先更新“networkconfig.ino(配置网络示例)”工程到ArduinoUNOWiFi板子上,进行配网,然后在更新本次的工程文件“simpleTry.ino(数据点示例)”产品才能正常连接路由器登陆云端。更新“networkconfig.ino(配置网络示例)”工程请参考“ArduinoUNOWiFi接入机智云介绍”文档中,第“3.3.1上传networkconfig.ino(配置网络示例)”章节

3.项目调试

3.1 下载Demo App

前往机智云下载中心,根据下图提示实用手机扫描下载调试产品的Demo App,调试产品体验产品。

Alt text

3.2 产品体验

使用Demo App局域网内发现,并绑定彩灯之后,App的操作界面,一个完整的彩灯制作就完成了。
Alt text

注意:
局域网发现为:ArduinoUnoWiFi板子和Demo App处于同一个WiFi热点下,Demo App才会发现这个设备,否则无法发现,从而无法就使用Demo App去绑定和操作这个设备。举个例子,ArduinoUnoWiFi板子被配置了链接到名字为“Gizwits”这个WiFi热点(确定已连接,并要确定Gizwits这个热点是可以链接外网),那么使用Demo App的那部手机也需要链接到名为“Gizwits”这个热点下,否则就无法发现设备。

  • 产品制作完成

最后附上本次项目的源码下载链接如下:
下载地址 ====> 点击下载

4.相关支持

  • 1)相关支持

如果您是开发者

注册机智云开发者平台,即可免费体验相关开发工具

开发者平台:site.gizwits.com

Gokit在线申请:www.gizwits.com/zh-cn/gokit

  • 2)如果您是团队

GizWits针对团体有很多支持计划,您可以和GizWtis联系,快速得到技术支持

联系邮箱:service@gizwits.com

联系电话:020-6224-0080

官方二维码:

Alt text