您正在使用IE低版浏览器,为了您的雷峰网账号安全和更好的产品体验,强烈建议使用更快更安全的浏览器
此为临时链接,仅用于文章预览,将在时失效
DIY 正文
发私信给张驰
发送

4

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

本文作者: 张驰 2015-10-20 16:25
导语:虽然我们能用App控制家里的智能产品,但如果用通讯应用的话,是不是有一种与设备聊天的亲密感呢?

关于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

雷峰网原创文章,未经授权禁止转载。详情见转载须知

分享:
相关文章

专业写瞎

不受意识控制地报道那些让人感动的产品技术和事件......zhchsimons@gmail.com ;微信:nksimons;《脑洞》公众号:hackmind
当月热门文章
最新文章
请填写申请人资料
姓名
电话
邮箱
微信号
作品链接
个人简介
为了您的账户安全,请验证邮箱
您的邮箱还未验证,完成可获20积分哟!
请验证您的邮箱
立即验证
完善账号信息
您的账号已经绑定,现在您可以设置密码以方便用邮箱登录
立即设置 以后再说