亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

使用 1Sheeld 的基于 Arduino 的 Amazon Echo

组件和用品

Arduino 101
× 1
1Sheeld
× 1
1Sheeld
× 1
棒灯
× 1
RGB LED 灯条
× 1
接力板
× 1
苹果 iPhone
× 1
面包板(通用)
× 1
USB-A 转 B 线
× 1
跳线(通用)
× 30
通用晶体管 NPN
× 3

必要的工具和机器

钻机
PVC 管

应用和在线服务

Arduino IDE

关于这个项目

几个月前,我拜访了我的一个朋友,我对他拥有的 Amazon Echo 感到惊讶。

它可以播放音乐、控制室内灯光、告诉我新闻和天气状况,甚至日期和时间,所有这些都可以通过语音命令实现。

那一刻,我内心的制造者大喊“我为什么不自己做!”。

从那天起,我开始寻找可以帮助我制作基于 arduino 的 Amazon Echo 的组件,直到我找到了令人惊叹的 1Sheeld。

1Sheeld 是一个 Arduino 平台,可让您利用智能手机的传感器和功能,并让您在 Arduino 项目中使用它们。

基本上,它是一个硬件防护罩,位于 Arduino 板的顶部,并通过蓝牙与此 Android 应用程序进行通信,以在它和您的智能手机之间传输数据。

您可以查看 1Sheeld 网站上的入门教程,该教程将带您一步一步地操作,直到您可以非常流畅地操作 1Sheeld,它是优秀 Arduino 项目的绝佳参考。

我在这个项目中使用了 1Sheeld 中 40 多个盾牌中的五个盾牌。

第一个是语音识别盾 我曾经用语音命令控制整个系统,这是一个非常简单的盾牌,我只需要 1 行代码就可以激活它:VoiceRecognition.start();

然后我使用了Music Player Shield 这让我可以进入智能手机音乐播放器并选择我想非常流畅地播放的曲目,实际上很简单,我只用这一行来播放音乐播放器:MusicPlayer.play();

我使用的第三个盾牌是项目中最重要的盾牌之一,它是 Text to Speech Shield 这为项目添加了人形交互,有人对您所说的话做出响应,使系统响应非常容易:TextToSpeech.say("time in cairo is");

激活 Text to Speech 屏蔽后,我激活了 Clock Shield 它实时返回时钟,然后系统可以在我要求时响应时间,太棒了!不是吗:),我可以使用此函数轻松获取手机中的当前时间:Clock.queryDateAndTime();

我使用的最后一个防护罩是 Internet 防护罩 在我看来,这是 1Sheeld 中最强大的防护罩,我使用该防护罩使用来自“openweathermap”网站的 API 来获取我家乡天气的当前状态,我可以在其中使用该行调用 API: HttpRequest request1("/*API地址*/");

第 1 步:收集组件

  • Arduino 101 30.99 美元
  • 1Sheeld+ 板 54.94 美元
  • iPhone 155.5 美元
  • PVC 管 $2
  • LED 灯带 $5
  • 12V 电源 $7
  • 接力板 $3
  • 跳线和电线 $3
  • 3 个 NPN 晶体管 $1

第 2 步:

在管子上打孔让声音出去

第 3 步:

PVC管喷黑漆

第四步:接线

  • 将 LED 灯条连接到晶体管和电源
  • 将灯连接到继电器板和交流端子
  • 将继电器板和 LED 灯条连接到 Arduino 101 板,如下面的代码中所述
  • 将 iPhone 安装在 PVC 管内

第 5 步:设置 1Sheeld 库

您可以从 Arduino 的 IDE 管理任何库。只需点击 Sketch>> Include library>> Manage libraries>> 输入 OneSheeld>> 然后点击安装,你就可以开始了。或者您可以从这里下载库:http://1sheeld.com/downloads/ 然后打开您的 Arduino IDE,然后从菜单栏中选择 Sketch>> Include library>>add .zip file>> 然后选择 zip 文件哟刚刚下载。

第 6 步:安装 1Sheeld 应用

从网站下载 1Sheeld 移动应用程序,或者您可以访问 Apple Play 商店或 Google Play 商店获取该应用程序。

第 7 步:访问防护罩

按照1Sheeld入门教程,最后选择以下盾牌

  • 语音识别
  • 文字转语音
  • 时钟
  • 互联网
  • 音乐播放器

然后按多重屏蔽按钮。

代码

  • 亚马逊回声代码
