irsend 树莓派 php,使用树莓派(Raspberry Pi)实现智能家居(3/4)
继上次文章使用树莓派(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)相关推荐
- 35美元最小电脑树莓派windows10初体验 raspberry pi 2 win10
下面是体验视频 35美元最小电脑树莓派windows10初体验 raspberry pi 2 win10
- 物联网开发笔记(69)- 使用Micropython开发树莓派pico开发板raspberry pi pico之控制晶联JLX172104G-590液晶模块
一.目的 这一节我们学习如何使用我们的树莓派pico开发板raspberry pi pico来控制晶联JLX172104G-590液晶模块. 二.环境 Win10 + 树莓派pico开发板raspbe ...
- 树莓派开发笔记(二)搭建智能家居系统(1) — Home Bridge + Home Assistant
搭建智能家居系统 搭建智能家居系统(1) 介绍 软件安装 简便安装 Home Assistant Home Bridge Home Bridge - Home Assistant 相关配置 HASS ...
- 树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇二:初步配置 Home Assistant 并连接小米设备与 HomeKit
树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇二:初步配置 Home Assistant 并连接小米设备与 HomeKit 通过本篇教程,你将完成对 H ...
- 树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇三:进阶配置 Home Assistant
树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇三:进阶配置 Home Assistant 通过本篇教程,你将完成对 Home Assistant 的进一 ...
- 树莓派3初始化安装(Raspberry Pi III)
1 树莓派3 树莓派3代B型64位1.2GHz Raspberry Pi 3B四核A53带WIFI蓝牙,速度比较快.有两个版本.RS英国,国产Element14:这两个版本都挺好. 有4个usb,1个 ...
- 【树莓派】快速上手Raspberry Pi 4B——组装硬件烧录系统
目录 一.树莓派简介 二.购置硬件 必备硬件 推荐硬件 主板 电源 Micro SD卡 显示屏 外壳.风扇.散热片 三.烧录系统 Raspbian Windows 烧录后操作 启动分区精简(可选) 超 ...
- 【树莓派-入门】树莓派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.进 ...
- 树莓派开发笔记(三)搭建智能家居系统(2) — Home Bridge + Home Assistant
搭建智能家居系统 搭建智能家居系统(2) 添加设备 Command Line 传感器组件 Scrape Sensor 组件 小米设备接入 Zigbee 设备(网关类设备) Yeelight 灯具 Wi ...
最新文章
- 屏蔽Xcode 8“烦人”的日志输出
- 344. 反转字符串 golang
- python 获取当前目录_如何在Python中获取当前的工作目录?
- Python基础教程笔记——条件,循环和其他语句
- 如何使用modelarts训练海量数据
- ACM/CF赛制getstart模板
- hive中使用case、if:一个region统计业务(hive条件函数case、if、COALESCE语法介绍:CONDITIONAL FUNCTIONS IN HIVE)...
- CVPR2021论文整理
- 安全运维 - Windows系统维护
- leetcode刷题日记-846. 一手顺子
- 计算机教室配套,中小学标准音乐教室建设及设备配套方案
- java监控网卡流量_流量监控脚本监控网卡
- Openv*n配置和单网卡转发
- 游戏图形引擎中 Shader Systen 的设计
- Hadoop_MapperContextInputSplitFileSplit源码浅析
- 一条互联网广告多少钱?
- ARFoundation系列讲解 - 80 AR内容制作一
- 整理了百大框架排行榜
- 开发一个可以查询并显示数据库内容的微信小程序
- Opencv去除高光
热门文章
- XXL-Job动态添加任务
- 深入解析:如何修复SSL / TLS握手失败错误(上)
- 推荐两个实用的视频解析工具
- 如何从零开始搭建服务器
- 蓝海卓越计费管理系统 debug.php 远程命令执行漏洞
- 每日一题.每日一练 .6.水壶问题(写完感觉自己能去讲课版)
- java如何根据模板填充数据生成word文档
- java计算机毕业设计师生教学评价系统源码+系统+数据库+lw文档+mybatis+运行部署
- 计算机 桌面显示桌面图标不见了,桌面快捷方式不见了,显示桌面图标不见了-
- kernel编译步骤解析