×

myva-Home:语音控制家庭自动化

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-07-13

王英

分享资料个

描述

怎么运行的

安卓客户端(预建)

poYBAGSBRjWAfBfBAADWPYwCA-c468.png

pYYBAGSBRjiAZH73AAAaLgxBs6E733.jpg

加载屏幕

安卓客户端都是预制的,只要你按下麦克风并说出命令,应用程序就会抓取该命令并将其发送到 Linkit SMART 7688 Duo 指定的 IP 和端口。

poYBAGSBRjqAb27GAAAbdNoJvWU183.jpg

用户在这里发言

命令一说出,它会立即发送,并等待响应,响应将被解析为多个命令,例如 Image、Flash、Maps 和 Speak。这里是一个开灯的例子 。

代码步骤:

这是 Linkit Smart 7688 Duo 如何从 Android 客户端发送/接收的自上而下的介绍,如果您只想开始使用示例代码,请跳过此部分。 

安卓客户端:

用户按下屏幕上的麦克风

弹出 google speak 的新意图,它会提示用户何时说话

用户说出命令(“打开灯!”)

意图关闭,将任何命令变成字符串

如果屏幕上的输入与保存的文件不匹配,Android 会从保存的文件中提取当前的 Ip 和端口,然后它将使用输入的 Ip 和端口 

通过 tcp 将命令发送到服务器(Linkit Smart 7688 Duo)

等待不应超过 10 秒的响应

Linkit Smart 7688 双核服务器:

从客户端接收(“[打开灯!]”)

检查接收到的命令中的触发词(“light”和“on”)

如果它包含两个触发词,则发回自定义命令(如下)

例如,如果两个触发词都存在,则打开继电器(用于灯)

Android 客户端仍在等待响应,所以我们将给它一个命令

现在灯亮了,我们想以多种方式告诉用户,文本、图像和语音

使用库(简单解析就是它所做的一切),前提是用户可以像这样发回命令

command.Flash("开灯了!") 

和/或

command.Image("http://www.clker.com/cliparts/R/b/I/7/2/u/light-bulb-off-hi.png")

和/或

command.Speak("灯亮了")

这些命令通过 tcp 发回,python 服务器关闭连接

安卓客户端:

android 获取命令并检查它可以做什么,如果它是下面的这些命令之一

如果命令是图像,则拉取提供的 URL 并显示该图像

如果命令是 flash 则显示屏幕上提供的文本

如果命令是说话,则拉出该文本并让本地(电话默认)扬声器说出来

如果命令是地图,那么用更简单的术语来说,将提供的纬度和经度放置在地图上,手机从 gps 中提取当前值并在纬度和经度之间画一条线

android等待另一个语音输入,重复整个过程

你只需要担心这个过程的命令库,看看下面的如何使用它部分

如果一切顺利,那么这里是打开灯的示例的最终输出

pYYBAGSBRjyAORmYAAArkPGDoOE891.jpg

1 / 2 •灯亮

接线举例:

UDOO -> 射频识别

9 :: 重新开始

10 :: 社保号

11 :: 莫西

12::味噌

13::SCK

地线::地线

3.3v :: VCC

如果使用超声波放置物品

UDOO -> 超

12 :: 1k 电阻 :: 回声

13 :: 触发

地线::地线

5v :: VCC

智能 -> 继电器

p1::IN1

地线::地线

5v :: VCC

一个 -> 蚂蚁

GPSant :: GPS_Antenna

WIFIant :: Wifi_Antenna

可能还想插入电池

近地天体 ->温度 -> 气压

i2c-小线 :: 大线中的 i2c :: 大线中的 i2c

预安装

在我们可以继续设置服务器和设备之前,我们需要做/知道几件事。

了解如何使用 PuTTy 和 WinSCP(如果没有,请查看我在 https://www.hackster.io/smerkousdavid/linkit-smart-one-sensor-monitoring-7e2741上的最后一个教程 

已安装 PuTTy 和 WinSCP(如果是 Windows)

在这些设备上安装了这些库

Udoo 库 -  https://github.com/smerkousdavid/Udoo-Library 在 Udoo 上

Neo 库 -  https://github.com/smerkousdavid/Neo.GPIO 在 Neo 上

RFID 库 -  https://github.com/miguelbalboa/rfid 在 RFID 上

(可选)VncClient - 在没有显示器的情况下查看 Udoo quad/dual 和 Neo

安装

在继续之前确保完成上述步骤和接线,如果 Udoo - Rfid 或 Ultrasonic 脚本不起作用确保您在 linux 端运行 python 脚本...

以下是让所有传感器正常工作所需的所有步骤

1.安装zip

2.在桌面上解压

3.导航到“Android_App”

4. 插入安卓设备

5.使用资源管理器将apk复制到手机

6.打开手机文件资源管理器

7.导航到放置apk的地方

8. 点击 apk,它将像所有其他应用一样安装

9. 确保安装了 WinSCP 和 PuTTy

   https://winscp.net/eng/index.php

   http://www.putty.org/

10.打开WinSCP

11、通过station模式连接或者通过router admin获取SMART的Ip

12. 使用该 IP 连接到 SMART(默认登录名 = root,密码 = 您之前使用的)

13.(winSCP 的左侧)导航到“服务器” 

14. 将“Linkit_Smart_Server.py”复制到 SMART 的 /root 文件夹

15. PuTTY 开启 SMART ssh 连接

16. cd 进入'/root'

17. 运行命令'python Server.py'

18. 不要关闭窗口

19. 在计算机上导航到“传感器”(不使用 WinSCP)

20.在每个有arduino sketch的文件夹下,为你的网络修改Ip、SSID和PASSWORD值,然后刷入每个设备

21. 如果在 Udoo quad/dual copy modified arduino sketch over on flash drive

22. 用新草图在 Udoo 上闪现 Due

23. Sensors -> Neo 中的一个文件是一个名为 Home_Auto_Neo 的 python 文件

24. 将闪存驱动器复制到 Neo 并以 root 身份运行 python 脚本,而不是下面的 sudo 示例

echo udooer | sudo -S su -c 'Auto_Home_Neo.py'

25. 打开应用程序并尝试示例命令

我们呢have popcorn?

什么是时代?current temp

什么是current press尿素?

Where是我的backpack?

关闭lights on

关闭lights off

Hold on

Where是一个mammoth?

如何使用它?

您是否看到上面我如何突出显示每个单词。那是因为 Commands() 方法允许您选择从整个短语中选择特定单词的键。所以不管你怎么排词只要定位到关键词就会触发。如果两者都存在,您只需将优先级(if 语句)设置得更高。所以这里的例子是猛犸象的代码。

 

.....Android sends data, data gets inserted into from_client

if command.Find(from_client, "where", "is", "mammoth"):
    toClient = command.Flash("here!") + command.Speak("I'm a flipping mammoth") + \
    command.Image("http://vkontakte.ru/images/gifts/256/44.jpg")
    print toClient
.... toClient gets send to the phone

传感器

if command.Find(from_sensor, "POP", "END:POP"):
    pop = SensorCut(from_sensor, "::POP::", "::END:POP::")
    print "pop val: "+str(pop)

请务必查看 Linkit Smart 7688 Duo 代码中提供的示例!

 

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !