转载

用聊天软件也可以控制智能家居

关于Telegram这款通讯应用, 雷锋网有过详细介绍 ,而且创始人背后的故事也十分精彩,堪比好莱坞大片,推荐阅读。不过今天要介绍的,却是如何用Telegram远程控制传感器和制动器。虽然我们能用App控制家里的智能产品,但如果用通讯应用的话,是不是有一种与设备聊天的亲密感呢?

去年六月,Telegram公布了一些API,可以借此开发模仿真实用户的自动化程序,即BOT。整个思路是,开发一个BOT,运行在树莓派上,让它接受Telegram的指令,再让温度/湿度传感器和一个装有两个继电器的模块接上树莓派,接受控制。

用聊天软件也可以控制智能家居

原理

用户通过手机上的Telegram与BOT聊天,信息会发往Telegram服务器。而树莓派上的程序会通过两种方式收到信息:

  • polling:每隔一段时间,程序查看是否有新信息,有则收取

  • webhook:配置Telegram,将新信息发到一个网页URL

第二种方法需要一个公有IP,而且要对路由进行设置,比较麻烦,所以选第一个。

造个BOT

第一步当然是建个Telegram号啦。很简单,直接向系统内置的BotFather发“/newbot”指令就行啦,就像下图那样。

用聊天软件也可以控制智能家居

用聊天软件也可以控制智能家居

设定好显示名称和用户名就行啦,系统会提供一个授权指令,它就是密码了。有了名字和密码,程序就能扮演人类了。

本文的例子中,BOT程序是用javascript开发的,运行在Node.js服务器环境(如何在树莓派上安装 请看这里 )。程序需要3个库:

  • node-dht-sensor:从传感器中读取温度和温度值

  • onoff:控制树莓派数字PIN码

  • node-telegram-bot:使用Telegram的API

建个新文件夹保存BOT程序代码,并在此文件夹下,输入以下命令:

npm install node-dht-sensor onoff node-telegram-bot

在同一文件夹下,复制BOT的javascript代码, 下载地址见这里 。记得替换代码中的密码,换成自己申请的那个。

用聊天软件也可以控制智能家居

执行程序只需用下面的代码:

sudo node bot.js

用聊天软件也可以控制智能家居

使用

现在开发的命令有下面这些:

  • /getouts:显示继电器的状态

  • /setout1 ON|OFF和/setout2 ON|OFF:控制两个输出口的开/关

  • /gettemp:显示实际温度

  • /gethum:显示实际湿度

用聊天软件也可以控制智能家居

Telegram里的BOT都是公开的,每个用户都能给它们发信息,所以为了确保自己的程序只响应自己的命令,要在代码中加入用户的ID验证。如下所示:

用聊天软件也可以控制智能家居

本文的例子中用的是DHT11温度/湿度传感器,以及一个配了两个继电器的模块。将他们接上树莓派的PIN口即可。在程序中,还要配置正确的PIN口,如下:

用聊天软件也可以控制智能家居

都弄完后,就可以用Telegram给家里的传感器什么的发指令了。PS:如果大神发现QQ和微信什么的也可以,可留言或关注硬创邦微信号讨论。

用聊天软件也可以控制智能家居

via lucadentella

正文到此结束
Loading...