继上次文章使用树莓派(Raspberry Pi)实现智能家居(2/4)初步介绍了如何使用树莓派CLI(命令行)家里的简易电器进行控制之后,这篇文章将会进阶介绍一下,如何使用网页和手机APP对家里电器进行控制,实现智能家居。

其实原理上也并不是很难,大致上就是编写一个简单的HTTP页面,然后将页面上的点击事件触发系统调用其CLI命令,CLI命令对红外发射器的开和关进行操作;对于手机APP来说,也是在简易界面的基础上,将按钮和HTTP链接进行关联,即在手机APP上点击这个按钮,等同于用手机访问了某个URL,URL本身通过PHP来触发系统的CLI命令。

通过HTTP网页来控制家电

首先安装LNMP(Linux,Nginx,Msql,PHP)作为基础的HTTP环境

sudo apt-get install mysql-server mysql-client nginx php5 php5-fpm php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps0 php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

配置/etc/nginx/nginx.conf,限定线程数和开启gzip支持,gzip开启后将大幅降低传输html的流量占用

worker_processes 1;

worker_connections 256;

gzip on;

gzip_disable “msie6″;

gzip_vary on;

gzip_proxied any;

gzip_comp_level 6;

gzip_buffers 16 8k;

gzip_http_version 1.1;

gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

配置php

修改/etc/php5/fpm/php.ini,将

cgi.fix_pathinfo=1改为

cgi.fix_pathinfo=0

配置/etc/nginx/sites-avaliable/default,将大部分行前面的#注释符去掉

root /var/www/html ; #站点存储位置

index index.php index.html index.htm; #加入index.php为默认页面

