分类存档: Lifestyle - 第2页

玩玩智能家居6:接入杜亚电动窗帘

之前还没有玩上 Domoticz 的时候,家里全套系统都是用的 Broadlink,在买窗帘的时候也想着要买电动的,因此很自然的买了支持 Broadlink 的杜亚窗帘电机,可以方便地与 Broadlink 的传感器进行联动。

后来用了 Domoticz,但是 Broadlink 的系统并没有开放 API,想要接入 Domotiz 系统就比较麻烦了。在网上看了一堆帖子之后,发现可以通过分析窗帘电机遥控器信号,然后自己使用 433M 射频模块来自己控制。

Controlling Blinds.com RF Dooya Motors with Arduino and Vera 这篇帖子中提供了一个 PDF,详细介绍了如何嗅探信号,以及杜亚窗帘电机遥控器信号的格式。

准备材料

发射和接收 433M 射频信号需要的材料很简单,只需要 433M 发送和接收模块就可以了,不超过 5 块钱。

再加上需要接入 Domoticz,加个 NodeMCU,完事。

嗅探信号

首先需要嗅探一下窗帘遥控器发出的信号,如果有专业的机器的话可以直接去嗅探 433M 射频信号,如果没有的话,也可以使用 433M 模块自制一个。

根据前面提到的 PDF 中介绍的方法,将一个 433M 模块与 …

阅读全文 »

玩玩智能家居5:DIY水浸传感器

之前总是担心厨房水槽下水管会漏水,所以直接用雨水传感器做了一个水浸传感器,这样在漏水的时候,就可以直接收到通知,从而及时去检查并修复下水管漏水问题。

要 DIY 一个水浸传感器还是很简单的,只需要一个雨水传感器和一个 NodeMCU 就可以了。

雨水传感器

给 NodeMCU 刷上 ESPEasy,配置一个 Switch 设备,将 GPIO 设置为 NodeMCU 与雨水传感器 DO 针脚连接的 IO 就可以了。

然后再在 Domoticz 中配置好一个 Virtual Sensor,类型改为 Switch 就可以了。

报警声音

有些时候推送通知会比较慢,又或者手机不在身边,那么是否可以直接在 NodeMCU 这一端直接使用声音报警呢?这很简单,加个蜂鸣器模块,再写点代码就好了。

先给 ESPEasy 写个蜂鸣器插件,关键代码就是使用 Arduino 的 tone 函数了:

#define Plugin158_Do 262
#define Plugin158_Re 294
#define Plugin158_Mi 330
#define Plugin158_Fa 


阅读全文 »

玩玩智能家居4:InfluxDB & Grafana

在接入了很多传感器到 Domoticz 之后,终于可以全面监控家里的各种环境参数了,例如温度、湿度、PM 2.5、二氧化碳浓度等等。

Domoticz 虽然已经自带了传感器数据日志,但是一来详细数据最多只能保存七天,二来只能单独查看每个传感器的数据,而不能将多个传感器数据放在一起对比查看,所以就需要使用其他方式去保存和展示传感器历史数据。

InfluxDB

InfluxDB 是一个时序数据库,很方便用来保存时间序列数据,而各种传感器数据其实就是一个时间序列化数据,InfluxDB 的介绍页面也说了很适合于 IoT Sensors 数据的保存。

使用 InfluxDB 最方便的方式就是用 Docker 了,直接在 DSM 的 Docker 中添加 influxdb 镜像,然后启动一个容器就可以了。

当然这里要记得添加一下端口映射,后面在配置 Domoticz Data Push 的时候需要用到。

Domoticz Data Push

部署好了 InfluxDB,就可以在 Domoticz 里面配置把接收到的传感器数据同时推送到 InfluxDB 中保存了。

Domoticz 提供了两种方式可以用来将传感器数据推送到 InfluxDB 中,一种使用 HTTP 调用 InfluxDB 的 HTTP API,还有一种是直接使用 Domoticz 内建的 …

阅读全文 »

玩玩智能家居3:PlatformIO

ESPEasy 虽然方便,但是毕竟很久没有维护了,里面对硬件的支持也不是很完全,并且在使用有些模块时,与 Domoticz 对接可能会有一些问题,例如 CO2 传感器在发送数据到 Domoticz 时,发送的数据字段就不正确。

在这个时候就需要自己来修改 ESPEasy 代码,重新编译并烧录到 NodeMCU 中,而修改代码就需要用到 IDE 了。ESPEasy 是一个 Arduino 项目,自然用 Arduino IDE 来开发是最直接的。

但是 Arduino IDE 是一个相当古老的程序了,虽然版本号更新到了 1.8,但是在使用的时候有很多功能都不够完善,例如代码自动补全、符号定位、语法着色等。

这个时候就在网上找到了 PlatformIO 这个项目,它提供了基于 Atom 或者 Visual Studio Code 的 IDE 项目 PlatforIO IDE。

PlatformIO IDE

要安装 PlatformIO IDE 很简单,在 Atom 的设置中打开 Packages,直接搜索 platformio ,安装platformio-ide …

阅读全文 »

玩玩智能家居2:ESPEasy

1. ESP8266

ESP8266 是乐鑫推出的一款低功耗高集成度的 Wi-Fi 芯片,价格低,I2C、SPI、ADC 等接口一应具全,非常适合作为个人 DIY 的单片机使用。

2. NodeMCU

NodeMCU 是基于 ESP8266 ESP-12E 做的一个开发板,集成了 Micro USB 输入,4M Flash,开发时使用起来更方便。

NodeMCU 默认是使用 Lua 作为开发语言的,但是借助于 ESP8266 Arduino 项目,就可以拿 NodeMCU 当 Arduino 开发板来使用了,可以直接使用 Arduino IDE 或者 PlatformIO 来开发。

