历史上的今天
返回首页

历史上的今天

今天是:2025年03月08日(星期六)

2019年03月08日 | 技术文章—教你使用树莓派控制灯

2019-03-08

最近正在研究微控制器和基于物联网的设备安全。因此,我开始考虑建立一个小型家庭系统化系统,虽然目前还没完成,但我想先在文章中分享一下我如何使用树莓派2及一些其他电子元件来控制房间的灯光。当然,我在这里不会介绍树莓派的初始设置,因为你可以在网上发现各种各样的教程。


注意事项

在我们继续实验之前,我想有必要提醒一下关于实验中“电流”的危险性。一旦出现任何状况,最糟糕的情况就是死掉或者烧了你的房子。所以,请不要试图完成任何文中提到但是你不理解事情,或者你可以在制作的时候寻求一些有经验的电工的帮助。

好啦,让我们开始DIY吧!

实验准备

硬件需求


1、树莓派2(或者任何5V输出功率的型号,均可)

2、USB无线软件狗

3、8路继电器

4、一些Female-Female跳线(40 PCS FEMALE TO FEMALE JUMPER WIRES)

5、灯头电线

(以上硬件,某宝均有销售)


其他要求


1、了解基本Python语言或者其他任何语言(我会用到Python)

2、对Linux系统有基本了解

3、专心致志


流程要求


首先,用ssh链接到树莓派上,并安装“apache”和“php5”:

你会需要安装python的GPIO库来控制树莓派的GPIO插脚:


了解元件


现在,在我们继续制作之前,你需要了解一下我们将使用到的电子元件。


1、继电器


继电器是一种使用非常低的电压输入控制高压电的电气设备。由一个线圈缠绕的金属杆和两个小型金属节点构成的闭合电路。其中一个节点是固定的,其他的都是可移动的。无论何时,当电流通过线圈的时候,它会产生一个磁场,吸引可移动节点向静态节点运动,形成电路。通过给线圈供应小额电压,我们就能完成高压电路的轮回。同时,静态节点并非在物理上与线圈有联系,因此一旦有地方出错,微控制器驱动的线圈也很少出现故障。



试验中,我使用一个8路继电器,可以同时控制8个设备。你可以选择自己的继电器或者继电板,但是请确保你在继电器的额定电压之内处理,以避免任何事故的发生。


2、跳线


跳线就是我们链接树莓派GPIO插脚与继电器的简单连接电线。

3、树莓派2


我们使用树莓派2作为一个微控制器来操纵继电器。它有40个GPIO(通用输入/输出)插脚。你可以看到下面这些插脚的布局,我们将使用这些接口为继电器加电和控制开关。



连接电路


电路非常简单。我们将连接GPIO插脚到继电板上。首先连接继电器板上的“GND”与树莓派上的任意“GND”。然后链接继电器的“IND1”到GPIO PIN 17,我们会把GPIO PIN 17作为一个控制第一继电器的输出。最后,将继电器的“VCC”连接到树莓派的“5V”GPIO插脚。让我们简单直接设置一下:



现在我们到了最为棘手的部分,我们要将继电器连接到接通主电路供电的灯头上。但是,我想先给你介绍一个如何通过直流屏电源开启及关闭灯光的简单操作。


我们通常连接两根电线到灯泡上,来提供电流供给。其中一根电线是“中性”电线,另一根则是实际带着电流的“负极”电线,同样的这里也有一个控制整个电路的开关。因此,当开关(闭合)连接到流经灯泡的电流和负极电线时,电路便完整了。灯泡从而亮了起来。当开关(断开),破坏了电路和灯泡的电流,因此灯泡不亮。这里有一个小的电路图来解释具体情况:

当我们在试验中,我们需要“负极电线”通过我们的继电器来打破电路,从而使用继电器开关的控制流经的电流。因此,当继电器打开,在闭合电路中灯泡也应该亮起来,反之亦然。请参考一下完整的电路:


控制脚本


现在,终于到了软件的部分。我编写了一个简单的python脚本来控制继电器开关,使用了GPIO PIN 17和一个PHP代码可以在任何移动终端上面来运行python脚本。你可以从我的Github(和CSS)上找到这段代码。



注意:你将会需要添加“www-data”用户到sudoers文件。


注意+:PHP代码只是为了测试,我们不建议在公共环境中运行。


不久我将完成这个设置,希望回来更新一个新的帖子。请在那时之前,自己动手试一下这个控制灯,但是一定要注意安全。


推荐阅读

史海拾趣

福声科技(FUET)公司的发展小趣事

福声科技(FUET)的初创可以追溯到几年前,当时电子产业正蓬勃发展,对高质量电声元器件的需求日益增长。公司创始人凭借在电声领域的深厚积累,决定成立一家专注于电声产品研发、生产和销售的企业。初期,福声科技聚焦于贴片式无源蜂鸣器、高分贝报警器等产品,凭借其高性价比和稳定的性能,迅速在家电、移动通讯设备等领域获得市场认可,为公司的后续发展奠定了坚实基础。

Hmc Inc公司的发展小趣事

