【雕爷学编程】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发展历程


1、Yeelight智能照明设备

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

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

2、Yeelight服务的发现过程

3、快递刚送到的Yeelight灯泡

准备尝试用MicroPython来控制它

Yeelight灯泡


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

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

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

python 复制代码
# 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"])

实验场景

mPyehon X 实验图形编程

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

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

#AB键控制Yeelight灯泡升级版

python 复制代码
# 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灯泡升级版(绿色光)


![在这里插入图片描述](https://img-blog.csdnimg.cn/1138f83117ee482f80de663c256bd67c.gif#pic_center

mPyehon X 实验图形编程

相关推荐
尘浮7288 分钟前
60天python训练计划----day45
开发语言·python
TDengine (老段)16 分钟前
TDengine 支持的平台汇总
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
哆啦A梦的口袋呀19 分钟前
基于Python学习《Head First设计模式》第六章 命令模式
python·学习·设计模式
努力搬砖的咸鱼22 分钟前
从零开始搭建 Pytest 测试框架(Python 3.8 + PyCharm 版)
python·pycharm·pytest
Calvex24 分钟前
PyCharm集成Conda环境
python·pycharm·conda
一千柯橘36 分钟前
python 项目搭建(类比 node 来学习)
python
sduwcgg41 分钟前
python的numpy的MKL加速
开发语言·python·numpy
大模型真好玩42 分钟前
可视化神器WandB,大模型训练的必备工具!
人工智能·python·mcp
东方佑44 分钟前
使用 Python 自动化 Word 文档样式复制与内容生成
python·自动化·word
钢铁男儿1 小时前
Python 接口:从协议到抽象基 类(定义并使用一个抽象基类)
开发语言·python