location ~ \.php$ {

fastcgi_split_path_info ^(.+\.php)(/.+)$;

fastcgi_pass unix:/var/run/php5-fpm.sock;

fastcgi_index index.php;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

#开启php解析,使用php-fpm作为Fastcgi通信模块

这个地方挨踢小茶调试了蛮久,WEB一直没有成功运行php页面,后来加上了fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;才生效。所以如果想测试php是否生效可用,可以在/var/www/html下创建phpinfo.php文件,内容如下

// Show all information, defaults to INFO_ALL

phpinfo();

?>

然后打开页面http:///phpinfo.php就可以看到一些关于主机和php的信息。如果这个页面可以显示正常则说明PHP和HTTP安装是成功的。否则,还需要重新对HTTP,PHP配置进行检查。

因为HTTP默认使用www-data这个用户来对主机进行操作,这个用户默认无法执行大多数CLI的权限(包括本文需要用到的irsend这个命令),因此需要赋予www-data这个用户可以使用irsend这个命令的root权限。

编辑/etc/sudoers文件(可能这个文件默认是不能编辑的,如果是这样,可以先用sudo +w /etc/sudoers赋予该文件写入的权限),再最后一行加入以下代码。

www-data ALL=NOPASSWD: /usr/local/bin/irsend

编写cmd.php, 保存在/var/www/html下。该文件为本文最关键的文件了,这个文件主要是用php来调用系统CLI的irsend命令,这样子任何网页只需要调用cmd.php即可红外发射器进行操作,控制家电了!

$cmd = $_POST['cmd'];

if(!$cmd){

$cmd = $_GET['cmd'];

}

$device = $_POST['device'];

if(!$device){

$device = $_GET['device'];

}

if($cmd&$device){

$cmdline = "/usr/bin/sudo /usr/bin/irsend SEND_ONCE ".$device." ".$

cmd ;

echo($cmdline);

$output = shell_exec($cmdline);

echo($output);

}

?>

这个时候,你就可以在客户端上使用http:///cmd.php?cmd=KEY_ENTER&device=xxx来控制你的家电啦!(其中,KEY_ENTER和xxx需要根据自己的情况进行相应的替换,请参考上一篇文章)

进阶

这个时候你可以写一个简单的Web界面,包含一些描述和开关按钮,只需要把开或关的按钮链接到上述的URL,就可以利用网页来对家里的简易电器进行开和关的操作了!本文就不做太细致的描述了。

利用手机APP对家里电器进行控制

利用手机APP控制家电基本原理和上述的差不多,只是GUI从Web网页变成了手机APP。然而如果你像挨踢小茶一样没有太多手机APP的开发经验的话,也可以利用别人开发好的来使用。比如苹果上可以使用iControl Web,安卓也可以使用类似的软件。之后,根据软件介绍中的,对配置文件进行定义,比方说第一页的Light开关的on键,是链接到http:///cmd.php?cmd=KEY_ENTER&device=xxx的,这样就可以了。

挨踢小茶也录了一个简单的视频,抛砖引玉了,前面一部分拍得比较暗,请不要见怪!

http://v.youku.com/v_show/id_XMTM4ODE5ODY0MA==.html?from=y1.7-1.2

后面将会在使用树莓派(Raspberry Pi)实现智能家居(4/4)中给大家介绍,如何使用语音来控制家里电器(类似Siri)!

irsend 树莓派 php,使用树莓派(Raspberry Pi)实现智能家居(3/4)相关推荐

  1. 35美元最小电脑树莓派windows10初体验 raspberry pi 2 win10

    下面是体验视频 35美元最小电脑树莓派windows10初体验 raspberry pi 2 win10

  2. 物联网开发笔记(69)- 使用Micropython开发树莓派pico开发板raspberry pi pico之控制晶联JLX172104G-590液晶模块

    一.目的 这一节我们学习如何使用我们的树莓派pico开发板raspberry pi pico来控制晶联JLX172104G-590液晶模块. 二.环境 Win10 + 树莓派pico开发板raspbe ...

  3. 树莓派开发笔记(二)搭建智能家居系统(1) — Home Bridge + Home Assistant

    搭建智能家居系统 搭建智能家居系统(1) 介绍 软件安装 简便安装 Home Assistant Home Bridge Home Bridge - Home Assistant 相关配置 HASS ...

  4. 树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇二:初步配置 Home Assistant 并连接小米设备与 HomeKit

    树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇二:初步配置 Home Assistant 并连接小米设备与 HomeKit 通过本篇教程,你将完成对 H ...

  5. 树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇三:进阶配置 Home Assistant

    树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇三:进阶配置 Home Assistant 通过本篇教程,你将完成对 Home Assistant 的进一 ...

  6. 树莓派3初始化安装(Raspberry Pi III)

    1 树莓派3 树莓派3代B型64位1.2GHz Raspberry Pi 3B四核A53带WIFI蓝牙,速度比较快.有两个版本.RS英国,国产Element14:这两个版本都挺好. 有4个usb,1个 ...

  7. 【树莓派】快速上手Raspberry Pi 4B——组装硬件烧录系统

    目录 一.树莓派简介 二.购置硬件 必备硬件 推荐硬件 主板 电源 Micro SD卡 显示屏 外壳.风扇.散热片 三.烧录系统 Raspbian Windows 烧录后操作 启动分区精简(可选) 超 ...

  8. 【树莓派-入门】树莓派Zero W利用Raspberry Pi Imager烧录系统+开机连接(2022-04-04 Raspberry Pi OS Bullseye)

    文章目录 前言 格式化内存卡 (1)删除磁盘分区 (2)新建简单卷 (3)格式化 方法一:用 Raspberry Pi Imager 安装 Raspberry Pi OS 1.选择OS和SD卡 2.进 ...

  9. 树莓派开发笔记(三)搭建智能家居系统(2) — Home Bridge + Home Assistant

    搭建智能家居系统 搭建智能家居系统(2) 添加设备 Command Line 传感器组件 Scrape Sensor 组件 小米设备接入 Zigbee 设备(网关类设备) Yeelight 灯具 Wi ...

最新文章

  1. 屏蔽Xcode 8“烦人”的日志输出
  2. 344. 反转字符串 golang
  3. python 获取当前目录_如何在Python中获取当前的工作目录?
  4. Python基础教程笔记——条件,循环和其他语句
  5. 如何使用modelarts训练海量数据
  6. ACM/CF赛制getstart模板
  7. hive中使用case、if:一个region统计业务(hive条件函数case、if、COALESCE语法介绍:CONDITIONAL FUNCTIONS IN HIVE)...
  8. CVPR2021论文整理
  9. 安全运维 - Windows系统维护
  10. leetcode刷题日记-846. 一手顺子
  11. 计算机教室配套,中小学标准音乐教室建设及设备配套方案
  12. java监控网卡流量_流量监控脚本监控网卡
  13. Openv*n配置和单网卡转发
  14. 游戏图形引擎中 Shader Systen 的设计
  15. Hadoop_MapperContextInputSplitFileSplit源码浅析
  16. 一条互联网广告多少钱?
  17. ARFoundation系列讲解 - 80 AR内容制作一
  18. 整理了百大框架排行榜
  19. 开发一个可以查询并显示数据库内容的微信小程序
  20. Opencv去除高光

热门文章

  1. XXL-Job动态添加任务
  2. 深入解析:如何修复SSL / TLS握手失败错误(上)
  3. 推荐两个实用的视频解析工具
  4. 如何从零开始搭建服务器
  5. 蓝海卓越计费管理系统 debug.php 远程命令执行漏洞
  6. 每日一题.每日一练 .6.水壶问题(写完感觉自己能去讲课版)
  7. java如何根据模板填充数据生成word文档
  8. java计算机毕业设计师生教学评价系统源码+系统+数据库+lw文档+mybatis+运行部署
  9. 计算机 桌面显示桌面图标不见了,桌面快捷方式不见了,显示桌面图标不见了-
  10. kernel编译步骤解析