阅读这篇文章前,这两篇文章可能对你会有所帮助:

利用智能音箱语音控制电脑开关机 (必读,否则你可能不知道我在说什么)

先看看效果:

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

2.一个8050三极管

3.一个继电器

4.一个路由器

5.一个树莓派

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

7.一个普通台灯

我使用的是最基本的开关台灯,所以它只有一个开关按钮,也只有一个功能,那就是开关台灯(废话),现在我们需要让它能够被语音控制。由于我们可以让智能音箱和树莓派通信,所以只需要让台灯连接树莓派就能达成我们的目的,因此我们需要有一个能和这个台灯并联,并且能够接线出来让树莓派控制的器件。那就是继电器。 PS:为什么不能让树莓派像控制风扇一样,直接控制台灯呢?

因为台灯接的是220V电压,树莓派最大电压只有5V,树莓派是较小电流,较小电流要控制大电流则必须用继电器。

加上继电器后,其电路图就如同下面所示。

我们使用的继电器是这个小东西:

但由于我的台灯里的空间不够大(如下图所示,我还打了个孔,方便接出线),我只好拆出这个继电器的核心,当然如果你的台灯够大,就不需要考虑这一点了。

接下来讲一下继电器的使用(原理可见上方动图),其实是很简单的,把点灯开关的两条线接到COM端(共接点)和NO端(常开端),此外DC+, DC-分别连树莓派的5V电源和接地即可。然后从树莓派任意GPIO引脚中引线接继电器的控制端,这个控制端能控制NO端的开闭,当输入1的时候就是闭合,电路连通,灯亮。

不过需要注意的是,树莓派的GPIO口是3.3V的,你需要把它转化成5V才能进行控制,怎么转化呢?那就要使用上我们上一节 语音控制 - 改造普通风扇 讲的三极管了。

接完后如下图所示

这样,硬件方面的工作我们就做完了,接下来是软件方面的工作。

其实也就是让智能音箱识别到一个控制开关的命令,跟 利用智能音箱语音控制电脑开关机 中提到的一样。让树莓派使用fauxmo,模拟成许多智能设备,模拟的配置如下:

"MyLight": {

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

"DEVICES": [

{

"name": "Light",

"port": 49919,

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

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

"state_cmd": ""

}

]

}

这样,智能音箱就会把这个设备的名字识别为 Light. 因此,当你说

" turn on the light ",

它就会执行on_cmd命令,(在这个例子中,我们的path指向的文件MyLight.py即只是启动一个cmd命令而已)即执行 python GPIO13.py on . 相应地,"turn off the light"则执行off_cmd命令。

GPIO13.py 内只是控制树莓派的开关而已,如下所示,它接收两个参数,on或off. 当参数是on的时候,向树莓派的GPIO33口输出高电平,灯亮。Off的时候则输出低电平,灯灭。

# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO

import time

import sys

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

GPIO.setmode(GPIO.BOARD)

# 输出模式

GPIO.setup(33, GPIO.OUT)

def turnOn():

GPIO.output(33, GPIO.HIGH)

def turnOff():

GPIO.output(33, GPIO.LOW)

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

turnOn()

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

turnOff()

重启fauxmo,让智能音箱重新搜索,就能找到这个Light的设备,然后说一句 "turn on the light",就能享受这份折腾的成就感了。

最近我还发现,Amazon Alexa 的手机软件,还支持外网控制这些室内设备,如图。

因此,现在每当我要回到宿舍的时候,在宿舍楼下时,我都会先点击Fan,让它帮我开个风扇,然后根据我是要玩游戏还是要干活,再点击PC或Laptop. 如果是晚上,我还可以点击Light打开点灯。这就是新时代的生活,你得Catch Up。

无论是多么普通的设备,你都可以用一个树莓派把它变得智能。

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

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

​Python实用宝典 (pythondict.com)

不只是一个宝典

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

本文由 Python 实用宝典 作者:Python实用宝典 发表,其版权均为 Python 实用宝典 所有,文章内容系作者个人观点,不代表 Python 实用宝典 对观点赞同或支持。如需转载,请注明文章来源。

