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

知识点:什么是掌控板?
掌控板是一块普及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多个国家和地区,致力于通过高品质光环境的打造,让更多人享受到智能照明的便捷和乐趣。

在这里插入图片描述

6、自动变色循环流光灯

#MicroPython动手做(28)——物联网之Yeelight
#自动变色循环流光灯

# MicroPython动手做(28)——物联网之Yeelight
#自动变色循环流光灯from mpython import *
import network
import time
from yeelight import *my_wifi = wifi()my_wifi.connectWiFi("zh", "zy1567")rgb[1] = (int(0), int(102), int(0))
rgb.write()
time.sleep_ms(1)
while True:if len(discover_bulbs()) > 0:D = Bulb(discover_bulbs()[0]["ip"])time.sleep_ms(500)D.turn_on()time.sleep_ms(500)D.set_rgb(32, 178, 170)for i in range(10, 101, 5):time.sleep_ms(500)D.set_brightness(i)time.sleep_ms(500)D.set_hsv(359, i)time.sleep_ms(500)D.turn_off()

mPyehon X 实验图形编程

在这里插入图片描述

自动变色循环流光灯

在这里插入图片描述

7、局域网控制

Yeelight 支持Google Assistant 和 Amazon Alexa 智能语音控制。还支持国内少有支持的IFTTT。它可以社交媒体、智能硬件等各类网络服务更好的联动。后续我们会讲解IFTTT的有关应用。 除此外,Yeelight还针对技术爱好者推出,第三方控制协议,可实现局域网内的个性化的控制。本文讲解的掌控板控制Yeelight智能照明设备就是用到该协议。

Yeelight第三方控制协议:https://www.yeelight.com/download/Yeelight_Inter-Operation_Spec.pdf

Yeelight 拥有完整的智能家居照明产品线,产品系列辐射家居照明系列、台上照明系列、氛围照明系列以及智能控制系列。集前沿技术和至美设计于一体是Yeelight一贯的追求。 AI技术、BLE MESH技术、全屋智能照明技术均旗下产品进行广泛应用,全线WiFi产品支持智能语音控制,灯光变化,尽在言语之间。

掌控板提供 yeelight 驱动库,该库可在 awesome-mpython/libary/yeelight 获取。里面有更详细的 yeelight 模块的API说明。 yeelight.py 下载至掌控板的文件系统。掌控板连接到Yeelight相同的局域网内。

8、MicroPython编程

(1)发现灯泡

掌控板和Yeelight灯泡在同局域网内后,我们要控制灯泡,首先需要知道该灯泡的IP地址,我们可以使用 discover_bulbs() 函数:

from mpython import *                   # 导入mpython模块
from yeelight import *                  # 导入yeelight模块my_wifi = wifi()                        # 连接到与YeeLight相同的局域网内
my_wifi.connectWiFi("ssid","password")discover_bulbs()                        # 发现局域网内YeeLight的设备信息

网内的Yeelight灯泡响应并返回包含bulbs属性的字典:

>>> discover_bulbs()
[{'ip': '192.168.0.8', 'capabilities': {'rgb': '16711680', 'bright': '100', 'support': 'get_prop set_default set_power toggle set_bright start_cf stop_cf set_scene cron_add cron_get cron_del set_ct_abx set_rgb set_hsv set_adjust adjust_bright adjust_ct adjust_color set_music set', 'sat': '100', 'power': 'off', 'id': '0x0000000007e7544d', 'name': '', 'fw_ver': '26', 'color_mode': '2', 'hue': '359', 'ct': '3500', 'model': 'color'}, 'port': '55443'}]

discover_bulbs() 函数,可获取网内Yeelight设备的属性。从上述返回的来看,该灯泡的IP地址为 192.168.0.8 。

(2)开关控制

知道IP地址后,我们构建 Bulb 对象,对灯泡开关控制:

bulb=Bulb("192.168.0.8")    # 构建对象
bulb.turn_on()              # 开灯指令
bulb.turn_off()             # 关灯指令

除了 turn_on() 、turn_off() 还可使用 toggle() 反转状态。

(3)亮度调节

bulb.set_brightness(100)
set_brightness(brightness) , brightness 参数为亮度值,可调范围0~100 。

(4)设置颜色

bulb.set_rgb(255,0,0) # 通过RGB设置灯泡颜色
bulb.set_hsv(180,100) # 通过HSV设置灯泡颜色
bulb.set_color_temp(1700) # 设置灯泡色温
yeelight 模块提供 set_rgb(red, green, blue) 和 set_hsv(hue, saturation) 两个函数。“RGB” 和"HSV" 两种颜色模型来设置灯泡灯光颜色。RGB颜色模型比较常用,相信大家并不陌生。通过对红®、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色。 HSV(Hue Saturation Value)颜色模型:hue 色调,用角度度量,取值范围为0~359,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。saturation 饱和度,表示颜色接近光谱色的程度。颜色的饱和度也就愈高。饱和度高,颜色则深而艳。范围0~100。 Value亮度参数,未提供支持。只需设置 hue 、saturation 参数即可。在做些彩虹效果,颜色过渡时,HSV更为自然。

