完成这项有趣的实验,你所需要的材料有:

其实也可以改造220V风扇,但是比较复杂,需要多一个继电器,我们下一篇讲改造台灯的时候会说到。建议开始之前先阅读上一篇文章:Python利用智能音箱语音控制电脑开关机 你会得到控制流程的整体思路。

首先是改造风扇,利用树莓派控制开关,我们的改造对象:

完成这项有趣的实验,你所需要的材料有:1.电烙铁

2.一个8050三极管

3.一个路由器

4.一个树莓派

5.一个智能音箱 (我使用的是亚马逊 Echo Dot2)

6.一个普通的5V风扇

其实也可以改造220V风扇,但是比较复杂,需要多一个继电器,我们下一篇讲改造台灯的时候会说到。

首先是改造风扇,利用树莓派控制开关,我们的改造对象:

像这种风扇,内部电路其实就是一个开关,它使用USB连接的5V电压,其实和树莓派的5V是一样的。所以我们可以直接使用树莓派供电。但是怎么样才能控制它开关呢?这时候我们就需要8050三极管了。

如图所示,从8050的正面(平)的这一面看过去,三极管中间的那一根即b可以作为控制端,我们可以将它连接到树莓派上的GPIO口,三极管的原理我们可以先跳过,大致先这样理解:当b端为低电平时,电路不通;当b端为高电平时,电路连通;因此,通过控制GPIO口的高低电平便能控制它的开关。我们放弃它原先的电路,使用三极管作为一个新的开关电路,如下图所示,树莓派的5V接风扇,出来后接三极管,然后接负极,b端接GPIO的第12号口,如图所示。

这样,我们通过树莓派控制Pin12#的高低电平就能控制风扇的开关。现实版焊接如图所示(没错,红色的不用管,只是线不够长我又延长了,黑色那块就是三极管,棕色那条是控制端,接树莓派的PIN12#):

进去后,只要把正负连线分别焊接到风扇的正负极即可,如图(其实我这个甚至不用焊,直接连到风扇的正负极就可以了,焊接是怕它掉下来):

大家如果心里没底,可以先用个LED灯接个电阻试一下三极管的控制,成功后就可以大胆上了!

下面是我们的控制代码GPIO12.py:# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO

import time

import sys

# BOARD编号方式,基于插座引脚编号

GPIO.setmode(GPIO.BOARD)

# 输出模式

GPIO.setup(12, GPIO.OUT)

def turnOn():

GPIO.output(12, GPIO.HIGH)

def turnOff():

GPIO.output(12, GPIO.LOW)

if sys.argv\[1\] == 'on':

turnOn()

elif sys.argv\[1\] == 'off':

turnOff()

文件接收一个参数即 on 或 off. 当参数是on的时候,运行turnOn函数,向pin12#发送高电平,风扇开启。off的时候,则执行turnOff函数,向pin12#发送低电平,风扇关闭。

前面我们已经讲过如何用树莓派控制风扇的开关,接下来是语音控制部分。

在上一篇推送中《利用智能音箱语音控制电脑开关机》我已经介绍了模拟WEMO智能家居软件Fauxmo是如何和亚马逊Echo dot2一起工作的,所以我们这里就不再介绍了,大家如果不理解,可以仔细琢磨一下上一篇推送。

根据前面的代码,我们知道控制风扇开关的是一个Python文件,那么我们可以以这样的逻辑思路完成语音控制。“echo, turn on the fan” -> Echo -> 向树莓派发送指令,执行Python文件,向Pin12#输出高电平,风扇启动

“echo, turn off the fan” -> Echo -> 向树莓派发送指令,执行Python文件,向Pin12#输出低电平,风扇关闭

因此在这里,我们可以继续使用之前提到的commandlineplugin.py文件。音箱收到指令后便查找有没有一个叫 fan 的设备,然后发现(树莓派上)有这样一个设备,便让它通过commandlineplugin.py执行一个文件(GPIO12.py on/off)。

在config.json的PLUGINS下添加下面的代码,注意,port可以随意设置,只要不重复就可以了,Fan 是音箱识别的名字,如果你把它改成baby,那就要 turn on (the) baby 才执行,GPIO12.py你可以放在任何你想要的位置,只要执行的时候写清楚即可,另外如前面所述,文件后面记得写上传递给它的参数。"MyLight": {

"path": "/home/pi/Documents/fauxmo/src/fauxmo/plugins/commandlineplugin.py",

"DEVICES": [

{

"name": "Fan",

"port": 49918,

"on_cmd": "python2 /home/pi/Documents/Automatic/GPIO12.py on",

"off_cmd": "python /home/pi/Documents/Automatic/GPIO12.py off",

"state_cmd": ""

}

]

}

大功告成,重启fauxmo, 然后试试echo, turn on the fan. 你会发现风扇成功运转起来了。如果你是使用的其他智能音箱,请注意,Fauxmo只适用于Echo, 你可以找一个适合于你的智能音箱的,并能让你的树莓派模拟智能家居的工具。

风扇只是牛刀小试,下一篇我们将改造台灯,那才是真正的大工程。

我们的文章到此就结束啦,如果你希望我们今天的Python 教程,请持续关注我们,如果对你有帮助,麻烦在下面点一个赞/在看哦

