• Stars
    star
    342
  • Rank 123,222 (Top 3 %)
  • Language
  • License
    MIT License
  • Created about 4 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

原生HomeKit红外空调遥控

ESP8266-IR-HOMEKIT

原生HomeKit红外空调遥控

HomeKit

主芯片为ESP8266,原生HomeKit红外空调遥控,支持数十种空调遥控协议。

现阶段为体验版固件,在firmware文件夹中提供固件下载。

目前仍在开发中,部分功能以后可能会有改动。

注:空调,Air Conditioner,简写为AC

主要功能

  • 原生HomeKit协议,无需服务器桥接,基于我的Arduino-HomeKit-ESP8266
  • 支持控制空调的开关、模式、温度、风速、扫风、灯光
  • 支持数十种空调遥控协议,红外控制基于IRremoteESP8266

WiFi配网

AP模式配网,自敲代码,效果图见下一小节图示的的倒数第二项

  • ESP8266在未联网/断网时会生成ESP_CONFIG_XXXXXX的热点
  • 手机连接该热点会自动弹出配网页面,如果未自动弹出可手动访问192.168.4.1
  • 扫描WiFi,填写WiFi名称和密码点击发送配置,连接成功后会自动退出配网模式并关闭AP热点
  • WiFi状态指示灯IO2(D2):即芯片上靠近天线处的蓝色LED,未联网为闪烁,已联网为熄灭

Web功能

空调红外(IR)设置与控制,访问http://<esp_ip>,Web APP型页面,效果见下图

注:<esp_ip>为你的ESP8266联网后的IP地址,下同

ir_homekit_web_pages.png

  • 设置空调协议Protocol、子型号Model,需设置与实体遥控器匹配的空调协议和子型号
  • 控制空调的开关Power、模式Mode、温度Temperature、风速Fan Speed、扫风Swing(垂直V/水平H)、灯光Light

Web扩展功能

  • WiFi Config,自敲代码的配网功能,访问http://<esp_ip>/wificonfig,用于配网或重新设置网络,见上一小节图示的倒数第二项
  • File Manager,自敲代码的Web文件管理功能,访问http://<esp_ip>/file,用于管理SPIFFS文件系统,支持上传/查看/删除文件,见上一小节图示的最后一项
  • Web Update,访问http://<esp_ip>/update,用于固件更新

HomeKit家庭添加配件

  • 配对设置代码:111-11-111

add_accessory.png

硬件连接

引脚定义

  • IR发射:IO14(D5),必需
  • IR接收:IO12(D6),非必需
  • WiFi指示灯:IO2(D2),即ESP8266芯片上靠近天线处的蓝色LED
  • 红外指示灯:IO13(D7),非必需
  • 按键:IO0(D3),即NodeMCU开发板上的Flash按键

hardware_wire.png

  • 红外发射管:图中白色两脚LED所示,即普通的940nm红外发射管,直径3mm或5mm均可。一般长脚为正极,灯罩圆形有缺口侧为负极
  • NPN型三极管(非必需):图中的带“N”标志的为NPN型三极管,用于放大电流
  • 红外接收管(非必需):图中黑色三脚LED所示,VS1828、HX1838、PC638通用型红外接收头,引脚从左到右为DATA(OUT)、GND、VCC

最简电路:仅使用红外发射管,正极脚接NodeMCU的IO14(D5),负极脚接NodeMCU的GND。

ESP8266的IO驱动电流约为10mA,可使得红外发射管正常工作,但遥控距离较近,一般仅有1米左右。建议使用三极管或MOS管驱动,实现更高电流更远遥控。 实测自制的PCB,使用6枚全向100mA电流的5MM发射管可实现全屋无死角遥控,可参考网上的米家/天猫精灵万能红外遥控的拆机图。

按键功能(以后可能会有改动),即NodeMCU的Flash按键:

  • 单击:进入红外接收识别状态,用空调原配遥控器对准红外接收管按下任意按键,将尝试识别该空调协议,在Web页面的Last IR Receive一栏处会显示最后一次识别到的空调协议(需刷新页面)。识别到有效协议后会自动退出识别状态。超时1分钟未识别到有效协议也会退出识别状态
  • 双击:发射一次红外信号(使用当前的空调设置)
  • 长按:重置HomeKit(移除配对信息)并重启

附:将网页添加到桌面

iOS上可将网页放到桌面,当作Web APP来用

add_to_home_screen.png

附:固件烧录