还可以使用 set_color_temp(degrees) 函数设置灯泡色温, degrees 色温参数,范围1700~6500。

在这里插入图片描述
注意

Yeelight, 目前WiFi智能设备最多支持4个同时TCP连接。超过的连接尝试将被拒绝。对于每个连接,都有一个命令消息配额限制, 也就是每分钟60个指令。所有LAN也有一个总配额限制,144。

Yeelight 智能灯

1)yeelight.discover_bulbs(timeout=2)

描述: 发现所有局域网内的Yeelight灯泡

返回值: 字典列表,包含网络中每个灯泡的IP,端口和功能

参数:

timeout (int) - 等待回复需要多少秒。发现将总是要花这么长的时间, 因为它不知道当所有的灯泡都响应完毕时

2class yeelight.Bulb(ip, port=55443, effect=’smooth’, duration=300, auto_on=False)

描述: YeeLight的控制类

参数:

ip (str) - 灯泡的IP

port (int) - 连接灯泡的端口号,默认55443

effect (str) - 效果类型.”smooth” or “sudden”

duration (int) - 效果的持续时间,以毫秒为单位.最小值为30.突然效果会忽略此值

auto_on (bool) - 是否 ensure_on() 在每次操作之前调用以自动打开灯泡,如果它已关闭。这会在每条消息之前更新灯泡的属性, 每个命令会花费一个额外的消息。 如果您担心速率限制,请将其关闭并自行检查。get_properties() 或运行 ensure_on()

3)Bulb.turn_on()

描述: 打开灯泡

4)Bulb.turn_off()

描述: 关闭灯泡

5)Bulb.toggle()

描述: 反转灯泡状态

6)Bulb.set_rgb(red, green, blue)

描述: 设置灯泡的 RGB 值

参数:

red (int) - 红色范围 (0-255)

green (int) - 绿色范围 (0-255)

blue (int) - 蓝色范围 (0-255)

7)Bulb.set_hsv(hue, saturation)

描述: 设置灯泡的 HSV 值

参数:

hue (int) - 色调(0-359)

saturation (int) - 饱和度(0-100)

8)Bulb.set_color_temp(degrees)

描述: 设置灯泡色温

参数:

degrees (int) - 色温范围(1700-6500)

9)Bulb.set_brightness(brightness)

描述: YeeLight的控制类

参数:

brightness (int) - 亮度范围 (1-100)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/23765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库与数据仓库的区别及关系

数据库与数据仓库的区别及关系 数据库数据仓库异同差异联系例子 数据库 数据库是结构化信息或数据的有序集合,一般以电子形式存储在计算机系统中。通常由数据库管理系统 (DBMS) 来控制。它是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集…

任务 13、MidJourney种子激发极致创作,绘制震撼连贯画作

13.1 任务概述 通过本次实验任务,学员将深入了解Midjourney种子的概念和重要性,以及种子对生成图像的影响。他们将学会在Midjourney平台中设置种子值并调整其参数,以达到所需的效果。此外,任务还详细介绍了Midjourney V4.0版本中…

openSUSE安装虚拟化 qemu kvm

1) 第一种:图形界面yast安装虚拟化 左下角开始菜单搜索yast 点一下就能安装,是不是很简单呢 2)第二种: 命令行安装 网上关于openSUSE安装qemu kvm的教程比较少,可以搜索centos7 安装qemu kvm的教程,然后…

ZAFUACM - 23.8.5个人赛补题

文章目录 A - Lucky Conversion题意思路代码 B - Constanzes Machine题意思路代码 C - Maximum Median题意思路代码 D - Remove Extra One题意思路代码 E - A Determined Cleanup题意思路代码 F - Minimal k-covering A - Lucky Conversion 原题链接 题意 给出两个只包含“4…

vue-baidu-map-3x 使用记录

