【雕爷学编程】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灯泡

# 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 itime.sleep_ms(10)if button_a.value() == 1: returnrgb.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 itime.sleep_ms(10)if button_b.value() == 1: returnrgb.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灯泡升级版

# 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 itime.sleep_ms(10)if button_a.value() == 1: returnmusic.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 itime.sleep_ms(10)if button_b.value() == 1: returnmusic.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 实验图形编程

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

同比环比使用方法

一、解释: 1.同比:本期与去年同期相比 ,如2023年8月 比 2022年8月 2.环比:本期与上期相比 ,如2023年8月 比 2023年7月 二、应用: 1.场景:统计日报、周报、月报、年报下进店客流的同比和环…

TypeScript使用技巧

文章目录 使用技巧TypeScript内置的工具类型keyofextends 限定泛型interface 与 type 区别 TypeScript作为JavaScript的超集,通过提供静态类型系统和对ES6新特性的支持,使JavaScript开发变得更加高效和可维护。掌握TypeScript的使用技巧,可以帮助我们更好地开发和组织JavaScrip…

银河麒麟V10 飞腾 Qt环境搭建

采用在线安装方式: 1、在线安装qt组件 sudo apt-get install qt5-* 2、在线安装qt creator sudo apt-get install qtcreator 以上简单两步安装完成后,新建项目已经可以编译过,但ClangCodeModel会报错如下图 the code model could not parse …

开始学习 Kafka,一文掌握基本概念|Kafka 系列 一

如果你还不了解 Kafka,或者也打算深入探索、系统学习,那么欢迎有同样目标的小伙伴可以加群交流,让学习之路不再孤独。 一个人可能走的很快,但是一群人会走的更远。(后台回复:加群) 点击上方“后…

微信小程序手写签字版

在这里插入图片描述 wxml 请在下面的白框中签名 重置 提交 # js Page({ data: { signPath: [], cardNo: , preX: , preY: , }, onLoad(options) { this.setData({ cardNo: options.cardNo }) wx.createSelectorQuery().select(#myCanvas).fields({ node: true, size: true }).…

python

文章目录 初识pythonpython的安装win系统Linux系统(centos7) 第一个Python程序常见问题 Python解释器Python开发环境PyCharm的基础使用创建项目修改主题修改默认字体和大小汉化插件翻译软件常用快捷键 初识python Python语言的起源可以追溯到1989年&…

Ubuntu-文件和目录相关命令

🔮linux的文件系统结构 ⛳目录结构及目录路径 🧩文件系统层次结构标准FHS Filesystem Hierarchy Standard(文件系统层次结构标准) Linux是开源的软件,各Linux发行机构都可以按照自己的需求对文件系统进行裁剪,所以众多…

17. Spring 事务

目录 1. 事务定义 2. MySQL 中的事务使用 3. 没有事务时的插入 4. Spring 编程式事务 5. Spring 声明式事务 5.1 Transactional 作用范围 5.2 Transactional 参数说明 5.3 Transactional 工作原理 1. 事务定义 将⼀组操作封装成一个执行单元(封装到一起…

解决spring.thymeleaf.cache=false不起作用的问题

目录 spring.thymeleaf.cachefalse不起作用thymeleaf缓存关闭 spring.thymeleaf.cachefalse不起作用 配置是清除缓存,实现热部署。 也就是修改了html后不用重启,刷新页面就能看到效果。 修改完html后一定要ctrlf9重新build一下。 再回到浏览器刷新&…

ffplay——QT项目移植

一、ffmpeg源码编译 参考: https://blog.csdn.net/sgzed/article/details/119850119 在生成时做了一些修改: ./configure --toolchainmsvc --enable-shared --enable-postproc --enable-gpl --prefixwindows 二、对文件做调整 ffplay只需要三个文件&…

stm32常见数据类型

stm32的数据类型的字节长度 s8 占用1个byte,数据范围 -2^7 到 (2^7-1) s16 占用2个byte,数据范围 -2^15 到 (2^15-1) s32 占用 4个byte,数据范围 -2^31 到 (231-1)231 2147483647 int64_t占用8个byte,数据范围 -2^63 到 (2^63-1)…

RpcController作用浅析

RpcController作用浅析 前面提到了RpcConsumer的实现思路,但是并没说明RpcController有什么作用,不妨看看google::protobuf::RpcController: class PROTOBUF_EXPORT RpcController {public:inline RpcController() {}virtual ~RpcControlle…

linux启动oracle

一、启动方法 方法1: Sql代码 cd $ORACLE_HOME/bin #进入到oracle的安装目录 ./dbstart #重启服务器 ./lsnrctl start #重启监听器 ----------------------------------- 方法2: (1) 以oracle身份登录​​数据库​​&am…

C#仿热血江湖GClass11

目录 1 GClass11 1.1 GetEnumerator 1.2 Dispose 1.3 imethod_1 1.4 imethod_0 GClass1using System; using System.Collections; using System.Collections.Generic; using Sys

一文快速入门Byzer-python

目录 一、Byzer-Python介绍 二、Byzer-python工具语法糖 三、环境依赖 1. Python 环境搭建 2. Ray 环境搭建 3. Byzer-python 与 Ray 四、参数详解 五、数据处理 1. Byzer-python 处理数据 2. Byzer-python 代码说明 3. Byzer-python 读写 Excel 文件 4. Byzer-pytho…

数据持久化之Web存储

​ 前端数据持久化是指在前端(客户端)应用中将数据保存在本地,使得数据在页面刷新、关闭或重新打开后依然保持存在的过程。在Web开发中,前端数据持久化可以使得用户不必每次都从服务器中获取数据。 常见的前端持久化方法&#xf…

如何搭建一个口才培训的网站?需要具备哪些条件?

论文题目:如何搭建一个口才培训的网站及所需条件 摘要: 本文探讨了如何搭建一个口才培训的网站,并详细分析了所需的关键条件。口才培训作为一种重要的社交技能,能够帮助人们提升自信和影响力,因此具有广阔的市场前景。…

day17 | 654.最大的二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树

文章目录 一、最大的二叉树二、合并二叉树三、二叉搜索树中的搜索四、验证二叉搜索树 一、最大的二叉树 654.最大的二叉树 构建二叉树的题目,都用前序遍历。 因为我们一定要先构建根节点,才能继续向后构建。 递归函数的参数和返回值: Tree…

AssetBundle学习

官方文档:AssetBundle 工作流程 - Unity 手册 (unity3d.com) 之前写的博客:AssetBundle学习_zaizai1007的博客-CSDN博客 使用流程图: 1,指定资源的AssetBundle属性 (xxxa/xxx)这里xxxa会生成目录&…

redux-promise-middleware和applyMiddleware的理解与使用

一、作用: applyMiddleware是一个中间件,通常和applyMiddleware结合使用,是dispatch与reducers之间的应用,用于处理dispatch发送的异步action操作 二、使用 1、安装redux-promise-middleware cnpm i redux-promise-middleware…