有任何问题都可以在下方留言区留言,我们都会耐心解答的!

Python实用宝典 (pythondict.com)

不只是一个宝典

欢迎关注公众号:Python实用宝典

python控制风扇_Python语音控制普通风扇实现教程相关推荐

  1. python3语音控制电脑_python语音控制电脑_uusee全屏

    # -*- coding: utf-8 -*- import time import speech import subprocess import win32com.client from zoom ...

  2. 智能家居 (8) ——智能家居项目整合(网络控制线程、语音控制线程,火灾报警线程)

    目录 mainPro.c(主函数) 指令工厂 inputCommand.h voiceControl.c(语音控制) socketControl.c(网络线程) 控制工厂 contrlEquipmen ...

  3. 智能家居--传统风扇改语音控制

    最近在玩智能家居,把家里所有的设备一点点改造成了语音控制,根据自己的生活习惯,设置各种联动场景,从此解放双手. 但是在改造家里的传统按钮风扇时,我第一时间想到的是智能插座,或者是成本更加便宜的通断器. ...

  4. Python 利用智能音箱语音控制电脑开关机

    完成下面这个有趣的实验,你所需要的东西有: 1.路由器(能够形成局域网,且电脑已用网线连接) 2.一个智能音箱(本教程使用的是亚马逊 Echo Dot 2) 3.主板支持wake on lan (大部 ...

  5. python方向键控制角色_python方向键控制上下左右代码

    本文所示代码实现python编程方向键控制图片上下左右,我们首先看下演示结果. 演示: 实例代码: bif="1.jpg" mif="2.jpg" import ...

  6. python tracer函数_Python流程控制常用工具和函数定义

    在我们的工作中,我们使用ddagent ver.5作为收集工具,收集和报告托管服务器的性能指标,并对ddagent进行一定程度的定制.经过多次功能迭代,发现一批在线运行时间长的托管服务器占用了太多内存 ...

  7. python调用键盘_Python直接控制鼠标键盘

    Python直接控制鼠标键盘 之前因为期末的原因已经很久没写博客了,今天博主发现一个好玩的模块PyAutoGUI,借助它可以使用Python脚本直接控制键盘鼠标,感觉可以解决很多无聊的机械运动.这里记 ...

  8. python如何控制浏览器_Python+selenium 控制浏览器

    控制浏览器 driver.forward() # 浏览器前进 driver.back() # 浏览器后退 driver.refresh() # 刷新页面 driver.set_window_size( ...

  9. python哨兵循环_Python哨兵控制循环

    我想知道是否有人能帮我指出正确的方向!我是个初学者,完全迷路了.我试着做一个哨兵控制的循环,要求用户"输入支票金额",然后询问"这张支票有多少用户".在它询问用 ...

  10. python多线程控制暂停_python多线程控制

    利用wait的阻塞机制, 就能够实现暂停和恢复了, 再配合循环判断标识位, 就能实现退出了 #!/usr/bin/env python # coding: utf-8 import threading ...

最新文章

  1. 强生进军医疗机器人、Deepmind利用深度学习算法检查乳腺癌X光,AI医疗的风口已到来?...
  2. 卷积在计算机中实现+pool作用+数据预处理目的+特征归一化+理解BN+感受野理解与计算+梯度回传+NMS/soft NMS
  3. nightwatch系列教程03——开发者指南:运行你的测试脚本
  4. Android常见概念
  5. live2d java_Live2D的使用
  6. 统计学的Python实现-013:频度分布表
  7. 省中心IEPGM同步到地市的IEPGM有问题,中心为“已商用”状态,地市为“已上架”状态
  8. java进制转换的简单方法
  9. 计算机绘画教案风车,电脑动画美术教案
  10. 搭档之家:14天1.5万人民币!悉尼将征收入境隔离费
  11. TVS和ESD的区别
  12. 2019南京“无房证明”办理
  13. Auto CAD:将CAD三维实体转为三视工程图(俯视图、正视图、左视图)的图文教程之详细攻略(建议收藏!!)
  14. android 面部识别解锁,面部识别解锁软件
  15. Excel条形图也可以变身高大上
  16. 体感ar数字互动教学制作实现学生共享优质教育
  17. 什么是5G消息?有什么应用价值?如何开通服务?
  18. 什么是闭包,闭包的作用与好处是什么,何时使用闭包,对闭包的改进
  19. Vue3中Vuex的使用
  20. 第二证券|家用储能设备出口暴增,储能概念发力走高,派能科技等大涨

热门文章

  1. 计算机图形图像设计构图的基本形式,设计构图的八大基本表现手法!你造吗?...
  2. java学习之高级语法(二十八)----- 网络编程
  3. C语言--求一元二次方程的根(分支)
  4. 图像标注工具sloth的安装
  5. linux下phylip软件构建NJ树,SNP数据构建系统进化树
  6. Win7edge浏览器看视频黑屏怎么解决?
  7. thinkpad e480安装win7
  8. 网站权重大有用处,枫树seo教你一键进行网站权重查询
  9. Android自定义View之仿金山词霸加载效果
  10. Codeforces 633H Fibonacci-ish II【线段树】