LINUX实 *** :如何用树莓派控制 GOIO 引脚并 *** 作继电器

LINUX实 *** :如何用树莓派控制 GOIO 引脚并 *** 作继电器,第1张

概述介绍《LINUX实 *** :如何用树莓派控制 GOIO 引脚并 *** 作继电器》开发教程,希望对您有用。

《liNUX实 *** :如何用树莓派控制 GOIO 引脚并 *** 作继电器》要点:
本文介绍了liNUX实 *** :如何用树莓派控制 GOIO 引脚并 *** 作继电器,希望对您有用。如果有疑问,可以联系我们。

学习如何用 PHP 和温度传感器实现树莓派控制 GPIO 并 *** 作继电器,你是否曾经想知道怎样使用手机或者电脑在任何处所控制你的风扇和灯等一些家用电器?

我现在想控制我的圣诞彩灯,是使用手机呢,还是使用平板电脑呢,或者是使用笔记本电脑呢?都不是,而是仅仅使用一个树莓派.让我来奉告你如何使用 PHP 和温度传感器实现树莓派控制 GPIO 引脚并 *** 作继电器.我使用 AJAX 把它们整合在了一起.

 

硬件要求:树莓派安装有 Raspbian 系统的 SD 卡(任何一张 SD 卡都可以,但是我更偏向使用大小为 32GB 等级为 class 10 的 SD 卡)电源适配器跳线(母对母跳线和公转母跳线)继电器板(我使用一个用于 12V 继电器的继电器板)DS18B20 温度传感器树莓派的 Wi-Fi 适配器路由器(为了拜访互联网,你需要有一个拥有端口转发的路由器)10KΩ 的电阻@H_502_38@

 

软件要求:下载并安装 Raspbian 系统到你的 SD 卡有效的互联网衔接Apache web 服务器PHPwiringpi基于 Mac 或者 windows 的 SSH 客户端@H_502_38@

 

一般的配置和设置

1、 插入 SD 卡到树莓派,然后使用以太网网线将它衔接到路由器;

2、 衔接 WiFi 适配器;

3、 使用 SSH 方式登录到树莓派,然后使用下面的命令编纂 interfaces 文件:

@H_419_72@sudo@H_419_72@nano/etc/network/interfaces

这个命令会用一个叫做 nano 的编纂器打开这个文件.它是一个非常简单又易于使用的文本编纂器.如果你不熟悉基 linux 的 *** 作系统,可以使用键盘上的方向键来 *** 作.

nano 打开这个文件后,你会看到如许一个界面:

file editor nano

4、要配置你的无线网络,依照下面所示修改这个文件:

iface lo inet loopbackiface eth0 inet dhcpallow-hotplug wlan0@H_419_72@auto wlan0iface wlan0 inet dhcpwpa-ssID "Your Network SSID"wpa-psk "Your Password"

5、 按 CTRL+O 保留,然后按 CTRL+X 退出编辑器.

到目前为止,一切都已经配置完成,接下来你必要做的就是使用命令重新加载网络:

@H_419_72@sudo service networking reload

(警告:如果你是使用长途连接的方式连接的树莓派,连接将会中断.)

 

软件设置装备摆设

 

安装 Apache web 服务器

Apache 是一个受欢迎的服务器应用,你可以在树莓派安装这个法式让它提供网页服务.Apache 原本就可以通过 http 方式提供 HTML 文件服务,添加其他模块后,Apache 还可以使用像 PHP 这样的脚本语言来提供动态网页的服务.

可以在敕令行输入下面敕令安装 Apache:

@H_419_72@sudo@H_419_72@apt-get install apache2 -y

安装完成后,可以在浏览器地址栏输入树莓派的 IP 地址来测试 web 服务器.如果你可以获得下面图片的内容,阐明你已经成功地安装并设置好了你的服务器.

Successful server setup

要改变这个默认的页面和添加你本身的 HTML 文件,进入 var/www/HTML 目录:

@H_419_72@cd/@H_419_72@var/www/HTML

添加一些文件来测试是否胜利.

 

安装 PHP

PHP 是一个预处理器,这意味着它是当服务器收到网页哀求时才会运行的一段代码.它开始运行,处理网页上需要被显示的内容,然后把网页发送给浏览器.不像静态的 HTML,PHP 在不同的环境下可以显示不同的内容.其他的语言也可以做到这一点,但是由于 wordpress 是用 PHP 编写的,有些时候你需要使用它.PHP 是 web 上一种非常受欢迎的语言,像 Facebok 和 Wikipeadia 这样的大型项目都是用 PHP 编写的.

使用下面的敕令安装 PHP 和 Apache 软件包:

@H_419_72@sudo@H_419_72@apt-get install PHP5 libapache2-mod-PHP5 -y

 

测试 PHP

创立文件 index.PHP

@H_419_72@sudo@H_419_72@nano index.PHP

在里面写入一些 PHP 内容:

<?PHP @H_419_72@echo"hello world";?>

保留文件,接下来删除 index.HTML,因为它比 index.PHP 的优先级更高:

