0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何从Arduino控制飞利浦Hue灯

454398 来源:网络整理 作者:网络整理 2019-12-03 08:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

飞利浦Hue灯的范围肯定不便宜(有一些替代品),但是我真正欣赏的一件事是,用于编写自己的Hue应用程序的有据可查的API。今天,我将向您展示如何通过Arduino控制色相灯,然后添加一个简单的运动传感器

我们为什么要这样做?因为家庭自动化系统可能相当僵化且昂贵。通过学习如何从Arduino控制色相,您可以打开各种定制的家庭自动化项目的大门,这些项目根本无法被现成的组件所击败。如果不是一起乱搞,请尝试使用这8个出色的Hue应用程序。

Hue系统

让我们稍微了解一下技术,以便您了解基础系统正在合作。顺化灯光使用称为ZigBee的短程无线协议来创建amesh网络-具体来说,它们已通过ZigBee Light Link认证,这意味着其他ZLL产品也应与顺化一起使用(理论上)。

尽管在技术上很短在ZigBee的范围内,ZigBee的网状网络功能意味着每个新灯泡都会扩展网络,并将消息中继到其他灯泡。这意味着,如果您在控制房子另一侧的照明时遇到麻烦,请尝试在两者之间放置另一个照明。

Zigbee是一个很好的协议,但是与Wi-Fi完全不同或有线计算机网络,因此我们需要飞利浦色相桥将两者结合在一起。色相桥运行一个经过修改的开放源代码Linux固件,该固件广播了基本的Web服务器。

《图id =“ attachment_463163” aria- describeby =“ caption-attachment-463163” class =“ wp-caption aligncenter”》

如何从Arduino控制飞利浦Hue灯

如果您仅将Hue桥接器的IP地址输入浏览器,就会看到此信息。但是,您不能从这里做很多事情。

通过与本地Web服务器进行交互,您可以找出照明灯的当前状态并对其进行控制。/p》

这是一个非常简单的系统,已经可以用于DIY项目。

开始

对于飞利浦使这件事变得易于黑客攻击表示敬意。在访问API文档之前,您需要注册为开发人员。它是免费的,但您需要接受条款和条件。立即执行此操作。

任何熟悉标准Web服务或Javascript的人都应该可以使用Hue:所有数据都以JSON数据包的形式发送和接收。

看看这个实际上,您需要知道Hue网桥的IP地址。有几种方法可以做到这一点:

在路由器的管理界面中查看DHCP地址分配表

运行诸如IP Scanner Home之类的网络映射程序

尝试使用飞利浦UPnP代理工具

Ping“ philips-hue.home”

何时完成后,继续并将其输入到浏览器地址栏中,并在URL后面附加 debug/clip.html 。就我而言,这是:

http://192.168.1.216/debug/clip.html

这是一个调试工具,可让您通过简单的网络界面发送和接收JSON数据包。第一步是在Hue Bridge本身上启用开发人员配置文件-出于安全原因,默认情况下将其禁用。将以下内容粘贴到BODY字段中,将URL保留为/api/,然后通过单击 post按钮发送POST请求:

{“devicetype”:“test user”,“username”:“newdeveloper”}

首次执行此操作时,您会在响应中的某处看到“未按下链接按钮”。这是一项安全功能,要求您使用的每个新应用程序都经过物理授权。去找到您的网桥,按一下按钮,然后在30秒内再次发送相同的请求。这次您将获得不同的响应,并且该用户将得到授权。如果您想使用其他用户名,请阅读有关创建用户的API文档。到目前为止,就足够了。

设置用户后,您应该与之互动的基本URL就会变为/api/newdeveloper/。您可以发送GETrequest来查找Bridge当前知道的有关连续的灯光,警报,场景以及已使用的应用程序简短日志的所有信息。这是单个灯泡包含的一些状态信息的示例。

“state”: {

“on”: true,

“bri”: 254,

“hue”: 14910,

“sat”: 144,

“effect”: “none”,

“xy”: [

0.4596,

0.4105

],

“ct”: 369,

“alert”: “none”,

“colormode”: “ct”,

“reachable”: false

},

“type”: “Extended color light”,

“name”: “Bedroom 1”,

“modelid”: “LCT001”,

请注意,“ on”:true 状态不会实际告诉您灯泡是否打开;仅根据网桥设置,应该 处于启用状态。 “ reachable”:false 可以指示灯泡太远,或者只是在电源开关处关闭了灯泡。

将其集成到Arduino中的最后一个示例:确保其中一个灯可见且亮着,并且知道它是哪个数字。将URL更改为/api/newdevelopers/lights/1/state (将数字更改为light),然后发送包含以下数据的PUT请求:

{“hue”: 50100,“sat”:255,“bri”:255}

