描述
怎么运行的
安卓客户端(预建)
加载屏幕
安卓客户端都是预制的,只要你按下麦克风并说出命令,应用程序就会抓取该命令并将其发送到 Linkit SMART 7688 Duo 指定的 IP 和端口。
用户在这里发言
命令一说出,它会立即发送,并等待响应,响应将被解析为多个命令,例如 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等待另一个语音输入,重复整个过程
你只需要担心这个过程的命令库,看看下面的如何使用它部分
如果一切顺利,那么这里是打开灯的示例的最终输出
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条评论
快来发表一下你的评论吧 !