@H_419_72@sudo@H_419_72@rm index.HTML

刷新你的浏览器,你会看到 “hello world”.这并不是动态的,然则它仍然由 PHP 提供服务.如果你在上面看到提原始的 PHP 文件而不是“hello world”,重新加载和重启 Apahce(LCTT 译注,重启即可):

 

安装 wiringpi

为了可以对代码的变动进行跟踪,wiringpi 的维护采用 git.但假如你因为某些原因而没法使用 git,还有一种可以替代的方案.(通常你的防火墙会把你隔离开来,所以请先检查一下你的防火墙的设置情况!)

如果你还没有安装 git,那么在 Debian 及其衍生版本中(好比 Raspbian),你可以这样安装它:

@H_419_72@sudo@H_419_72@apt-get install @H_419_72@git-core

若是你遇到了一些差错,请确保你的树莓派是最新版本的 Raspbian 系统:

@H_419_72@sudo@H_419_72@apt-get update @H_419_72@sudo@H_419_72@apt-get upgrade

使用 git 获取最 wiringpi:

@H_419_72@sudo@H_419_72@git@H_419_72@clone@H_419_72@git://git.drogon.net/wiringpi

如果你之前已经使用过 clone *** 作,那么可以使用下面敕令:

@H_419_72@cd wiringpi &&@H_419_72@git pull origin

这个命令会将会获取更新的版本,你然后可以重新运行下面的构建剧本.

有一个新的简化的脚原来构建和安装:

@H_419_72@cd wiringpi &&./build

这个新的构建脚本将会为你完成编译和安装 wiringpi.它曾一度必要使用 sudo 命令,所以在运行这它之前你可能必要检查一下这个脚本.

 

测试 wiringpi

运行 gpio 命令来检查安装胜利与否:

gpio -v gpio readall

这将给你一些信心,软件运行优越.

 

衔接 DS18B20 传感器到树莓派传感器上的黑线用于 GND.红线用于 VCC.

黄线是 GPIO 线.

@H_502_38@

GPIO image

连线:

VCC 衔接 3V 的 1 号引脚.GPIO 线衔接 7 号引脚(GPIO4).地线衔接 GND 的 9 号引脚.@H_502_38@

 

软件配置

为了用 PHP 使用 DS18B20 温度传感器模块,你必要执行下面的命令来激活用于树莓派上 GPIO 引脚和 DS18B20 的内核模块:

@H_419_72@sudo@H_419_72@modprobe w1-gpio@H_419_72@sudo@H_419_72@modprobe w1-therm

你不想每次 RaspBerry 重启后都手动执行上述敕令,所以你想每次开机能自动启动这些模块.可以在文件 /etc/modules 中添加下面的敕令行来做到:

@H_419_72@sudo@H_419_72@nano/etc/modules/

添加下面的敕令行到它里面:

w1-gpiow1-therm

为了测试,输入:

@H_419_72@cd/sys/bus/w1/devices/

如今输入 ls.

你会看到你的设备信息.在设备驱动程序中,你的 DS18B20 传感器应该作为一串字母和数字被列出.在本例中,设备被记录为 28-000005e2fdc3.然后你需要使用 cd 命令来拜访传感器,用你自己的序列号替代我的: cd 28-000005e2fdc3.

DS18B20 会周期性的将数据写入文件 w1_slave,所以你只必要使用命令 cat来读出数据: cat w1_slave.

这会生成下面的两行文本,输出中 t= 表现摄氏单位的温度.在前两位数后面加上一个小数点(例如,我收到的温度读数是 30.125 摄氏度).

 

连接继电器

1、 取两根跳线,把此中一根连接到树莓派上的 GPIO24(18 号引脚),另一根连接 GND 引脚.你可以参考下面这张图.

2、 现在将跳线的另一端衔接到继电器板.GND 衔接到继电器上的 GND,GPIO 输出线衔接到继电器的通道引脚号,这取决于你正使用的继电器型号.记住,将树莓派上的 GND 与继电器上的 GND 衔接衔接起来,树莓派上的 GPIO 输出衔接继电器上的输入引脚.

headers

注意!将继电器连接树莓派的时候当心一些,因为它可能会导致电流回流,这会造成短路.

3、 现在将电源衔接继电器,可以使用 12V 的电源适配器,也可以将 VCC 引脚衔接到什么破上的 3.3V 或 5.5V 引脚.

 

使用 PHP 控制继电器

让我们先写一个借助于 wiringpi 软件用来控制 PaspBerry Pi 上 GPIO 引脚的 PHP 剧本.

1、在 Apache 服务器的网站根目录下创立一个文件,使用下面命令切换到该目录:

@H_419_72@cd/@H_419_72@var/www/HTML

2、 新建一个叫 Home 的文件夹:

@H_419_72@sudo@H_419_72@mkdirHome

3、 新建一个叫 on.PHP的剧本

@H_419_72@sudo@H_419_72@nano on.PHP

4、 在脚本中参加下面的代码:

<?PHPsystem("gpio-g mode 24 out");system("gpio-g write 24 1");?>

5、 使用 CTRL+O 保留文件,CTRL+X 退出.