3. ESPEasy

ESPEasy 是 LetsControlIt.com 开发的一个开源 MCU 固件,专门用于 IoT 设备。通过 ESPEasy,可以很方便地使用 ESP8266 系列 MCU …

阅读全文 »

玩玩智能家居1:Domoticz

1. 什么是 Domoticz

第一次知道 Domoticz 是在 smzdm 上的一篇原创文章《开源IoT平台domoticz与百搭wifi模块esp8266 篇三:空气站 Weather Station》里,以及知道了 ESP8266 模块这个好东西。

Domoticz 支持众多 USB 以及串口设备,可以通过将 Domoticz 安装在树莓派上,直接读取和操作连接在树莓派上的设备,例如 RFLink 或者 I2C 接口的 BME280 传感器。

当然,Domoticz 还支持通过局域网控制的设备和有网络 API 的设备,例如小米网关或者 Netatmo Weather Station。

2. 主要功能

传感器

Domoticz 可以直观的展示各种传感器状态以及历史,常用的有温度、湿度、二氧化碳浓度等。

对于 Domoticz 没有内置类型的传感器,也可以使用 Custom Sensor 来展示,可以自定义单位,同样可以查看历史。

开关

对于灯、遥控器等,都可以通过 Domoticz 开关类型设备来实现控制。对于遥控器,Selector Switch …

阅读全文 »

玩玩智能家居0:开始折腾

记录一下折腾智能家居的过程和东西。

Domoticz

Domoticz 是一个开源的 Home Automation System,使用 C++ 编写,相对于其他系统的好处就是占用资源少。

Domoticz 使用比较简单,界面也比较清晰,不过界面不太现代。

NodeMCU 和 ESP8266

ESP8266 是上海乐鑫出的一款自带 Wi-Fi 的 MCU,NodeMCU 是基于 ESP8266 ESP-12E 做的一个开发板,集成了 Micro USB 输入,4M Flash,开发时使用起来更方便。

NodeMCU 默认是使用 Lua 作为开发语言的,但是借助于 ESP8266 Arduino 项目,就可以拿 NodeMCU 当 Arduino 开发板来使用了,可以直接使用 Arduino IDE 或者 PlatformIO 来开发。

ESPEasy

ESPEasy 是一款可以用于 ESP8266 芯片的开源固件,使用这个固件可以很方便的把常用的一些传感器集成到 Domoticz 系统中。…

阅读全文 »

使用 python-broadlink 发送 BroadLink A1 数据到 Domoticz

之前在 smzdm 上看一些物联网的文章时,看到 Domoticz 这个平台,好像还蛮符合我的需求的,文章里还介绍了使用 RMBridge 来使用 Domoticz 来控制 RM Pro。

但是 RMBridge 并不是特别方便,需要一直跑一个 Android 来作为指令中转,于是在 GitHub 上去找找看有没有其他项目来支持 BroadLink 的 RM 设备,然后就找到了 python-broadlink 这个项目。

在研究 python-broadlink 的代码过程中,发现它同时还支持 BroadLink 的 A1 空气质量监测仪,刚好我就有一个 A1 设备,于是准备试试看能不能把 A1 的数据更新到 Domoticz 平台上。

最终的效果如下图所示:

准备工作

因为我有一个 DSM,并且 Domoticz 有现成的 DSM Package,所以所有工作都是基于 DSM 完成的,需要的软件如下:

  • DSM 6
  • Domoticz


阅读全文 »

使用 KindleEar 定时推送《知乎日报》到 Kindle Paperwhite

入手 Kindle Paperwhite 已经有段时间了,但是一直没有充分利用起来。

HiPDA! 的 E-ink 版乱逛的时候,看到 cdhigh 开源了一个 Kindle 推送服务的代码 KindleEar,而最近又经常会去看知乎日报,于是就想能不能每天定时把知乎日报推送到 Kindle 上阅读。

在看了 KindleEar 的代码之后,发现添加一种订阅源还是比较简单的,于是直接拷贝了原来 books 中的代码,写了一个知乎日报的模块 ZhihuDaily.py

具体的代码可以前往我的 fork:,我也已经提交了 Pull Request 给原作者。

不过在测试过程中发现知乎屏蔽了来自 Google App Engine 的网页获取请求,经过 @clowwindy 说明得知有人滥用 Google App Engine 于是简单的屏蔽了 GAE 的访问。

当然这个不难解决,通过另外一个服务器中转一下知乎日报的 Feed 就行了,知乎并没有屏蔽所有外部访问⋯⋯

于是写了个 ZhihuDailyForwarder

阅读全文 »

在使用 Linux 系统的 NAS 上部署 Fitbit 数据同步程序

使用 Fitbit 已经三个多月了,用它来记录每天的运动量以及睡眠质量感觉很方便。

不过因为我用的电脑是笔记本,如果要同步 Fitbit 的数据,就需要把 Fitbit Base Station 连接在笔记本电脑上,然后 Fitbit 的数据才会同步到官网上。

因为家里没有 24 小时开机的电脑,所以没办法直接把 Fitbit Base Station 连接在一台电脑上实现回家自动同步。

但是家里有下载机是 24 小时运行的,于是去 Fitbit 官网看看有没有提供 Linux 下的 Fitbit 同步程序。

很不幸的是,Fitbit 官方只提供了 Windows 和 Mac OS X 版本的同步程序,没有提供 Linux 下的 Fitbit 同步程序。

昨天突然想到去网上找找看有没有非官方的 Linux 平台 Fitbit 同步程序,没想到还真找到了。

在网上找到了两个项目,用来提供跨平台的 Fitbit 同步功能。

开源的 Fitbit



阅读全文 »