亚马逊回声代码Arduino
/* 可选:为了减少库编译大小并限制其内存使用,您可以通过定义 CUSTOM_SETTINGS 和相应的 INCLUDE_ 定义来指定要包含在草图中的屏蔽。 */#define CUSTOM_SETTINGS#define INCLUDE_INTERNET_SHIELD#define INCLUDE_VOICE_RECOGNIZER_SHIELD#define INCLUDE_TEXT_TO_SPEECH_SHIELD#define INCLUDE_MUSIC_PLAYER_SHIELD#define INCLUDE_CLOCK_SHIELD/* 库包含.1 */#include /* 为毫秒计数器创建一个初始值。 */unsigned long previousMillis =0;/* 创建调用 alexa 的初始状态。 */bool state =0;/* 调用将返回埃及开罗天气状态的 api。 */HttpRequest request1("http://api.openweathermap.org/data/2.5/weather?q=Cairo,EG&appid=43d95b4cf5d0573e2dfe5186c160017a");/* 定义引脚 3,5 和 6 上的 3 个晶体​​管。*/#define strip1 3#define strip2 6#define strip3 5/* 定义引脚 13 上的灯。 */int lamp =13;/* 定义将保持小时和 miniuts 的变量。 */int hour, minute;/* 创建 2 个字符 arrys 以从句子中捕获您想要的字符串。 */char b[4];char c[4];/* 定义变量以在字符串中保存小时和小数点。 */String strh, strm;/* 定义变量来保存上午或下午的日期状态。 */String noon;/* 用户设置的语音命令。 */const char mainCommand[] ="alexa";const char weatherCommand[] ="今天天气怎么样";const char playCommand[] ="播放音乐";const char clockCommand[] ="现在几点了"; const char stopCommand[] ="stop";const char lightonCommand[] ="开灯";const char lightoffCommand[] ="关灯";void setup() { /* 开始通信。 */ OneSheeld.begin();/* 设置灯条和灯输出。 */ pinMode(strip1,OUTPUT); pinMode(strip2,OUTPUT); pinMode(strip3,OUTPUT); pinMode(灯,输出); /* 订阅请求的成功回调。 */ request1.setOnSuccess(&onSuccess1); /* 订阅 json 值回复。 */ request1.getResponse().setOnJsonResponse(&onJsonReply1);/* 在语音识别上调用函数“myfunction”。 */ VoiceRecognition.setOnNewCommand(&myFunction);}void loop (){ /* 使用毫秒计数器延迟 5 秒以保持语音检测有效。 */ unsigned long currentMillis =millis(); if (currentMillis - previousMillis>=5000) { previousMillis =currentMillis; /* 获取手机中的当前时间。 */ Clock.queryDateAndTime(); /* 开始语音识别。 */ VoiceRecognition.start(); }/* 在变量中保存智能手机的小时和分钟。 */ 小时 =Clock.getHours();分钟 =Clock.getMinutes(); /* 检测时间状态是上午还是下午。 */ 如果(小时> 12){ 小时 -=12;中午=“下午”; } else { noon ="A M"; }/* 将小时和分钟保存为字符串。 */ strh =String(小时); strm =String(minute);/* 将字符串保存在字符数组中。 */ strh.toCharArray(b, 4); strm.toCharArray(c, 4);}/* 每次给出新命令时都会调用此函数。 */void myFunction (char *commandSpoken){/* 检查是否有人调用了 alexa。 */ if (!strcmp(mainCommand, VoiceRecognition.getLastCommand())) { alexon();音乐播放器.setVolume(5); /* 如果是,则使状态 =1 。 */ 状态 =1; } /* 检查您是否在调用 alexa 后要求播放音乐。 */ if (!strcmp(playCommand, VoiceRecognition.getLastCommand()) &&state ==1) { alexoff();音乐播放器.play();延迟(10000);音乐播放器.stop();状态 =0; }/* 检查您是否在调用 alexa 后要求获取天气状态。 */ else if(!strcmp(weatherCommand,VoiceRecognition.getLastCommand())&&state ==1) { alexoff(); Internet.performGet(request1); /* 等待 5 秒。 */ OneSheeld.delay(5000);状态 =0; }/* 检查您是否在调用 alexa 后询问了时间。 */ if(!strcmp(clockCommand,VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); /* 1Sheeld 使用文本到语音进行响应。 */ TextToSpeech.say("在开罗的时间是");延迟(1300); TextToSpeech.say(b);延迟(600); TextToSpeech.say(c);延迟(800); TextToSpeech.say(中午);延迟(500);状态 =0; }/* 检查您是否在调用 alexa 后要求打开灯。 */ if (!strcmp(lightonCommand, VoiceRecognition.getLastCommand()) &&state ==1) { alexoff();数字写入(灯,高); TextToSpeech.say("灯亮了");延迟(6000);状态 =0; }/* 检查您是否在调用 alexa 后要求关灯。 */ else if (!strcmp(lightoffCommand, VoiceRecognition.getLastCommand()) &&state ==1) { alexoff();数字写入(灯,低); TextToSpeech.say("灯关了");延迟(3000);状态 =0; }}void onSuccess1(HttpResponse &response1){ /* 使用响应查询 Json 链直到需要的值。 */ /* 即在响应中获取数组 'weather' 的第一个对象中的 'main' 的值。 */ /* 假设响应是 JSON 格式。 */ response1["weather"][0]["main"].query();delay(200); }void onJsonReply1(JsonKeyChain &hell,char * output){ if(hell ==request1.getResponse()["weather"][0]["main"]) { TextToSpeech.say("今天开罗的天气是" );延迟(2000); /* 1Sheeld 使用文本到语音屏蔽进行响应。 */ TextToSpeech.say(输出); } }void alexon(){ /* 像亚马逊回声一样按顺序打开条带。 */ digitalWrite(strip1,HIGH);延迟(200);数字写入(strip2,HIGH);延迟(200);数字写入(strip3,HIGH); } void alexoff(){ /* 关闭条带。 */ 数字写入(strip1,LOW);数字写入(strip2,低);数字写入(strip3,低); }

示意图


制造工艺

  1. 使用 Firebase 将传感器数据从一个 Arduino 发送到另一个
  2. Arduino 数字骰子
  3. 使用 Arduino、1Sheeld 和 Android 的通用远程控制
  4. Arduino 游戏控制器
  5. Sonar 使用 arduino 并在处理 IDE 上显示
  6. 像素追逐游戏
  7. 使用 Bolt 和 Arduino 控制 LED 亮度
  8. 使用 Arduino 的简单智能机械臂
  9. WalaBeer Tank
  10. 使用 Arduino 和 RDA8057M 的 FM 收音机
  11. NeoMatrix Arduino Pong
  12. 使用智能手机控制您的灯光系统