MicroPython动手做(28)——物联网之Yeelight-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8183|回复: 39

MicroPython动手做(28)——物联网之Yeelight

[复制链接]
发表于 2020-6-4 15:17 | 显示全部楼层 |阅读模式
Yeelight
是全球领先的智能照明品牌,2014年加入小米智能家居生态链,在物联网、智能交互、工业设计和灯光体验等方面不断打磨,持续定义照明行业的最高标准。Yeelight拥有完整的智能家居照明产品线,产品系列辐射家装照明、台上照明、氛围照明以及智能照明控制,全球累计出货1100余万件,用户辐射100多个国家和地区,致力于通过高品质光环境的打造,让更多人享受到智能照明的便捷和乐趣。

00.png

 楼主| 发表于 2020-6-4 15:25 | 显示全部楼层
Yeelight发展历程

00-.png
 楼主| 发表于 2020-6-4 15:47 | 显示全部楼层
1、Yeelight智能照明设备
支持通过无线网络远程控制。当用户收到智能发光二极管设备第一次,他/她需要完成一个配置过程来向设备提供路由器的SSID和密码。这个过程通常被称为智能配置或快速连接。出于安全考虑,协议用于智能配置是专有的,这意味着没有第三方可以知道或使用它。但是,在设备连接到路由器后,它可以被下面的所有设备看到同样的网络,因此也可以由理解的第三方设备控制互操作控制协议。

Yeelight智能设备是通过云来控制的。该命令将被发送到云,然后转发到设备。如图所示,所有的无线指示灯都与云服务器保持联系。如果云服务器关闭或广域网出现问题,用户将失去对的控制设备。因此,我们认为本地控制是非常必要的,并开始在本地工作控制机制。本地控制可以进一步分为两部分:发现过程和控制程序。对于本地发现,我们使用了类似SSDP的协议,但它被大大简化了。

01.png
 楼主| 发表于 2020-6-4 15:49 | 显示全部楼层
2、Yeelight服务的发现过程


02.png
 楼主| 发表于 2020-6-4 16:02 | 显示全部楼层
3、快递刚送到的Yeelight灯泡
准备尝试用MicroPython来控制它

03.jpg
 楼主| 发表于 2020-6-4 16:28 | 显示全部楼层
Yeelight灯泡

03-.png
 楼主| 发表于 2020-6-4 16:33 | 显示全部楼层
基本参数

04.png
 楼主| 发表于 2020-6-4 16:49 | 显示全部楼层
4、使用A\B按键来开关Yeelight灯泡



[mw_shl_code=python,true]# MicroPython动手做(28)——物联网之Yeelight
#使用A\B按键来开关Yeelight灯泡

from mpython import *
import network
import time
from yeelight import *

my_wifi = wifi()

my_wifi.connectWiFi("zh", "zy1567")

def on_button_a_down(_):
    global i
    time.sleep_ms(10)
    if button_a.value() == 1: return
    rgb.fill((int(153), int(153), int(153)))
    rgb.write()
    time.sleep_ms(1)
    time.sleep_ms(500)
    LED.turn_on()
    time.sleep_ms(500)
    LED.set_rgb(255, 255, 255)

def on_button_b_down(_):
    global i
    time.sleep_ms(10)
    if button_b.value() == 1: return
    rgb.fill( (0, 0, 0) )
    rgb.write()
    time.sleep_ms(1)
    time.sleep_ms(500)
    LED.turn_off()

button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)

button_b.irq(trigger=Pin.IRQ_FALLING, handler=on_button_b_down)


rgb[1] = (int(51), int(51), int(255))
rgb.write()
time.sleep_ms(1)
if len(discover_bulbs()) > 0:
    LED = Bulb(discover_bulbs()[0]["ip"])[/mw_shl_code]
 楼主| 发表于 2020-6-4 17:43 | 显示全部楼层
实验场景


07.gif
 楼主| 发表于 2020-6-4 18:00 | 显示全部楼层
mPyehon X 实验图形编程

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

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-28 00:55 , Processed in 0.196069 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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