【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight

知识点:什么是掌控板?
掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED显示屏、RGB灯、加速度计、麦克风、光线传感器、蜂鸣器、按键开关、触摸开关、金手指外部拓展接口,支持图形化及MicroPython代码编程,可实现智能机器人、创客智造作品等智能控制类应用。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、物联网(Internet of Things,缩写:IoT)

是基于互联网、传统电信网等信息承载体,让所有能行使独立功能的普通物体实现互联互通的网络。其应用领域主要包括运输和物流、工业制造、健康医疗、智能环境(家庭、办公、工厂)等,具有十分广阔的市场前景。

物联网的概念最早是在1999年由Kevin Ashton在一次演讲中提出来的,当时他是一个RFID研究机构的执行主任,这家研究机构是在宝洁公司和吉列公司的赞助下成立的。而他本人也因此被称为物联网之父。随后麻省理工学院的Neil Gershenfeld教授出版了一本名为《When things Start to Think》的书。以这些为标志,正式揭开了物联网的序幕。

物联网的英文是Internet of Things,缩写为IoT。这里的“物”指的是我身边一切能与网络联通的物品。例如你带的手表、你骑的共享单车、马路上的汽车、家里的冰箱、路边的路灯、甚至是一棵树。只要一件物品能够与网络相连,它就都是物联网中的“物”。而所谓物联网,就是“物”与人,以及“物”与“物”之间,通过网络来传递和处理信息。

在这里插入图片描述

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

在这里插入图片描述

Yeelight发展历程

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight_第1张图片
1、Yeelight智能照明设备
支持通过无线网络远程控制。当用户收到智能发光二极管设备第一次,他/她需要完成一个配置过程来向设备提供路由器的SSID和密码。这个过程通常被称为智能配置或快速连接。出于安全考虑,协议用于智能配置是专有的,这意味着没有第三方可以知道或使用它。但是,在设备连接到路由器后,它可以被下面的所有设备看到同样的网络,因此也可以由理解的第三方设备控制互操作控制协议。

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

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight_第2张图片

2、Yeelight服务的发现过程

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight_第3张图片

3、快递刚送到的Yeelight灯泡
准备尝试用MicroPython来控制它

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight_第4张图片

Yeelight灯泡

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight_第5张图片
【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight_第6张图片

4、使用A\B按键来开关Yeelight灯泡

#MicroPython动手做(28)——物联网之Yeelight
#使用A\B按键来开关Yeelight灯泡

# 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"])

实验场景
【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight_第7张图片
【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight_第8张图片

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight_第9张图片

mPyehon X 实验图形编程

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight_第10张图片

5、AB键控制Yeelight灯泡升级版(绿色光)

#MicroPython动手做(28)——物联网之Yeelight
#AB键控制Yeelight灯泡升级版

# MicroPython动手做(28)——物联网之Yeelight
#AB键控制Yeelight灯泡升级版

from mpython import *
import network
import music
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
    music.play('F4:1')
    time.sleep_ms(500)
    LED.turn_on()
    time.sleep_ms(500)
    LED.set_rgb(153, 255, 153)
    rgb.fill((int(0), int(102), int(0)))
    rgb.write()
    time.sleep_ms(1)
    oled.fill(0)
    oled.DispChar("打开电灯", 43, 22, 1)
    oled.show()

def on_button_b_down(_):
    global i
    time.sleep_ms(10)
    if button_b.value() == 1: return
    music.play('D4:1')
    time.sleep_ms(500)
    LED.turn_off()
    rgb.fill( (0, 0, 0) )
    rgb.write()
    time.sleep_ms(1)
    oled.fill(0)
    oled.DispChar("关闭电灯", 43, 22, 1)
    oled.show()

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

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


music.play('A4:1')
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"])

AB键控制Yeelight灯泡升级版(绿色光)

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight_第11张图片
【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight_第12张图片
![在这里插入图片描述](https://img-blog.csdnimg.cn/1138f83117ee482f80de663c256bd67c.gif#pic_center
mPyehon X 实验图形编程

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight_第13张图片

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight_第14张图片

你可能感兴趣的:(MicroPython动手做,物联网,嵌入式硬件,单片机,python,Yeelight智能灯)