esp_flash_example.png

  • 可使用乐鑫官方提供的烧录工具,官网下载地址
  • 下载Flash 下载工具(ESP8266 & ESP32 & ESP32-S2),运行时选择Developer Mode
  • 提供的固件bin为完整固件,刷写至0地址,如图靠上面一栏的@后面填0
  • 右下角COM口选择你的NodeMCU开发板接入电脑的COM口,如果不确定是哪个可以都试试
  • BAUD即波特率,数值越高烧写速度越快,一般可选921600
  • 其他选项可按图选择,图中配置仅针对NodeMCU
  • 都选好后点击左下角的START即可下载,921600波特率下一般不到10秒

注意

  • 必须正确选择空调的协议Protocol、子型号Model
  • 因存在代工等原因,协议和空调品牌不一定完全对应,如格力(Gree)空调可能为18. KELVINATOR协议
  • 子型号Model(1~6)仅对部分协议有效,(5)Fujitsu/Panasonic意为当协议选为Fujitsu或Panasonic时选用其下属的第(5)个子型号,其他协议不具有第(5)个子型号

QQ群:686409089

更多对于ESP8266/ESP32开发以及HomeKit库的使用和交流,欢迎大家加群讨论:

QQGroup

More Repositories

1

Arduino-HomeKit-ESP8266

Native Apple HomeKit accessory implementation for the ESP8266 Arduino core.
C
1,485
star
2

Weather

A beautiful weather app: DynamicBackground (clear, rainy, foggy, etc), AqiView, DailyForecastView, HourlyForecastView and more. 一款精致的天气APP,动态天气背景(10*2种天气效果,每种区分白天和夜间)、一周天气曲线图、24H曲线图、空气质量/风速/日出日落图等。
Java
456
star
3

Arduino-HomeKit-ESP32

[Deprecated] Native Apple HomeKit accessory implementation for the ESP32 Arduino core.
C
213
star
4

SmoothCompoundButton

Android CompoundButtons (Switch, CheckBox, RadioButton) in Material Design, works on Android 4.0+(SDK 14). SmoothCompoundButton 是全套Material风格的Switch、CheckBox和RadioButton组件,纯Java代码(非贴图)像素级复刻了Material动画与阴影效果,支持Android 4.0+。基本实现了在不同Android版本上与Material风格一致的效果,体验优于官方AppCompat,可能是目前最好的Material风格CompoundButton组件之一。
Java
144
star
5

OverScroll-Everywhere

Add the over-scroll feature to any scrollable view: RecyclerView, ScrollView, WebView, ListView, GridView, etc. Support both fling and drag over-scroll,and easy to customize the over-scroll style. 为任意可滑动的View定制越界效果(over-scroll),同时支持滑动惯性越界与拖动越界,方便地定制与扩展不同的越界风格。实现iOS弹性越界效果、微信“网页由xxx.com提供”的WebView效果、MIUI8的越界拉伸放大效果。
Java
111
star
6

FastScroll-Everywhere

Add the fast-scroll feature to any scrollable view: RecyclerView, ScrollView, WebView, ListView, GridView, etc. 为任意可滑动的View添加快速滑动,是的,任意。
Java
84
star
7

9GAG

9GAG-Android (unofficial), Android Design.
Java
71
star
8

Arduino-HomeKit-ESP

Arduino library version of espressif's official esp-homekit-sdk.
C
55
star
9

SplitLayout

Android SplitLayout, which splits the available space between two child views by dragging the center handle. 安卓分栏布局,包含2个子View,支持横向或纵向分栏,可通过拖动中间的handle来动态分割两个子View所占空间。
Java
35
star
10

NotificationTextColorCompat

Fetch the default system notification text color (ContentTitleColor and ContentTextColor) for your custom RemoteViews. 获取系统默认的通知文字颜色(标题和内容文字颜色),适配自定义通知的RemoteViews中的文字。已测试兼容各种国产ROM。
Java
21
star
11

StatusBarColorCompat

Change the StatusBarColor dynamically, works on Android 4.4+. 简单优雅地动态改变状态栏颜色,支持安卓4.4+。
Java
18
star
12

ESP32-HOMEKIT-GATEWAY

ESP32-HOMEKIT-GATEWAY
8
star
13

mixiaoxiao.github.io

CSS
4
star
14

DataStateContainer

DataStateContainer是一个专为处理数据刷新/加载逻辑业务(如微博信息流)而生的ViewGroup。
Java
3
star
15

ActionMenu

A lite library to show an action-menubar like the menus(copy, select all, paste) for UILabel in iOS.
Java
3
star
16

PathScroller

A Scroller that can compute the "value - time" by a Path. 一个依据Path来映射“数值-时间”关系的Scroller,可轻松实现速率变化复杂的Scroll效果。
Java
2
star
17

ZoneAssistiveTouch_TranslationProject

ZoneAssistiveTouch TranslationProject
2
star