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

J.A.R.V.I.S. :虚拟家庭助理

组件和用品

Arduino 101
× 1
Arduino 4 继电器屏蔽
× 1
Arduino GSM shield V2
× 1

必要的工具和机器

烙铁(通用)
热胶枪(通用)

应用和在线服务

Unity
Android Studio
Vuforia
Adobe Illustrator
Arduino IDE

关于这个项目

为什么要解决智能家居问题?

有什么新鲜事?

我们为什么决定制作它?

工作

数字电能表

人工智能虚拟助手

信号流如下:

  • 1. Android 应用的语音输入
  • 2.在 Android 应用上处理
  • 3.通过蓝牙向 Arduino 发送加密数据。
  • 4.在 Arduino 101 上处理
  • 5.用于中继的数字信号

引脚连接:

  • 引脚 8 --> PulseIn [数字输入]
  • 引脚 6 --> IN1 --> 风扇输出
  • 引脚 4 --> IN2 --> 光输出
  • 引脚 5 --> IN3 --> 咖啡机

电能表的连接:

  • 将仪表连接到电源。
  • 用黑色胶带盖住电能表,防止电能表内部的 LDR 受到外界光线的照射。
  • 将零线直接连接到负载,将相线连接到继电器。
  • 将电线从仪表外的 LDR 接到计数器电路。
  • 现在将计数器电路的输出带到指定的引脚 8 脉冲引脚,如代码所示。
  • 将 Arduino 101 的 TX、RX 引脚连接到 GSM 模块的 RX、TX 引脚。
  • 现在在烧录代码后给电路板加电。

电路图

使用的硬件和设备:

  • 内部能量计:LDR 光敏电阻器
  • GSM 模块
  • 计数器电路:电位器,IC LM358N
  • Arduino 101
  • 蓝牙-HC05 模块
  • 4 通道 12V 10A 继电器控制板模块,带有用于 PIC AVR ARM 的光耦合器

编程平台

  • · 为了对 Arduino 101 进行编程,我们使用了默认的 Arduino IDE。
  • · 我们使用 Android Studio(JAVA 和 XML)开发了我们的 Android 应用。
  • · 数据库连接是使用 Google 的 Firebase 完成的。
  • · 对于增强现实,我们使用了 Unity 和 Vuforia SDK。

实施:

  • 所有组件都向 Arduino 提供读数,我们将这些读数转换为字符代码,以便将字节高效快速地发送到计算机。在一个永无止境的循环中,每一次阅读都对应一个字符。
  • 应在计算机上运行代码,以便接收 arduino 通过串行端口发送的数据。
  • 为了开发 android 应用,我们使用了 android studio,并将语音转换为文本,我们使用了标准的 google api。
  • 对于语音识别,我们在 Android 应用中使用声学语音参数进行独立于说话者的语音识别。
  • 我们有 AI(人工智能)虚拟助手,它使用 CNN(卷积神经网络)等深度学习技术使用 Python 来实现自然语言处理。
  • 对于增强现实应用,我们使用 Unity IDE 和 VuforiaSDK(它是一种适用于移动设备的增强现实软件开发工具包 (SDK),支持创建增强现实应用)。

视频

代码

  • 用于数字能源读取和成本计算的 Arduino 代码
  • Arduino 使用 Arduino 实现 JARVIS 连接以进行中继