您应该看到灯的反应如下:

您要做的是将新状态推入灯泡。您还可以添加“过渡时间”,这是一种原始的动画方法,指示您希望状态更改花费多少秒。

颜色可以通过多种方式设置,但不幸的是没有简单的方法来发送RGB值。在上面的示例中,我们发送了色调,饱和度和 bri ghtness。尝试更改色相值并再次发送PUT请求。

从Arduino工作

有一个名为ArduinoHue的现有Hue/Arduino库,Philips本身在API文档中已链接到该库。该库的问题在于它通过USB连接与您的PC通信,这也需要不断运行Python应用程序。 Eugh 。到那时,您还可以让计算机运行整个过程,然后完全切掉Arduino。

我将向您展示如何使用以太网屏蔽从Arduino 控制色相。 。您的Arduino无需连接到计算机,因此它可以在您可以插入以太网电缆的任何地方独立运行。实际上,它也可以与Wi-Fi防护罩一起使用,但我没有一个可以玩的。

如果您想跳过前面,完整的示例代码嵌入在下面,或在此处提供。我改编自Gilson Oguime发布的示例。如果您以前从未玩过以太网屏蔽,则可能希望快速浏览一下Web客户端教程-我假设对此有所了解,并且不会涉及用于建立网络的代码IP等。我们还向您展示了如何使用以太网屏蔽创建一个小型Web服务器。

创建状态更改

创建新状态以推送到灯泡创建新的 String 变量并转义所有双引号的简单情况。我还在其中添加了 random()函数,以创建具有一定动态性的动画。尝试对不同的颜色也随机设置hue变量。

String command = “{”on“:true,”hue“:50100,”sat“:255,”bri“:255,”transitiontime“:”+String(random(15,25))+“}”; 发送命令

要实际发送命令,您需要使用一个名为setHue( ),它以灯号和命令字符串作为参数,例如:

setHue(1,command);

然后,它所做的就是将其连接到网桥,将命令作为PUT请求以及创建HTTP请求涉及的所有其他废话。

client.print(“PUT /api/”);

client.print(hueUsername);

client.print(“/lights/”);

client.print(lightNum);

client.println(“/state HTTP/1.1”);

client.println(“keep-alive”);

client.print(“Host: ”);

client.println(hueHubIP);

client.print(“Content-Length: ”);

client.println(command.length());

client.println(“Content-Type: text/plain;charset=UTF-8”);

client.println(); // blank line before body

client.println(command); // Hue command

添加运动传感器

最后,我连接了一个简单的HC -SR501运动传感器到数字I/Opin2。检测到运动时,将一系列状态推入2个灯泡的桥以创建缓慢的动态动画。当运动传感器停用时,将向两个发送单个关闭命令。理想情况下,它们会恢复为在检测到运动之前所处的状态,但是逻辑并不是那么聪明-我们只是打开和关闭它们。

限制

尽管公认的未优化代码,但Arduino的网络接口几乎要花一秒钟的时间发送单个命令请求。我在Mac上使用相同的以太网连接测试了相同的命令,它的速度是它的十到二十倍(如果要测试,这里是AppleScript)。因此,Arduino无法实现任何类型的快速动画(我试图创建闪烁的烛光效果)。对于大多数项目而言,这对高速光照动画而言应该不是问题,但要意识到这一限制是件好事。

要完全解析从网桥返回的任何JSON响应也很困难; Arduino上没有足够的RAM来存储所有原始数据。因此,您可能主要希望限制发送。

控制色相

