【IoT】将各类遥控器(红外,频射,蓝牙,wifi,Zigbee)等设备接入米家,实现家庭物联网设备控制(以极米Z7X投影仪为例)

本文主要是介绍【IoT】将各类遥控器(红外,频射,蓝牙,wifi,Zigbee)等设备接入米家,实现家庭物联网设备控制(以极米Z7X投影仪为例),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【IoT】将各类遥控器(红外,频射,蓝牙,wifi,加密)等设备接入米家,实现家庭物联网设备控制(以极米Z7X投影仪为例)

文章目录

    • 1、三种主流遥控方式(红外,频射,其他)
      • 遥控器的类型
      • 红外遥控接入
      • 通用射频遥控接入
    • 2、其他1:红外转USB->安卓系统(以极米z7x投影仪为例)
      • 红外遥控器原理
      • 红外转USB说明
      • 极米Z7X改造
      • 红外转USB执行win bat脚本(电脑扩展功能,BAT常用功能)
    • 3、其他2:蓝牙开关->改造电路(以电话机为例)
      • 通用方案,改造电路
      • 以老电话机为例

1、三种主流遥控方式(红外,频射,其他)

参考资料:1, 2, 3

遥控器的类型

  • 第三方遥控主要可以分为三类,分别为
    红外遥控(如大部分的空调遥控、电视投影遥控)、
    通用射频遥控(如部分电动晾衣架遥控)和
    其他类(包括2.4G射频遥控、蓝牙遥控等)
  • 此三类设备红外遥控接入米家最简单,其他类最复杂

红外遥控接入

  • 绝大部分电视、投影、空调等使用的是红外遥控。
  • 对于此类遥控,只需要带红外功能的小爱音响(如小爱音箱pro、小爱音箱play加强版)或者小米万能遥控器(已停产,可以小黄买二手的)学习一下遥控按键就可以

通用射频遥控接入

  • 如何判断是通用射频还是加密射频
    (1)询问店铺客服
    (2)拆开遥控,通过遥控的主板判断
    在这里插入图片描述
  • 通用射频遥控接入米家
    买对应频率的遥控器进行学习

2、其他1:红外转USB->安卓系统(以极米z7x投影仪为例)

红外遥控器原理

红外线遥控器是一种利用红外线(IR)信号来远程控制电子设备的工具,广泛应用于电视、空调、音响等家用电器。红外线是一种电磁波,波长在可见光范围之外,大约在750纳米到1毫米之间。以下是红外线遥控器的基本工作原理:

  1. 发射端(遥控器)

    • 用户输入:用户按下遥控器上的按钮。
    • 编码:遥控器内部的微控制器(MCU)根据按钮的不同,生成特定的编码信号。
    • 调制:编码信号被调制到红外线载波上,通常使用38kHz的频率,这是红外线遥控器常用的载波频率。
    • 发射:调制后的信号通过遥控器前端的红外线LED发射出去。
  2. 接收端(电子设备)

    • 接收:电子设备上的红外线接收器(通常是一个光电二极管或光电晶体管)接收到红外线信号。
    • 解调:接收器将红外线信号转换为电信号,并进行解调,提取出编码信息。
    • 解码:微控制器对接收到的编码信号进行解码,识别出用户的操作意图。
    • 执行命令:根据解码后的结果,电子设备执行相应的动作,如切换频道、调整音量等。
  3. 特殊功能

    • 学习功能:一些遥控器具有学习功能,可以复制其他遥控器的信号,从而控制多种设备。
    • 重复发送:为了防止信号丢失,遥控器通常会在用户按下按钮后重复发送信号几次。
    • 安全编码:为了提高安全性,一些遥控器使用滚动码或其他加密技术来防止信号被非法复制。

红外线遥控器的优点包括成本低、使用简单、无需视线直接对准设备等。缺点则是信号传输距离有限,且容易被物体阻挡,以及在有多个遥控器同时使用的环境中可能会发生干扰。随着技术的发展,一些新型的遥控器开始使用蓝牙、Wi-Fi等无线技术,以提供更远的控制距离和更好的抗干扰能力。

红外转USB说明

工作原理:

  • 红外遥控器(或小爱音箱等)发送红外码给接收头----->
  • 接收头收到红外码后查找此码对应的功能如音量加(配置软件的作用就是配置映射关系)—>
  • 通过USB通道发送标准多媒体命令实现控制(WINDOWS /安卓/ LINUX这些系统都遵循USB的协议所以运行这些系统的设备理论上都支持)。