python语音控制手机_python 树莓派语音控制普通台灯教程-Python 实用宝典相关推荐

  1. python语音控制智能家电_Python 树莓派智能音箱语音控制电脑开关机-Python 实用宝典...

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

  2. python 微信红包群_Python自动抢红包,超详细教程,再也不会错过微信红包了!...

    目录: 0 引言 1 环境 2 需求分析 3 前置准备 4 抢红包流程回顾 5 代码梳理 6 后记 0 引言 提到抢红包,就不得不提Xposed框架,它简直是个抢红包的神器,但使用Xposed框架有一 ...

  3. python微信抢红包神器_Python自动抢红包,超详细教程,再也不会错过微信红包了...

    0 引言 提到抢红包,就不得不提Xposed框架,它简直是个抢红包的神器,但使用Xposed框架有一个前提条件:手机需要root,对于苹果手机的话就需要越狱了.现在的手机想要root或越狱并不容易,同 ...

  4. python通过电脑给手机发送消息_教你如何使用Python向手机发送通知(IFTTT)

    你曾想尝试在服务器端或电脑上向手机发送通知吗? 你曾烦恼过企业邮箱的防骚扰机制吗? 现在,我们可以用一种简单轻松的方法来代替企业邮箱了! 进行以下的实验,你需要做好以下准备1)注册并在手机上下载IFT ...

  5. python 聚类算法包_Python聚类算法之DBSACN实例分析 python怎么用sklearn包进行聚类

    python 怎么可视化聚类的结果 science 发表的聚类算法的python代码 测试数据长什...说明你的样本数据中有nan值,通常是因为原始数据中包含空字符串或None值引起的. 解决办法是把 ...

  6. python大文件排序_Python如何实现大文件排序?Python大文件排序的实现方法

    Python如何实现大文件排序?Python大文件排序的实现方法 本文实例讲述了Python实现大文件排序的方法.分享给大家供大家参考.具体实现方法如下: import gzip import os ...

  7. zip在python中的用法_Python中zip()函数用法实例教程

    本文实例讲述了Python中zip()函数的定义及用法,相信对于Python初学者有一定的借鉴价值.详情如下: 一.定义: zip([iterable, ...])zip()是Python的一个内建函 ...

  8. python怎么算阶乘_python专家写阶乘 ()用python计算阶乘

    请编写一个程序实现分享n的阶乘(即n.),并打印输出结果.要分享包括两个函def little_than_50(x): if x 语言很多时候是假的,一起经历过的事情才是真的. 这个用python写的 ...

  9. python修改yaml文件_Python读取yaml文件的详细教程

    yaml简介 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文 ...

最新文章

  1. 米家电磁炉显示e10_小米“米家电磁炉C1”评测:7挡火力,2100W大功率设计
  2. 「机器学习速成」分类,评估指标(TP、FP、TN、FN),ROC曲线和AUC
  3. mysql安装图解 mysql图文安装教程(详细说明)
  4. Linux命令(27):shell 结合expect,多服务器批量分发数据
  5. 人,最终可能还是平静的干事情,这是最终的奥义
  6. [Oracle] CPU/PSU补丁安装教程
  7. PHP系统能不能加爬虫,php能做爬虫吗
  8. 分布式会话拦截器2 - 会话判断
  9. 1/2 数据获取:本地数据的获取
  10. ux和ui_设计社交餐厅策展应用程序— UX / UI案例研究
  11. 计算机考试用英语怎么说,“全国大学生计算机等级考试一级”英语怎么说?
  12. Bean放入Spring容器,你知道几种方式?
  13. C#后台调用前台js(RegisterStartupScript)
  14. DPDK AF_XDP
  15. excel数据正在计算机,excel数据太多表格太卡-急!Excel数据量大,电脑卡死?
  16. 对bootstrop中左右浮动设置
  17. 启动电容与运行电容-电容-嵌入式开发-物联网开发
  18. Spring Boot 微信-网页授权获取用户信息
  19. PHP+jQuery+Flash完美演示翻盘抽奖
  20. 实验四+070+胡阳洋

热门文章

  1. 牛逼,用Python为她设计专属签名软件
  2. 前端设计走查平台实践(前端篇)
  3. BASNET:边界感知的显著目标检测
  4. 计算机配件选购实训报告,零件测绘实训总结范文
  5. 如果张东升是个程序员......
  6. 同盾大数据可以看到什么_什么叫大数据吗?大数据面前,您一丝不挂
  7. nvme盘 实时温度查询及警告温度查询修改
  8. linux网络时延问题分析,网络时延的4种方式
  9. 多用户管理UserManager
  10. ORACLE 11G用户账户和密码设置