“Global Memory Tech”公司在HMC技术的研发过程中,深刻认识到国际合作的重要性。该公司积极与全球各地的科研机构、高校和行业标准组织合作,共同推动HMC技术的标准化进程。通过不懈努力,Global Memory Tech成功推动了HMC相关标准的制定,为HMC技术的广泛应用奠定了坚实基础。同时,该公司还通过技术授权和合作生产的方式,与多家国际企业建立了紧密的合作关系。

EFINIX公司的发展小趣事

EFINIX公司继续深化其在FPGA领域的技术创新,成功推出了Trion FPGA产品系列。该产品具有低功耗、精细封装面积和强大的性能特点,深受市场欢迎。在Trion FPGA产品销售的头三个月里,EFINIX公司获得了多项设计认可和客户订单,并有很多客户已经开始使用Trion FPGA进行产品设计。

Corstat Containers公司的发展小趣事

为了进一步拓展国际市场,Corstat Containers公司积极寻求与国际知名电子企业的合作。通过参加国际电子展会、建立海外销售渠道等方式,公司成功打开了多个国家的市场。同时,公司还与国外科研机构展开合作,共同研发更加先进的电子产品包装技术,为公司的长期发展奠定了坚实的基础。

GTE Microcircuits公司的发展小趣事
实现高频性能需要关注放大器的带宽和转换速率(Slew Rate)等参数。选择具有宽带宽和高转换速率的放大器是基础。此外,优化电路布局,减少寄生电容和电感的影响,以及采用适当的频率补偿技术也是提高高频性能的关键。
Eby Electro Inc公司的发展小趣事

随着公司规模的扩大和产品质量的提升,Eby Electro Inc开始寻求拓展国际市场。公司积极参加国际电子产品展览,与国际知名企业建立合作关系,将产品销往全球各地。在国际市场的竞争中,Eby Electro Inc凭借卓越的产品质量和良好的售后服务,赢得了客户的信赖和好评。同时,公司也积极学习国际先进的管理经验和技术,不断提升自身的竞争力。

问答坊 | AI 解惑

TMIGS隧道多元信息预警与安全管理系统

TMIGS系统是由北京交通大学、北京市市政工程研究院、北京索通紫蜂通讯工程技术有限公司联合研制。该系统具有卓越的性能,配套专业化软件,适用于各种地下工程的施工监测与管理。它集多元信息(钢弦式频率类、电流电压类、开关量、数字信号类、声音 ...…

查看全部问答>

基于AT89S52单片机的LED点阵显示屏控制系统的设计

基于AT89S52单片机的LED点阵显示屏控制系统的设计…

查看全部问答>

430的下载器,用的时候供电么?

430的下载器,用的时候供电么?我怎么下不进程序,可是能仿真。为啥??…

查看全部问答>

一个网络编程方面的问题,connect()老是报错,请高手帮忙!

客户端程序每次都提示下面的错误,不知道是什么原因: -> socket_client addr: 192.168.10.34 create socket OK!!!!!!! : OK connect error: S_errno_EHOSTUNREACH value = -1 = 0xffffffff 下面是客户端的代码: #include #include #i ...…

查看全部问答>

大家写的芯片驱动代码如何测试?

我专门做fpga的芯片驱动代码,但是我代码写好了,但是芯片fpga还没有写完。 是否有什么方法可以验证我写的代码 写reg是否正确? 大家一般是如何测试的?…

查看全部问答>

请教这几个电阻的作用

1、请问第二级运放的两个15K电阻在此图中起的是什么作用,是否是为第二级运放提供偏置? 2、第二级运放是否为反向比列运算? 2.图中标号3都接地,若要使量输入端电阻对称,第二级运放的同相输入端应加多大的电阻后接地,这个电阻是否是R1||R2||R3 ...…

查看全部问答>

关于使用8-bits D/A(DAC0808.digital-to-analog).数字和模拟信号转换接口编程

我现在有一个问题.如果eeworld的前辈能指教的话.我很感激.数字和模拟信号转换接口编程: 就是如何设计数字和模拟信号转换机器的.使用8-bits D/A(DAC0808.digital-to-analog). 信号发生器有三种波形.是正弦波.矩形波,三角波.使用switch来输入0001,0 ...…

查看全部问答>

请大家帮忙看看这个程序

    我在线调试C51的外部中断时,外部中断1怎么就是跳不出去呢?当INT1发生时,就一直循环着INT1,不再回到主程序了。下面是整个儿程序的代码(谢谢啦) #include #define LED P0 void delay(int); main() { unsigned char i; ...…

查看全部问答>

mini2440 官方5.0bsp 移植dm9000 驱动的问题

现在移植dm9000到mini2440  发现能够识别到id 但是我从台式机上ping开发板ping不通。用的驱动是mini2440 自带的dm9000驱动  各位觉得是什么原因呢,是中断没弄好吗  我发现在5.0的bsp包中关于中断的enable.done disa ...…

查看全部问答>

wince 5.0 不能播放FLASH网页?该怎么做?

WINCE5.0,三星2440 CPU,已安装了Macromedia Flash Player 7 for Pocket PC,安装成功,但不能在IE播放FLASH动画网页,浏览动画网页FLASH处空白,请高手帮助,万分感谢!…

查看全部问答>