应用场景:
1、遥控操作电脑键盘 鼠标
2、电脑多媒体控制音量 快进 下一首 播放/暂停 关机等(系统自带的播放器及一些知名的播放器都支持多媒体按键)
3、智能电视控制,如家里智能电视遥控器坏了可以用这个代替
4、部分客户用来控制投影,或者用小爱音箱红外版发码控制
5、按遥控器按键执行BAT脚本打开电脑软件/网址/文档
6、嵌入式系统、 开发板等没有键盘的但支持USB HOST的设备可以用此遥控器当作键盘输入
7、会议演讲PPT控制
注:设备按微软WINDOWS标准实现,大部分手机设备也是参考此标准,如果在电脑上正常但您的设备不支持或部分功能不支持可能是您的设备没有完全实现这些标准。

操作方式

  • 打开配置软件,插入USB(免驱动,插入电脑不会有任何反应,但配置软件能检测到USB设备)
  • 遥控器随便按一个按键,此时软件会显示红外码。 如果收不到请检测遥控器是否本身工作正常,如果正常还收不到可能不是NEC编码的或换个其他红外遥控器测试。
  • 再选择此按键对应的功能操作,比如按回车键就选软件上键盘选项卡上的回车,音量+就选多媒体页里的音量+,再点设置键值即完成。(设置完后不需要再打开软件,把此USB拿到其他电脑或智能设备上也直接可以用)
    在这里插入图片描述

极米Z7X改造

背景:

  • 极米投影仪无法直接接入米家,且遥控器为蓝牙控制,因此也无法直接通过红外控制。

结论:

  • 通过米家智能插座3和红外输入转usb模块可以对投影仪实现大多数的操作,包括但不限于开机、关机、上下左右、确定(播放/暂停)、静音、音量加减、主页、菜单、返回等。

解决方案:

  • 开机:米家智能插座3进行功率监测,功率很低时如低于5w时关闭供电,同时设置投影仪上电开机。这样每次打开米家智能插座时即可打开投影仪
  • 关机1:关机有比较暴力的方案,即直接关闭智能插座,但是投影仪直接断电就无法进行散热,很容易损坏。
  • 关机2:因此考虑更合适的方式,可以通过红外输入转usb来实现关机,30多元购入。
  • 其他功能控制:全都依赖红外转usb,买入后可以将模块插到电脑上(win),按照卖家的教程下载软件配置。
  • 同时需要一个红外遥控器;我因为有小爱音箱pro,直接从米家创建了一个极米的遥控器来模拟即可。模块会接收红外信号,配置软件可以识别对应的信号,并支持我们配置对应的操作。
  • 比如我按下遥控器的关机键,就在配置软件中选择关机操作。那么等模块学习完成后,我按下遥控器上的关机键,模块会接收到红外信号并转化成usb的关机操作执行到投影仪上,同理,其他操作也是如此。

更多:

  • 电视遥控码
    在这里插入图片描述
  • HID 用途、Linux 按键代码和 Android 按键代码
    在这里插入图片描述

红外转USB执行win bat脚本(电脑扩展功能,BAT常用功能)

参考资料:红外遥控使用说明 , 发送键盘指令,HID 用途、Linux 按键代码和 Android 按键代码,

启动一个EXE程序
start "" "C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe"微信多开:
TASKKILL /F /IM wechat.exe
start "" "C:\Program Files (x86)\Tencent\WeChat\WeChat.exe"
start "" "C:\Program Files (x86)\Tencent\WeChat\WeChat.exe"打开网址:
start "" "http://baidu.com"打开文件:
start C:\test.xlsx10秒后关机
shutdown -s -t 10重启:
shutdown /r /t 0启动其他BAT:
start /D "D:\Program Files\redis\test1" start.bat
start /D "D:\Program Files\redis\test2" query.bat在windows下.bat每5分钟运行一次python文件
@echo off
set INTERVAL = 300
timeout %INTERVAL%
:Again
echo Called000000000000000
python C:/test.py
timeout %INTERVAL%
goto Againbat实现不了的功能怎么办?
使用其他脚本语言比如powershell  、VBS、python等,或者用编程语言开发个简单的控制台程序EXE就行了,然后BAT里再调用。更多BAT脚本用法请自行上网搜索 BAT调用POWERSHELL 实现更多复杂的功能:
powershell  -WindowStyle Hidden -executionpolicy remotesigned -file KEY.PS1"
KEY.PS1 是POWERSHELL脚本,内容示例:
$shell = New-Object -com "Wscript.Shell"#键码可参考 
$shell.sendkeys("{CAPSLOCK}") #按大小写键可以给BAT文件创建一个快捷方式(右键--发送到--桌面快捷方式)
然后右击该快捷方式,选择菜单选项中的"属性"打开,在"快捷方式"选项卡中为其设置一个快捷方式,点击确定保存即可。这样就可以不用打开电脑软件,只要把红外码配置成对应的键盘快捷键即可不打开软件执行BAT

3、其他2:蓝牙开关->改造电路(以电话机为例)

通用方案,改造电路

