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

使用 1Sheeld 的智能家居自动化和安全系统

组件和用品

Arduino UNO
× 1
1Sheeld
× 1
中继(通用)
我使用 YW 机器人中继 4 通道
× 1
蜂鸣器
× 2
温度传感器
我正在使用 LM35DZ
× 1
跳线(通用)
× 1
PIR 运动传感器(通用)
× 1
SparkFun 磁性门开关
× 2
Adafruit 标准 LCD - 16x2 蓝底白字
× 1

必要的工具和机器

激光切割机(通用)

关于这个项目

嘿概览

故事从这里开始。

我们决定做这个项目是因为将所有这些东西一起构建是一个伟大的举措,这个项目将帮助你理解很多概念,你将获得很好的经验,所以让我们开始学习如何构建这个很酷的东西:)

我们的项目如何运作:

这个项目让你能够用你的语音命令或短信来控制你所有的房子灯:),不仅它还是一个安全系统,当任何陌生人在你睡觉或外出时进入你的家时,它会发送一封电子邮件对您说有陌生人进入您的家,警报系统(蜂鸣器)将在您家工作,而且当您发送短信打开或关闭灯时,它会向您发送一封电子邮件,告诉您订单已完成执行,如果 Tmp 传感器检测到温度。超过 35 警报(蜂鸣器)将在您家工作,系统将向您发送一封电子邮件,说温度。高于35。

注意:不要忘记在您要发出任何命令之前说 Jarvis :) 使系统能够听到您的命令。

注意:在您向系统发出任何命令后,Jarvis 都会回复您:) 就像您在与真正的助手交谈一样。

注意:打开安全系统给你的智能手机一个语音命令(安全打开),关闭安全系统说(安全关闭)

让我们了解更多关于 1sheeld 的信息:

1Sheeld 将您的智能手机变成 40 种不同的 Arduino 扩展板。因此,我们不必像智能手机中那样为 Arduino 购买防护罩。

这就是我们使用 1Sheeld Board 的原因您不需要购买任何传感器,因为您的智能手机中已经有了它们。

如果您想了解有关如何开始使用 1Sheeld 的更多信息,请单击此处

首先你需要把我们上传的CAD文件用激光切割机切割。

  • 然后你需要像这样将磁性门开关传感器放在你的门上
  • 它是一个数字传感器,所以它会返回一个数字值 0 或 1
  • 您需要在使用前校准传感器,以了解打开和关闭时的读数。

交流电灯

  • 然后,您需要在墙壁上进行切割,以便将灯放在特定的位置。
  • 并联所有灯丝。

温度传感器

  • 我正在使用 LM35DZ,它有 3 条腿
  • +V 连接到 Arduino 上的 5V
  • GND 到 Arduino 上的地面
  • 输出到 Arduino 上的引脚 A0,这将为我们提供读数

如何使用1sheeld?

1- 将 1Sheeld 堆叠在 Arduino 板上,并使用 1Sheeld 库编写代码。

2 - 使用 Arduino IDE 在 Arduino 上上传代码(您可以从这里下载 Arduino IDE)

3 - 注意:确保 UART 开关处于上传模式。

4 - 完成上传代码后,将开关带回操作模式

注意:不要忘记!如果您不将 UART 开关切换回操作模式,您的项目将无法正常工作,因为 1Sheeld 和 Arduino 板之间将无法进行通信。

1Sheld 应用程序:

  • 打开您可以从此处下载的 1Sheeld 应用程序
  • 然后打开您的应用程序并与您的开发板连接,您将需要输入配对代码(默认配对代码为 1234)并通过蓝牙连接到 1Sheeld。
  • 然后选择我们将使用的屏蔽(短信、语音识别、文本到语音、时钟、电子邮件)。
  • 现在试试你的工作:)

注意:我们制作了自己的女性贾维斯:D

制作你自己的 Jarvis。

代码

  • 智能家居自动化和安全系统