用于数字能源读取和成本计算的Arduino代码Arduino
此代码实现了连接到 Arduino 的设备消耗的能量单位。
指示 :
1.建立连接并在Arduino代码中插入一个手机号码
2. 将代码上传到 Arduino 101
3. 运行代码
4. 从任何手机发送短信到代码中指定的手机号码,格式为#anytext*
5. 将收到包含消耗单位和成本的回复
#include LiquidCrystal lcd(7,6,5,4,3,2);int led=13; // 使第 13 引脚中的 LED 减速#define pulsein 8 //定义脉冲输入引脚 8unsigned int pusle_count=0; //将脉冲计数类型声明为整数浮点单位=0; //声明单位为Float unsigned int rupees=0; //将卢比类型声明为无符号整数unsigned int temp=0,i=0; //声明temp&i为无符号整数char str[70],flag1=0,flag2=0; // 字符长度为字符串并声明 flagsvoid setup() { lcd.begin(16,2); // 初始化 LCD 类型为 16x2 Serial.begin(9600); // 将串行波特率初始化为 9600 pinMode(led, OUTPUT); pinMode(脉冲输入,输入);数字写入(脉冲输入,高); lcd.setCursor(0,0); lcd.print("无线能源"); lcd.setCursor(0,1); lcd.print("仪表");延迟(2000);液晶显示器(); lcd.print("通过");延迟(2000);液晶显示器(); lcd.print("GSM 初始化..."); gsm_init();液晶显示器(); lcd.print("系统就绪"); Serial.println("AT+CNMI=2,2,0,0,0"); init_sms(); send_data("系统就绪");发简讯();延迟(1000);数字写入(LED,低); lcd.clear();}void loop() { serialEvent(); // 检查串行事件单位=卢比/5.0; //计算单位lcd.setCursor(0,0); lcd.print("单位:"); lcd.print(单位);液晶打印(“”); lcd.setCursor(0,1); lcd.print("卢比:");液晶打印(卢比);液晶打印(“”);读脉冲(); if(temp==1) { check(); }}void serialEvent() // 用于接收和检查传入短信的串行事件{ while(Serial.available()) { if(Serial.find("#")) { digitalWrite(led, HIGH);延迟(1000);数字写入(LED,低); while (Serial.available()) { char inChar=Serial.read(); str[i++]=inChar; if(inChar=='*') { temp=1;返回; } } } } }void init_sms() //发送消息的初始化和配置{ Serial.println("AT+CMGF=1");延迟(200); Serial.println("AT+CMGS=\"在此处插入手机号码\"");延迟(200);}void send_data(字符串消息){ Serial.println(消息); delay(200);}void send_sms(){ Serial.write(26);}//从电能表中读取脉冲void read_pulse(){ if(!digitalRead(pulsein)) { digitalWrite(led, HIGH);单位++;卢比=单位*5; while(!digitalRead(pulsein));数字写入(LED,低); }}//检查Message状态 void check(){ if(!(strncmp(str,"units",5))) { Serial.println("AT+CMGF=1");延迟(200); Serial.println("AT+CMGS=\"在此处插入手机号码\"");延迟(200); lcd.setCursor(0,1); send_data("电能表单位:"); Serial.println(单位); send_data("\n卢比:"); Serial.println(卢比);延迟(200);串行写入(26);标志1=1;标志2=1;温度=0; } }void message_sent(){ lcd.clear(); lcd.print("消息已发送。");延迟(1000);}void gsm_init(){ lcd.clear(); lcd.print("正在查找模块..");布尔值 at_flag=1; while(at_flag) { Serial.println("AT"); while(Serial.available()>0) { if(Serial.find("OK")) at_flag=0; } 延迟(1000);液晶显示器(); lcd.print("模块连接..");延迟(1000);液晶显示器(); lcd.print("禁用 ECHO");布尔值 echo_flag=1; while(echo_flag) { Serial.println("ATE0"); while(Serial.available()>0) { if(Serial.find("OK")) echo_flag=0; } 延迟(1000);液晶显示器(); lcd.print("回声关闭");延迟(1000);液晶显示器(); lcd.print("正在查找网络..");布尔网络标志=1; while(net_flag) { Serial.println("AT+CPIN?"); while(Serial.available()>0) { if(Serial.find("+CPIN:READY")) net_flag=0; } 延迟(1000);液晶显示器(); lcd.print("网络发现..");延迟(1000); lcd.clear();}
Arduino 实现 JARVIS 连接以使用 ArduinoArduino
这是一个实现android app和Arduino之间串行蓝牙传输字符的代码。
#define CH3 7#define CH4 4#define CH5 5#define CH6 6 void setup() { Serial.begin(9600); pinMode(CH3,输出); pinMode(CH4,输出); pinMode(CH5,输出); pinMode(CH6,输出); //为两个 LED 供电 //关闭继电器通道的任何电源 digitalWrite(CH3, HIGH);数字写入(CH4,高);数字写入(CH5,高);数字写入(CH6,高);延迟(2000); //在开始序列前等待 2 秒 } void loop() { delay(100); if(Serial.available()) { //Serial.println(sum1); char c =Serial.read(); Serial.print(c); if(c=='b') { //咖啡关闭 } else if(c=='c')//点亮 {digitalWrite(CH4 ,LOW); delay(100);} else if(c=='d')//扇上{digitalWrite(CH6,LOW); delay(100);} else if(c=='k')//咖啡在{digitalWrite(CH5,LOW); delay(100);} else if(c=='g')//关掉咖啡 {digitalWrite(CH5,HIGH); delay(100);} else if(c=='e')//熄灯{digitalWrite(CH4,HIGH); delay(100);} else if(c=='f')//关闭{digitalWrite(CH6,HIGH); delay(100);} else if(c=='z')//再见{digitalWrite(CH6,HIGH);数字写入(CH4,高);数字写入(CH3,高);数字写入(CH5,高);延迟(500);数字写入(CH5,低);延迟(500);数字写入(CH5,高);延迟(500);数字写入(CH5,低);延迟(500);数字写入(CH5,高);延迟(10000); } } } 

定制零件和外壳

指示 :

1. 下载并安装应用程序
2. 确保手机已连接到互联网
3. 启动应用程序并将其指向已配置 Vuforia 的设备(此处使用默认 Vuforia 标记)
4. 电器应启动
5. 要关闭设备,请点击手机指向设备时出现在屏幕上的虚拟按钮 jarvisaugmented_I2zWAu2jGG.apk

示意图

请注意:手机上始终需要有效的互联网连接
指示 :
1. 在安卓手机上安装应用
2.设置硬件并运行成功后,启动app
3. 要使用虚拟助手(语音),请说出关键字“听听 JARVIS”。这应该激活代理
3.1 清楚地说出你的命令
3.2 代理应提供响应
4. 要启动增强现实应用程序,请单击增强按钮;应该出现一个空白屏幕
4.1 在另一部手机上打开 Jarvis Augmented App(注意:J.A.R.V.I.S. android 应用程序应该在另一部手机上)
4.2 继续执行 JarvisAugmented 中给出的说明以实现增强现实

注意:1.如果应用程序在任何时候卡住,请尝试重新启动应用程序
2.如果屏幕上出现类似“无法打开麦克风”的消息,请重新启动应用程序
3.本APP使用HC05蓝牙模块实现,增加项目范围。因此,推荐使用 HC05 蓝牙模块 app-release_eo3LK2AsLV.apk

制造工艺

  1. 在家中构建无线传感器网络
  2. 在家制作 DIY 作业书写机
  3. Web 操作的 DMX 控制器
  4. Arduino Spybot
  5. DIY 虚拟现实滑板
  6. 自主家庭助理机器人
  7. 由 Alexa 激活的 Arduino 家庭控制器
  8. BLUE_P:无线 Arduino 编程扩展板
  9. Arduino Nano 的 TFT 扩展板 - 开始
  10. Arduino Shield NCS314 NIXIE Tubes Clock IN-14
  11. 家庭监视器
  12. Arduino GrowBox 控制器