其他遥控接入米家

  • 对于不是以上两类的遥控,如蓝牙、2.4G、868等遥控不能通过上面的成品方案直接接入。
  • 下面介绍一个具有通用性的方案,所有的遥控或者按键类的开关都可以通过此方案接入米家。
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

以老电话机为例

老电话机

  • 参考资料:1, 2 , 3

tb方案:

  • 确认清楚自己的门禁机属于什么型号,其实直接拆下来把电路板。
  • 部分情况需要拍单元门主机的外观照片。
  • 收到魔改后的电话机后,按照教程安装。(一般是加装了通断器和wifi模块)

原理分析:

  • 开启门禁的必须动作是
    1.楼下有人按门铃
    2.抬起门禁话筒
    3.按下开锁键
    4.挂回电话
  • 可以使用米家无线mesh继电器,连接到门禁话机电路来控制2,3,4步骤的自动化。
    这里需要3路以上的继电器来实现。

手动操作:

  • 材料:4路米家mesh继电器,你的门禁话机,TYPE-C口电源,焊锡,电烙铁,电压表,十字螺丝刀
  • 1)动作“有人按门铃”,如有人在楼下按502,房内门铃响起,这步是人为进行的前置条件,不需要处理。
  • 2)动作“抬起门禁话筒”,拆开话机,看到话筒压着一个压簧开关,平时挂机处于压下状态,接听为弹起状态。
    (以下abcdef指话机电路板点。NC[常闭],COM[公共],NO[常开]指继电器接线点)
    通过电压笔测话机电路板焊点得知:
    挂机时: a-e接通,b-f接通
    接听时:a-e断开,a-c接通; b-f断开,b-d接通。
    焊接连线方案:
    继电器1:a点接到COM口,c点接NO口,e点接NC口
    继电器2:b点街道COM口,d点接NO口,f点接NC口
  • 3)动作"开下开锁",
    通过电压表测开锁按键,话机电路板点,GH同一通路,IJ同一通路。平时,G和I是断开的,按下开锁键,GI接合
    焊接连线方案:
    继电器3:I点连COM口,G连NO口
  • 4)动作"挂回电话",可以直接控制步骤2连线。
    挂机时:a-c断开,a-e接通; b-d断开,b-f接通。
    在这里插入图片描述

控制方案:

  • 将mesh继电器连上typec电源,加入米家,这里的4个按键分别对应4个继电器开关,我们只用到3个,控制如下
    1.有人按门铃–人为动作
    2."抬起门禁话筒"继电器1和2打开–>延迟1秒–>"按下开锁"继电器3打开(门打开)–>延迟1秒–>"挂回电话"继电器1 2 3 关闭
    在这里插入图片描述

这篇关于【IoT】将各类遥控器(红外,频射,蓝牙,wifi,Zigbee)等设备接入米家,实现家庭物联网设备控制(以极米Z7X投影仪为例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1104397

相关文章

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

Python实现特殊字符判断并去掉非字母和数字的特殊字符

《Python实现特殊字符判断并去掉非字母和数字的特殊字符》在Python中,可以通过多种方法来判断字符串中是否包含非字母、数字的特殊字符,并将这些特殊字符去掉,本文为大家整理了一些常用的,希望对大家... 目录1. 使用正则表达式判断字符串中是否包含特殊字符去掉字符串中的特殊字符2. 使用 str.isa

Spring Boot 集成 Quartz并使用Cron 表达式实现定时任务

《SpringBoot集成Quartz并使用Cron表达式实现定时任务》本篇文章介绍了如何在SpringBoot中集成Quartz进行定时任务调度,并通过Cron表达式控制任务... 目录前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启动 Sprin

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

使用Python实现一个优雅的异步定时器

《使用Python实现一个优雅的异步定时器》在Python中实现定时器功能是一个常见需求,尤其是在需要周期性执行任务的场景下,本文给大家介绍了基于asyncio和threading模块,可扩展的异步定... 目录需求背景代码1. 单例事件循环的实现2. 事件循环的运行与关闭3. 定时器核心逻辑4. 启动与停

基于Python实现读取嵌套压缩包下文件的方法

《基于Python实现读取嵌套压缩包下文件的方法》工作中遇到的问题,需要用Python实现嵌套压缩包下文件读取,本文给大家介绍了详细的解决方法,并有相关的代码示例供大家参考,需要的朋友可以参考下... 目录思路完整代码代码优化思路打开外层zip压缩包并遍历文件:使用with zipfile.ZipFil

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

基于Java实现回调监听工具类

《基于Java实现回调监听工具类》这篇文章主要为大家详细介绍了如何基于Java实现一个回调监听工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录监听接口类 Listenable实际用法打印结果首先,会用到 函数式接口 Consumer, 通过这个可以解耦回调方法,下面先写一个

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析