在 Vue3 TypeScript 项目中,为了采用 标签组件 的方式,使用百度地图组件,冲浪发现了一个开源库 ovo,很方便!喜欢的朋友记得帮 原作者 点下 star ~ vue-baidu-map-3xbaidu-map的vue3/vue2版本(支持v2.0、v…

《面试1v1》ElasticSearch 和 Lucene

🍅 作者简介:王哥,CSDN2022博客总榜Top100🏆、博客专家💪 🍅 技术交流:定期更新Java硬核干货,不定期送书活动 🍅 王哥多年工作总结:Java学习路线总结&#xf…

DLA 神经网络的极限训练方法:gradient checkpointing

gradient checkpointing 一般来说,训练的过程需要保存中间结果(不管是GPU还是CPU)。前向传播根据输入(bottom_data)计算输出(top_data),后向传播由top_diff计算bottom_diff(如果某个变量打开梯度进行训练的话&#xff…

5个顶级的开源有限元分析软件

每当我参加数值分析课程的教学时,都会回顾有限元方法的基础知识,很自然地就会出现使用哪种软件的问题。 以下讨论基于三个基本考虑: 在实际应用中,很少有人从头开始编写 FEM 代码。商业 FEM 软件通常在某些预定义的情况下非常易于…

Pandas操作Excel

Pandas 是 Python 语言的一个扩展程序库,用于数据分析。 菜鸟教程:https://www.runoob.com/pandas/pandas-tutorial.html 读取Excel pd.read_excel(path,sheet_name,header) path:excel文件路径sheet_name:读取的sheet&#xff0…

3.netty和protobuf

1.ChannelGroup可以免遍历由netty提供,覆盖remove方法即可触发删除channel\ 2.群聊私聊 13.群聊私聊简单原理图 3.netty心跳检测机制,客户端对服务器有没有读写(读,写空闲) //IdleStateHandler(3,5,7,TimeUnite.SECONDS)是netty提供的检测状态的处理器,也加到pipeline,读,写,…

浅析 C 语言的共用体、枚举和位域

前言 最近在尝试阅读一些系统库的源码,但是其中存在很多让我感到既熟悉又陌生的语法。经过资料查阅,发现是 C 语言中的共用体和位域。于是,趁着课本还没有扔掉,将一些相关的知识点记录在本文。 文章目录 前言共用体 (union)枚举…

网络开发-IO模型

基本概念 I/O即数据的读取&#xff08;接收&#xff09;或写入&#xff08;发送&#xff09;操作 通常用户进程中的一个完整I/O分为两个阶段 用户进程空间<-->内核空间内核空间<-->设备空间&#xff08;磁盘、网卡等&#xff09; I/O分为内存I/O、网络I/O和磁盘…

【编程】典型题目:寻找数组第K大数(四种方法对比)

【编程】典型题目&#xff1a;寻找数组第K大数&#xff08;四种方法对比&#xff09; 文章目录 【编程】典型题目&#xff1a;寻找数组第K大数&#xff08;四种方法对比&#xff09;1. 题目2. 题解2.1 方法一&#xff1a;全局排序&#xff08;粗暴&#xff09;2.2 方法二&#…

123.买卖股票的最佳时机3

目录 一、题目 二、分析代码 一、题目 123. 买卖股票的最佳时机 III - 力扣&#xff08;LeetCode&#xff09; 二、分析代码 class Solution { public:int maxProfit(vector<int>& prices) {//0表示没有操作//1表示第1次买入&#xff0c;2表示第1次卖出//3表示第2…

用html+javascript打造公文一键排版系统11:改进单一附件说明排版

一、用htmljavascript打造公文一键排版系统10中的一个bug 在 用htmljavascript打造公文一键排版系统10&#xff1a;单一附件说明排版 中&#xff0c;我们对附件说明的排版函数是&#xff1a; function setAtttDescFmt(p) {var t p;var a ;if (-1 ! t.indexOf(:))//是半角冒…

学习源码,模仿编程

一.观察者模式: 1.创建事件 2.发布事件 3.监听事件 4.效果: 二.模板方法模式

FTP使用教程

FTP使用教程 目录 一&#xff0e;FTP简介二&#xff0e;FTP搭建三&#xff0e;FTP使用 一&#xff0e;FTP简介 FTP中文为文件传输协议&#xff0c;简称为文传协议。它也是一个应用程序&#xff0c;不同的操作系统有不同的FTP应用程序&#xff0c;这些应用程序都遵守同一种协议以…

LeetCode724. 寻找数组的中心下标

题干 给你一个整数数组 nums &#xff0c;请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标&#xff0c;其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端&#xff0c;那么左侧数之和视为 0 &#xff0c;因为在下标的左侧不存在元素。…

k8s概念-pv和pvc

回到目录 kubernetes存储卷的分类太丰富了,每种类型都要写相应的接口与参数才行&#xff0c;这就让维护与管理难度加大。 persistenvolume(PV) 是配置好的一段存储(可以是任意类型的存储卷) 也就是说将网络存储共享出来,配置定义成PV。 PersistentVolumeClaim(PVC)是用户pod使…

谁更适合搭配甜点显卡?i7-13700KF、锐龙7 7800X3D对比:游戏相当 生产力Intel强了50%...

一、前言&#xff1a;如果搭配2000元甜点显卡 i7-13700KF和锐龙7 7800X3D谁更有性价比&#xff1f; 现在AMD最受欢迎的处理器无疑是拥有96MB三级缓存的锐龙7 7800X3D&#xff0c;这是一颗专为游戏而生的处理器。 Intel这边&#xff0c;i7-13700KF以略高于i5-13600K的售价&#…