智能家居自动化和安全系统Arduino
/* * 智能家居自动化和安全系统团队 SADEE * 电子邮件:[email protected] * 如需更多像我们 FB 页面的项目:https://www.facebook.com/Scientific-%D9%90Association-of- the-Department-of-Electrical-Engineering-At-ACU-260274217766395/ */#define CUSTOM_SETTINGS //用于定义我们将使用的特定屏蔽以节省 Arduino 内存#define INCLUDE_VOICE_RECOGNIZER_SHIELD //帮助我们与1 带语音命令的板#define INCLUDE_TEXT_TO_SPEECH_SHIELD #define INCLUDE_CLOCK_SHIELD#define INCLUDE_SMS_SHIELD#define INCLUDE_EMAIL_SHIELD #include #include int 分钟,小时; //将保存小时和分钟的变量 String strh; //将使用这一行将时钟读取的Int值转换为StringString strm;char h[4];char m[4];LiquidCrystal lcd(2,3,4,5,6,7);#define receiveLamp A1 // 这是接收继电器 #define bedRoomLamp A2 // 这是卧室 #define pathRoomLamp A3 // 这是浴室 #define balaconyLamp A4 // 这是厨房 const char timeCommand[] ="现在几点"; //我们将要对 1Sheeld 说的命令执行其 Taskconst char receiveCommandOn[] ="reception on"; const char 接收CommandOff[] ="接收";const char whatsUp[] ="早上好";const char pathRoomCommandOn[] ="bathroom on";const char pathRoomCommandOff[] ="bathroom off";const char balaconyCommandOn[] ="厨房开";const char balaconyCommandOff[] ="厨房关";const char bedRoomCommandOn[] ="卧室开";const char bedRoomCommandOff[] ="卧室关";const char lightsOn[] ="on"; //This IS For SMS Shield 当我们发送短信时包含(灯亮)灯会打开const char lightsOff[] ="off"; //This IS For SMS Shield 当我们发送 SMS 时包含(Lights ooff)灯将关闭//**************************** ****************************************************** ****************************const char securityModeOn[] ="安全开启"; //这是为了安全系统 当我们说 (Security on) 然后我们触发了安全系统 任何人都会破坏系统 The Alarm Will Workconst char securityModeOff[] ="security off"; // 关闭安防系统 任何人破坏安防系统警报将不起作用//******************************* ****************************************************** ************************const char mainCommand[] ="jarvis"; //我们在任何语音命令之前说 jarvis 以使系统听到我的字符串 noon;//#define tmp A0 //对于 TMP 传感器我们使用 LM35DZ//int电压,度; //在温度变化过程中将包含不同电压的变量,以及简单数学均衡后的摄氏度。 byte smile[] ={ //在液晶屏上制作一个微笑符号 B00000, B01001, B01001, B00000, B00000, B10001, B01110, B00000,};#definemagneticReception 8 //用于接收的磁性开关#define磁性9 //Balaconyint 蜂鸣器的磁性开关2 =10; // 此蜂鸣器用于温度传感器 //D11 空闲;int buzzer1 =A5; //此蜂鸣器用于磁性开关,如果有人破坏安全系统,此蜂鸣器将工作磁接收状态; //如果为1或0,变量将包含磁性开关的读数intmagneticBalaconyState;int state =0; // 这对于 Jarvisbool 安全性; // 这对于安全系统 void setup() {noTone(buzzer1);noTone(buzzer2);//analogReference(INTERNAL); //TMP 传感器准确的参考 1.1 电压digitalWrite(receptionLamp,HIGH);digitalWrite(bedRoomLamp,HIGH);digitalWrite(pathRoomLamp,HIGH);digitalWrite(balaconyLamp,HIGH);//passState =false;lcd.begin(16) ,2); //开始液晶显示 OneSheeld.begin(); //开始OneSheeld BoardpinMode(receptionLamp,OUTPUT); pinMode(bedRoomLamp,OUTPUT);pinMode(balaconyLamp,OUTPUT);pinMode(pathRoomLamp,OUTPUT);pinMode(buzzer1,OUTPUT); //用于磁性开关pinMode(magneticReception,INPUT_PULLUP); //我们使用板载的PULLUP电阻pinMode(magneticBalacony,INPUT_PULLUP);//pinMode(tmp,INPUT);pinMode(buzzer2,OUTPUT); //对于温度传感器lcd.createChar(0,smile);lcd.clear();lcd.setCursor(0,0);lcd.print("Welcome To The ");delay(4000);lcd.clear(); lcd.setCursor(0,0);lcd.print("智能家居");lcd.setCursor(0,1);lcd.print("自动化与");延迟(4000);lcd.clear();lcd .setCursor(0,0);lcd.print("安全系统");delay(4000);lcd.clear();lcd.setCursor(0,0);lcd.print("校准....");delay(10000);if(!VoiceRecognition.isNewCommandReceived()) //如果没有语音命令打印这个字{ lcd.clear(); lcd.setCursor(1,0); lcd.print("我们来了"); lcd.setCursor(4,1); lcd.print("帮助你"); }security =false;}void loop() {Clock.queryDateAndTime(); //此函数用于使用OneSheeld Board上的时钟屏蔽查询日期和时间SMS.setOnSmsReceive(&MyFunction); //此功能对于 SMS 分钟 =Clock.getMinutes();hours =Clock.getHours();if(hours>12) //我们这样做是为了将时间从 24 小时制更改为 12 小时制并知道是上午或下午{小时-=12; noon="P M";}else{ noon="A M"; }strh =String(hours);strm =String(minutes);strh.toCharArray(h,4); //将我们转换为字符串的小时数转换为字符数组strm.toCharArray(m,4);VoiceRecognition.start(); //启动语音识别ShieldOneSheeld.delay(8000); //延迟下单然后开始 Agaimif(VoiceRecognition.isNewCommandReceived()){ if(!strcmp(mainCommand,VoiceRecognition.getLastCommand())) //比较最后一个语音命令和主命令“Alexa” { TextToSpeech .say("是的,先生"); //这个函数是命令Text To Speech Shield来执行它的任务lcd.clear(); lcd.setCursor(8,0);液晶显示器(字节(0));状态 =1; } if(!strcmp(receptionCommandOn,VoiceRecognition.getLastCommand())&&state==1) //比较最后接收到的两个字符串和我之前制作的字符串 { TextToSpeech.say("ok,接待处的灯亮了"); OneSheeld.delay(2500);数字写入(接收灯,低);液晶显示器(); lcd.setCursor(0,0); lcd.print("大厅灯是"); lcd.setCursor(8,1);液晶打印(“开”);状态=0; } else if (!strcmp(receptionCommandOff,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("好的,接待处的灯关了"); OneSheeld.delay(2500);数字写入(接收灯,高);液晶显示器(); lcd.setCursor(0,0); lcd.print("大厅灯是"); lcd.setCursor(7,1); lcd.print("关闭");状态=0; } else if (!strcmp(bedRoomCommandOn,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("好的,卧室里的灯亮了"); OneSheeld.delay(2500);数字写入(卧室灯,低);液晶显示器(); lcd.setCursor(0,0); lcd.print("卧室"); lcd.setCursor(0,1); lcd.print("灯是:开");状态=0; } else if (!strcmp(bedRoomCommandOff,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say(“好吧,卧室里的灯关了”); OneSheeld.delay(2500);数字写入(卧室灯,高);液晶显示器(); lcd.setCursor(0,0); lcd.print("卧室"); lcd.setCursor(0,1); lcd.print("灯是:关");状态=0; } else if (!strcmp(pathRoomCommandOn,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("好的先生,浴室里的灯亮了"); OneSheeld.delay(2500);数字写入(路径房间灯,低);液晶显示器(); lcd.setCursor(0,0); lcd.print("浴室"); lcd.setCursor(0,1); lcd.print("灯是:开");状态=0; } else if (!strcmp(pathRoomCommandOff,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say(“好吧,浴室里的灯关了”); OneSheeld.delay(2500);数字写入(路径房间灯,高);液晶显示器(); lcd.setCursor(0,0); lcd.print("浴室"); lcd.setCursor(0,1); lcd.print("灯是:关"); } else if (!strcmp(balaconyCommandOn,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("好的先生,厨房里的灯亮了"); OneSheeld.delay(2500);数字写入(balaconyLamp,低);液晶显示器(); lcd.setCursor(0,0); lcd.print("厨房"); lcd.setCursor(0,1); lcd.print("灯是:开");状态=0; } else if (!strcmp(balaconyCommandOff,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("好吧,厨房里的灯关了"); OneSheeld.delay(2500);数字写入(balaconyLamp,高);液晶显示器(); lcd.setCursor(0,0); lcd.print("厨房"); lcd.setCursor(0,1); lcd.print("灯是:关");状态=0; } else if(!strcmp(whatsUp,VoiceRecognition.getLastCommand())&&state==1) { lcd.clear(); lcd.setCursor(0,0); lcd.print("早上好:)"); lcd.setCursor(0,1); lcd.print("今天是个好日子"); TextToSpeech.say("早上好先生"); OneSheeld.delay(1500); TextToSpeech.say("在开罗的时间是"); OneSheeld.delay(1500); TextToSpeech.say(h); OneSheeld.delay(1000); TextToSpeech.say(m); OneSheeld.delay(1000); TextToSpeech.say(中午);状态=0; } else if(!strcmp(timeCommand,VoiceRecognition.getLastCommand())&&state==1) { lcd.clear(); lcd.setCursor(0,0); lcd.print("时间在开罗是"); lcd.setCursor(0,1);液晶显示(h); lcd.print(":");液晶打印(米);液晶打印(“”);液晶打印(中午); TextToSpeech.say("在开罗的时间是"); OneSheeld.delay(1500); TextToSpeech.say(h); OneSheeld.delay(1000); TextToSpeech.say(m); OneSheeld.delay(1000); TextToSpeech.say(中午);状态=0; } //**************************************************** ************************************************* 别的if (!strcmp(securityModeOn,VoiceRecognition.getLastCommand())&&state==1) { lcd.clear(); lcd.setCursor(0,0); lcd.write("好的,先生感觉安全"); lcd.setCursor(0,1); lcd.write("安全模式");延迟(200); TextToSpeech.say("安全系统被触发");安全=真;状态=0; }else if (!strcmp(securityModeOff,VoiceRecognition.getLastCommand())&&state==1) { lcd.clear(); lcd.setCursor(0,0); lcd.write("好的,保安先生"); lcd.setCursor(0,1); lcd.write("关闭");延迟(200); TextToSpeech.say("安全系统已关闭");安全=假;状态=0; }//************************************************** ************保安系统 ************************************ ************************ 磁接收状态 =数字读取(磁接收);磁平衡状态 =数字读取(磁平衡);如果(安全 ==真){ 如果(磁接收状态 ==HIGH ||magneticBalaconyState ==HIGH) //如果有人在安全系统工作时打开门,它会发出警报 {tone(buzzer1,1500); Email.send("[email protected]","家庭安全系统","有人进入你家,小心"); OneSheeld.delay(3500); } else if (magneticReceptionState ==LOW ||magneticBalaconyState ==LOW) { noTone(buzzer1); }}else if (security ==false){ noTone(buzzer1);}/*电压=模拟读取(tmp);电压 =电压 * 1100 / 1024;度数 =电压 / 10;如果(度数> =35){音(蜂鸣器2,1500); Email.send("[email protected]","家庭安全系统","厨房温度高于45度,小心"); OneSheeld.delay(5000); } else if (degree<25) { noTone(buzzer2); }*/}//************************************************ ****************************************************** *********************************void MyFunction(char* phoneNumber , char* messageBody) // SMS Function () {if(!strcmp(lightsOn,messageBody)) //如果我们发送“灯亮”作为短信所有灯都会亮{ digitalWrite(receptionLamp,LOW);延迟(500);数字写入(路径房间灯,低);延迟(500);数字写入(卧室灯,低);延迟(500);数字写入(balaconyLamp,低);延迟(500); TextToSpeech.say("所有灯都打开了");液晶显示器(); lcd.setCursor(0,0); lcd.print("所有灯都亮了");延迟(300); Email.send("[email protected]","家庭安全系统","所有灯都亮了"); OneSheeld.delay(3500);}else if(!strcmp(lightsOff,messageBody)) //如果我们发送“关灯”作为短信,所有的灯都将关闭{ digitalWrite(receptionLamp,HIGH);延迟(500);数字写入(路径房间灯,高);延迟(500);数字写入(卧室灯,高);延迟(500);数字写入(balaconyLamp,高);延迟(500); TextToSpeech.say("所有灯都关了");液晶显示器(); lcd.setCursor(0,0); lcd.print("所有灯都关了");延迟(300); Email.send("[email protected]","家庭安全系统"," all Were Turned "); OneSheeld.delay(3500);}}

定制零件和外壳

draw_lasser_cutting_lvvsN9X9Xg.dwg

示意图


制造工艺

  1. 家庭自动化应用
  2. Silicon Labs 展示智能家居和楼宇自动化连接解决方​​案
  3. 带有 Sensorflare 和 RaspberryPi 的 433MHz 智能家居控制器
  4. 带摄像头和 PIR 传感器的 Raspberry Pi 家庭安全系统
  5. 使用 Arduino 和 RFID 和 Python 的考勤系统
  6. 使用 Arduino、1Sheeld 和 Android 的通用远程控制
  7. IOT - 使用 ESP8266、Arduino 和超声波传感器的智能罐
  8. Sonar 使用 arduino 并在处理 IDE 上显示
  9. 使用 Arduino 的简单智能机械臂
  10. 简单智能的空气净化器系统
  11. 使用智能手机控制您的灯光系统
  12. 基于 Arduino 的安全系统