现在,您已经掌握了如何完全独立地控制色相的知识,它将打开顺化家庭自动化黑客世界。真正的问题是:你会做什么?
责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 飞利浦
    +关注

    关注

    8

    文章

    560

    浏览量

    59548
  • Arduino
    +关注

    关注

    190

    文章

    6527

    浏览量

    197446
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ESP32 Wi-Fi 控制 LED 的原理

    LED的——底层硬件连接,到网络通信逻辑,一步步拆解整个过程。一、系统概览ESP32是一颗集成度极高的芯片,内置Wi-Fi、蓝牙、双核MCU和丰富的外设接
    的头像 发表于 01-09 19:04 571次阅读
    ESP32 Wi-Fi <b class='flag-5'>控制</b> LED <b class='flag-5'>灯</b>的原理

    探索用于Arduino的TLE94112ES直流电机控制盾牌

    探索用于Arduino的TLE94112ES直流电机控制盾牌 引言 在电子工程领域,电机控制一直是至关重要的部分。对于Arduino开发者而言,一款功能强大且易于使用的电机
    的头像 发表于 12-18 16:35 492次阅读

    拆解:30W 2800转速 飞利浦筋膜枪

    本次拆解的飞利浦便携式筋膜枪PPM3203G的电驱电控系统
    的头像 发表于 12-15 11:41 5642次阅读
    拆解:30W 2800转速 <b class='flag-5'>飞利浦</b>筋膜枪

    LED触摸控制PCBA方案开发 | 控触摸方案开发

    单键LED触摸控制PCBA方案开发控触摸方案开发PCBA方案控方案支持定制寻找灵活、可靠的LED灯光控制解决方案?我们的单键LED触摸控制
    的头像 发表于 12-10 17:43 527次阅读
    LED触摸<b class='flag-5'>控制</b>PCBA方案开发 | <b class='flag-5'>灯</b>控触摸方案开发

    Arduino plc和termux esp

    Arduino plc和termux esp
    的头像 发表于 12-06 06:41 2024次阅读

    飞利浦D8714收录机说明书

    飞利浦D8714收录机说明书飞利浦早期生产的高档收录机使用说明书,内附详尽的结构图与电路图,以及调试参数等,可供收藏此种收录机爱好者参考。
    发表于 12-02 16:31 12次下载

    Arduino UNO Q 登陆 DigiKey,现已开放预订

    融合高性能微处理器与专用微控制器,Arduino UNO Q加强创新开发能力 美国, 明尼苏达, 锡夫里弗福尔斯市 - 2025 年 10 月 07 日 全球领先的电子元器件与自动化产品分销商
    的头像 发表于 10-13 14:55 718次阅读
    <b class='flag-5'>Arduino</b> UNO Q 登陆 DigiKey,现已开放预订

    如何在 NuMaker-IoT-M467 板上使用 Arduino IDE 控制 Wi-Fi 模块?

    在NuMaker开发板上,有一个ESP-12F Wi-Fi模块;但是,Arduino IDE 中的 NuMaker UNO 包不提供该模块的相关控制。如果您希望在 Arduino IDE 中
    发表于 09-04 08:28

    1个APP控制千盏?拆解睿泽物联单控制器的智能奥秘

    睿泽物联的单控制器,不仅是一台设备,更是城市照明的智能化入口。1个APP控制千盏,看似简单,背后却是物联网、大数据、节能技术的深度整合。如果你正在寻找高效、节能、智能的路灯管理方案
    的头像 发表于 08-27 19:25 1436次阅读
    1个APP<b class='flag-5'>控制</b>千盏<b class='flag-5'>灯</b>?拆解睿泽物联单<b class='flag-5'>灯</b><b class='flag-5'>控制</b>器的智能奥秘

    汽车氛围 PCBA 方案开发:技术底层解析车载光效的核心逻辑

    控制系统。​ 一、车规级芯片选型的底层逻辑​ 车载电子与消费电子的核心差异,在于对极端环境的适应性。在氛围 PCBA 方案中,主控芯片的选择需要兼顾运算能力、功耗控制和环境耐受性三大指标。​ NXP S32K344 之所以成为
    的头像 发表于 07-29 16:31 918次阅读

    高校课堂数智化:飞利浦商显为云师大打造智慧教学中枢

    打破教学边界,升级课堂交互逻辑,让高校教育单向传授跃迁至人机协同的智慧新范式。全景赋能1+6>7的智慧教学中枢飞利浦商显为云南师范大学量身打造了"1+6"多屏互动
    的头像 发表于 07-28 11:12 1071次阅读
    高校课堂数智化:<b class='flag-5'>飞利浦</b>商显为云师大打造智慧教学中枢

    Arduino与LabVIEW联合编程指南

    Arduino编程并与LabVIEW上位机结合实现设备的远程控制与数据采集。
    发表于 06-19 15:54 3次下载

    智慧路灯核心大脑——路灯单控制器-无线单调光控制

    智慧路灯核心大脑——路灯单控制器-无线单调光控制
    的头像 发表于 05-27 09:52 1323次阅读
    智慧路灯核心大脑——路灯单<b class='flag-5'>灯</b><b class='flag-5'>控制</b>器-无线单<b class='flag-5'>灯</b>调光<b class='flag-5'>控制</b>器

    免费分享Arduino入门+进阶(全套例程+书籍)

    创意,比如控制灯光、传感器、电机等。以下是Arduino入门+进阶学习资料1.Arduino编程语言说明(相关文件可在下文扫码领取)2.Arduino系列学习例程
    的头像 发表于 05-22 11:40 1320次阅读
    免费分享<b class='flag-5'>Arduino</b>入门+进阶(全套例程+书籍)

    《ESP32S3 Arduino开发指南》第二章 Arduino基础知识

    的由来2.3 Arduino的优势2.4 Arduino语言2.5 Arduino程序结构 2.1 什么是Arduino Arduino
    发表于 05-13 09:28