资料介绍
描述
理念
我的办公桌在我地下室的凸窗旁边,因为我的房子真的很旧,那里的绝缘和温度一直很奇怪,而且总是很冷。出于这个确切的原因,我的办公桌旁边有一个空间加热器。我想创造一种更好的方式来调节和控制我的办公桌设置,包括我的 PC 和空间加热器。我选定了一个项目,该项目可以让我使用家里的 Amazon Alexa Echo Dots 自动执行此过程,并使用 Alexa 应用程序远程触发它。我希望能够告诉 Alexa 我在家,她会通过启动一切来自动执行此过程。我也希望有一些细微差别,所以我想我可以添加另一个组件来调节加热器,它是以温度传感器的形式出现的。
温度感应器
我首先开始设置温度传感器,因为我知道这将是项目的关键组成部分。
我使用了 PietteTech 库并为温度传感器创建了一个测试。传感器的完整测试代码可以在代码部分找到:DHT22 温度传感器测试。
我遇到了一个问题,如果检查得太频繁,传感器偶尔会偶尔读取一个荒谬的值,比如 -2 度,所以我知道我必须在以后考虑这个问题。
我的解决方案是保留一个单独的值,该值仅在有效值时更新
if(currentTime - prevTime > 30000){
int result = DHT.acquireAndWait(2000);
serverTemp = DHT.getFahrenheit();
if(serverTemp>0){
accurateTemp = serverTemp;
}
Particle.publish("servertemperature", String::format("%.1f", serverTemp));
Particle.publish("accuratetemperature", String::format("%.1f", accurateTemp));
prevTime = currentTime;
}
IFTTT 亚马逊 Alexa 触发器
下一步是将我的 Amazon Alexa 连接到 Webhook post 请求服务,以便与 Particle Argon 交互。我选择了 IFTTT,并将我的亚马逊账户连接到它并设置了小程序。
为了连接 IFTTT 集成,我使用粒子云和 Spark.function Particle.publish来调用使用粒子令牌的函数,然后将 Webhook 发布请求附加到 IFTTT 触发器以及我的代码中的函数。
局域网唤醒电脑
然后我需要找到一种方法来远程启动我的电脑。我知道这可以使用 Wake On Lan 功能实现,但我必须让它与 Particle 环境一起工作。幸运的是,我找到了这个项目来帮助我入门。然后我研究了代码并将其压缩为仅对我来说是必要的功能。此代码采用给定的原始 MAC 地址,将其转换为字节,然后通过指定的 MAC 地址将唤醒数据包发送到 PC。完整的测试代码可以在代码部分找到:局域网唤醒测试。
其他注意事项:
出于测试目的,我在另一台计算机上安装并使用了Homebrew ,以便安装 wakeonlan 命令并测试独立于粒子环境的功能。
我还需要调整我的 BIOS 和设置以允许 Wake On Lan 正常运行,并根据我的主板制造商的说明做了这三件事:
1. 在 BIOS 电源管理菜单中将“EUP 2013”设置为禁用。2. 在唤醒事件设置中启用“通过 PCI 或 PCI-E 设备恢复”。3. 在 Windows 设备管理器中,进入“网络适配器”->“电源管理”选项卡,勾选【允许此设备唤醒计算机】复选框。
加热器功能
我控制加热器的第一个想法是使用智能插座或继电器来控制加热器的插座电源并将其连接到 Alexa。然而,这不是一个选择,因为我的加热器有一个数字而非手动电源开关。这意味着切断插座电源然后恢复它不会正确打开和关闭加热器。相反,我决定使用红外信号来控制加热器,因为它有一个红外 LED 遥控器作为控制选项,因此我可以以某种方式复制信号以供我使用。
在决定使用红外通信后,我设置了一个系统来测试接收和发送红外信号,并使用 Arduino 兼容遥控器进行测试。
使用这个遥控器和我的 IR 发送和接收节点,我能够成功地复制从遥控器接收到的 IR 信号。IR 传输具有特定的编码参数集,这些参数在大多数情况下都很常见,可用于轻松复制信号。这个特定的遥控器使用了 NEC 最常见的编码。完整的测试代码可以在代码部分找到:IR 发射测试、IR 接收测试和 IR 发射和接收测试。
当我试图复制我个人遥控器的信号时,问题就出现了。
这些信号的复制要复杂得多。我不能只是说我要发送一个 NEC 代码并给它一个简单的十六进制值来发送。只能发送十六进制值,因为编码类型已知。经过大量研究后,我确定我必须改为从遥控器发送原始信号,没有任何简化值,因为 Lasko 公司的遥控器没有我可以使用的任何公共编码类型。我家楼上有一个不同版本的 Lasko 加热器,证实了我的怀疑,因为那个遥控器也有一个未知的编码。然后我记录了来自遥控器的不同原始信号,这些信号控制了我需要的加热器的所有功能。
unsigned int oncodePower[143] = {1250,415,1250,415,423,1250,1247,448,1223,427,422,1256,423,1258,422,1257,423,1257,421,1257,423,1256,1248,7026,1250,416,1254,412,422,1250,1248,406,1264,427,422,1260,421,1257,423,1257,422,1256,423,1258,422,1256,1249,7066,1251,399,1267,416,421,1249,1250,419,1252,427,422,1260,420,1258,421,1258,423,1257,422,1256,436,1242,1250,7032,1250,416,1250,418,421,1249,1250,420,1250,428,422,1258,423,1256,421,1259,422,1258,422,1257,422,1255,1249,7028,1250,417,1250,416,421,1249,1250,418,1253,425,428,1254,422,1257,423,1257,422,1258,421,1260,419,1257,1248,7028,1248,416,1251,417,420,1250,1251,418,1251,427,422,1259,422,1257,423,1256,423,1267,412,1258,426,1252,1250};
unsigned int oncodeSwitch[119] = {1250,411,1255,411,425,1244,1253,414,1255,421,427,1254,427,1252,428,1250,426,1253,1251,423,427,1253,426,7849,1253,411,1254,417,421,1245,1253,415,1255,422,427,1255,424,1254,426,1252,429,1247,1256,422,427,1253,428,7891,1253,410,1255,410,426,1247,1254,414,1254,423,427,1255,426,1255,424,1255,426,1249,1256,422,428,1251,429,7857,1253,411,1255,411,427,1244,1255,414,1256,419,429,1254,428,1251,428,1255,424,1251,1254,421,428,1253,428,7851,1255,410,1256,410,427,1245,1253,414,1257,422,428,1253,427,1252,429,1253,424,1251,1254,422,427,1254,426};
unsigned int oncodeOsc[143] = {1247,415,1250,417,422,1249,1249,420,1250,427,423,1257,424,1257,423,1257,1249,427,422,1259,422,1258,423,7804,1250,416,1250,416,422,1251,1250,420,1250,435,415,1260,423,1260,421,1256,1252,438,412,1260,422,1258,424,7857,1250,416,1251,416,424,1252,1249,420,1251,438,413,1259,423,1259,423,1256,1252,429,421,1260,424,1260,422,7818,1248,433,1237,417,422,1251,1251,422,1250,428,422,1258,426,1257,426,1256,1251,429,422,1262,421,1261,422,7810,1249,418,1250,418,421,1251,1253,420,1252,427,423,1260,424,1259,423,1259,1250,427,423,1262,422,1261,421,7812,1250,414,1255,415,422,1252,1252,419,1252,427,423,1262,423,1261,422,1258,1252,427,422,1262,422,1258,425};
我重新连接了温度传感器并将我的红外设备整合到一个面包板上进行测试。
加热器温度相互作用
由于我的加热器有两种不同的设置,我使用温度传感器来确定当我启动我的电脑时是否需要加热器(低于 72 度)。
int wakeHost(String param) {
String MACaddress = "00:d8:61:aa:73:7a";
Particle.publish("test","got to wake host");
char szMacAddress[80];
MACaddress.toCharArray(szMacAddress,80);
Particle.publish("test", szMacAddress);
if(accurateTemp < 72.0){
deskStart = TRUE;
}
checkHIGHTemp = TRUE;
return wake(szMacAddress);
}
传感器还会检查温度是否过高(超过 67 度),然后将其切换到低温模式。
if(highTempOverride || (checkHIGHTemp && accurateTemp > 67.0)){
irsend.sendRaw(oncodeSwitch,119,38);
checkHIGHTemp = FALSE;
highTempOverride = FALSE;
Particle.publish("test","sentTEMPIR");
}
最终产品
- Lane Tech HS-PCL-食品储藏室入口探测器
- Lane Tech PCL房间通知器开源分享
- Lane Tech PCL:通过语音命令的东西分配器
- Lane Tech HS PCL自动灯开源
- Lane Tech HS PCL RAGE探测器开源分享
- Lane Tech HS前门传感器开源分享
- Lane Tech HS湿度变化提醒
- Lane Tech HS PCL简单的门传感器
- Lane Tech HS温度通知
- Lane Tech PCL粒子氩激光绊线开源
- Lane Tech HS温控风扇开源分享
- Lane Tech PCL洗衣机显示器
- 加热器短线报警器原理、分类和选型 5次下载
- 浸没式汽水混合加热器
- 大客车液体加热器安装要点
- 功率放大器在微型加热器中的应用 941次阅读
- 使用MOSFET作为恒温加热器 1154次阅读
- 电烙铁的加热器的结构组成与温度控制方法分析 9294次阅读
- 基于LM35D的温控加热器电路图 1.1w次阅读
- 低压加热器工作原理_低压加热器的作用 1.8w次阅读
- 恒温加热器的工作原理_恒温加热器保养 1.8w次阅读
- 汽车驻车加热器的工作原理详解 3.5w次阅读
- 如何正确使用防爆电加热器 4000次阅读
- 电加热器的分类及对比 9637次阅读
- 一文了解电加热器是什么 5969次阅读
- 电加热器功率计算方法 6w次阅读
- 简易加热器制作 1.7w次阅读
- PTC加热器原理及功能 23.6w次阅读
- 用于植物的土壤加热器 3770次阅读
- 加热器控制电路图 2.6w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多