上面的代码中,你在第一行使用敕令将 24 号 GPIO引脚设置为 output 模式:

system("gpio-g mode 24 out");

在第二行,你使用 1 将 24 号引脚 GPIO 打开,在二进制中"1"表现打开,"0"表现关闭.

6、 为了关闭继电器,可以创立另外一个 off.PHP 文件,并用 0 替换 1.

<?PHPsystem(" gpio-g mode 24 out ");system(" gpio-g write 24 1 ");?>

7、 如果你已经将继电器连接了树莓派,可以在浏览器中输入你的树莓派的 IP 地址,并在后面加上目录名和文件名来进行拜访:

http://{IPADDRESS}/home/on.PHP

这将会打开继电器.

8、 要关闭它,可以拜访叫 off.PHP 的文件:

http://{IPADDRESS}/home/off.PHP

现在你需要能够在一个单独的页面来控制这两样事情,而不用单独的刷新或者拜访这两个页面.你可以使用 AJAX 来完成.

9、 新建一个 HTML 文件,并在其中参加下面代码:

<HTML><scriptsrc="https://AJAX.GoogleAPIs.com/AJAX/libs/jquery/1.11.3/jquery.min.Js"></script><scripttype="text/JavaScript">// <![cdaTA[$(document).ready(@H_419_72@function(){$('#on').click(@H_419_72@function(){@H_419_72@var a=@H_419_72@newXMLhttpRequest();a.open("GET","on.PHP"); a.onreadystatechange=@H_419_72@function(){@H_419_72@if(a.readyState==4){
@H_419_72@if(a.status ==200){
}@H_419_72@else alert ("http error");
}
}
@H_403_1079@a.send();});});$(document).ready(@H_419_72@function(){
$('#Off').click(@H_419_72@function(){
@H_419_72@var a=@H_419_72@newXMLhttpRequest();a.open("GET","off.PHP");a.onreadystatechange=@H_419_72@function(){@H_419_72@if(a.readyState==4){@H_419_72@if(a.status ==200){@H_403_1079@}@H_419_72@else alert ("http error");
}
}
a.send();});});</script><button ID="on" type="button"``Switch lights On </button><button ID="off" type="button"``Switch lights Off </button>

10、 保留文件,进入你的 web 浏览器目录,然后打开那个网页.你会看到两个按钮,它们可以打开和关闭灯泡.基于同样的想法,你还可以使用 bootstrap 和 CSS 来创建一个更加漂亮的 web 界面.

 

在这个网页上察看温度

1、 新建一个 temperature.PHP 的文件:

@H_419_72@sudo@H_419_72@nano temperature.PHP

2、 在文件中加入下面的代码,用你本身的设备 ID 替换 10-000802292522

<?PHP//file to read$file ='/sys/devices/w1_bus_master1/10-000802292522/w1_slave';//Read the file line by line$lines =@H_419_72@file($file);//Get the temp from second line$temp = explode('=', $lines[1]);//Setup some nice formatting (i.e.,21,3)$temp = number_format($temp[1]/1000,1,',','');@H_403_1079@//And echo that temp@H_419_72@echo $temp ." °C";?>

3、 打开你刚刚创立的 HTML 文件,并创立一个新的带有 ID 为 “screen” 的 <div>标签

<divID="screen"></div>

4、 在这个标签后或者这个文档的尾手下面的代码:

<script>$(document).ready(@H_419_72@function(){setInterval(@H_419_72@function(){$("#screen").load('temperature.PHP')},1000);});</script>

此中,#screen 是标签 <div>ID,你想在它里面显示温度.它会每隔 1000 毫秒加载一次 temperature.PHP 文件.

我使用了 bootstrap 框架来制作一个漂亮的面板来显示温度,你还可以参加多个图标和图形让网页更有吸引力.

这只是一个控制继电器板并显示温度的基础的系统,你可以通过创建基于定时和从恒温器读数等基于变乱触发来进一步地对系统进行开发.

( 题图:opensource.com)

作者简介:

Abdul Hannan Mustajab: 我 17 岁,生活在印度.我正在追求科学,数学和计算机科学方面的教育.我在 spunkytechnology.com 上颁发关于我的项目的博客.我一直在对使用不同的微控制器和电路板的基于物联网的 AI 进行研究.

via: https://opensource.com/article/17/3/operate-relays-control-gpio-pins-raspBerry-pi

作者:Abdul Hannan Mustajab 译者:zhousiyu325 校对:wxy

本文由 LCTT 原创编译,linux中国 荣誉推出

本文永远更新链接地址

内存溢出培训学院每天发布《liNUX实 *** :如何用树莓派控制 GOIO 引脚并 *** 作继电器》等实战技能,PHP、MysqL、liNUX、APP、Js,CSS全面培养人才。

总结

以上是内存溢出为你收集整理的LINUX实 *** :如何用树莓派控制 GOIO 引脚并 *** 作继电器全部内容,希望文章能够帮你解决LINUX实 *** :如何用树莓派控制 GOIO 引脚并 *** 作继电器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1041719.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存