Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Smart Home Automation en beveiligingssysteem met 1Sheeld

Componenten en benodigdheden

Arduino UNO
× 1
1Sheeld
× 1
Relais (algemeen)
ik gebruik YW Robot Relay 4-kanaals
× 1
Zoemer
× 2
Temperatuursensor
Ik gebruik LM35DZ
× 1
Jumperdraden (algemeen)
× 1
PIR-bewegingssensor (algemeen)
× 1
SparkFun magnetische deurschakelaar
× 2
Adafruit Standaard LCD - 16x2 Wit op Blauw
× 1

Benodigde gereedschappen en machines

Lasersnijder (algemeen)

Over dit project

Hey Overzicht

Het verhaal begint hier.

We hebben besloten om dit project te maken omdat het een geweldige zet was om al deze dingen samen te bouwen, dit project zal je helpen veel concepten te begrijpen en je zult een goede ervaring opdoen, dus laten we beginnen te leren hoe je dit coole spul kunt bouwen :)

Hoe ons project werkt:

Met dit project kun je al je huisverlichting bedienen met je spraakopdrachten of met een sms :), niet alleen dit was ook een beveiligingssysteem, wanneer een vreemdeling je huis binnenkomt terwijl je slaapt of buiten je huis, stuurt het een e-mail Aan u zegt dat er een vreemdeling uw huis is binnengekomen en dat een alarmsysteem (zoemer) bij u thuis zal werken, ook wanneer u een sms verzendt om het licht aan of uit te doen, wordt er een e-mail naar u verzonden om u te vertellen dat de bestelling was Uitgevoerd, ook als de Tmp-sensor detecteert dat de temp. Is meer dan 35 Een alarm (zoemer) zal thuis werken en het systeem zal u een e-mail sturen waarin staat dat de temp. Was hoger dan 35 .

OPMERKING:vergeet niet Jarvis te zeggen vóór elk commando dat je wilt geven :) om ervoor te zorgen dat het systeem je commando kan horen.

OPMERKING:na elk commando dat je aan het systeem geeft, zal Jarvis op je reageren :) Alsof je met je echte assistent praat.

OPMERKING:om het beveiligingssysteem in te schakelen, geeft u uw smartphone een spraakopdracht (beveiliging aan), om het beveiligingssysteem uit te schakelen, zeg (beveiliging uit)

Laten we meer weten over 1sheeld:

1Sheeld verandert je smartphone in 40 verschillende Arduino-schilden. We hoeven dus geen schilden voor Arduino te kopen zoals we die in onze smartphone hebben.

Dit is de reden waarom we het 1Sheeld Board gebruiken. Je hoeft geen sensoren te kopen omdat je ze al in je smartphone hebt.

Als u meer wilt weten over hoe u aan de slag kunt gaan met 1Sheeld, klik dan hier

Eerst moet u het CAD-bestand nemen dat we hebben geüpload en het met de lasersnijmachine knippen.

  • Dan moet je de magnetische deurschakelaarsensor zo op je deur plaatsen
  • Het was een digitale sensor, dus het zal een digitale waarde 0 OF 1 teruggeven
  • U moet uw sensor kalibreren voordat u deze gebruikt om te weten wat de meetwaarde is wanneer deze open was en wanneer deze gesloten was.

De AC-lampen

  • Dan moet je in de muren snijden om de lampen op hun specifieke plaats te plaatsen.
  • Sluit alle lampdraden parallel aan.

De temperatuursensor

  • Ik gebruik LM35DZ die 3 poten heeft
  • +V is verbonden met 5V op de Arduino
  • GND naar de grond op de Arduino
  • OUTPUT naar de pin A0 op de Arduino die ons de meting zal geven

Hoe 1sheeld te gebruiken?

1- Stapel 1Sheeld bovenop uw Arduino-bord en schrijf de code met behulp van de 1Sheeld-bibliotheek.

2 - Upload de code op de Arduino met behulp van Arduino IDE (u kunt Arduino IDE hier downloaden)

3 - Opmerking:zorg ervoor dat de UART-schakelaar in de uploadmodus staat.

4 - Nadat het uploaden van de code is voltooid, brengt u de schakelaar terug naar de bedieningsmodus

Opmerking:niet vergeten! Als u de UART Switch niet terugzet naar de bedrijfsmodus, zal uw project niet goed werken omdat u geen communicatie hebt tussen 1Sheeld en het Arduino-bord.

De 1Sheeld-toepassing:

  • Open uw 1Sheeld-toepassing die u hier kunt downloaden
  • Open vervolgens uw applicatie en maak verbinding met uw board. U moet de koppelingscode invoeren (de standaardkoppelingscode is 1234) en verbinding maken met 1Sheeld via bluetooth.
  • Kies vervolgens de schilden die we zullen gebruiken (sms, spraakherkenning, tekst-naar-spraak, klok, e-mail).
  • Probeer nu je werk :)

OPMERKING:we hebben onze eigen vrouwelijke Jarvis gemaakt:D

Maak je eigen Jarvis.

Code

  • Smart Home Automation &Beveiligingssysteem
Smart Home Automation &Security SystemArduino
/* * Smart Home Automation en beveiligingssysteem Team SADEE * E-MAIL:[email protected] * Voor meer projecten, zoals onze FB-pagina:https://www.facebook.com/Scientific-%D9%90Association-of- the-Department-of-Electrical-Engineering-At-ACU-260274217766395/ */#define CUSTOM_SETTINGS //Gebruikt om specifieke schilden te definiëren waarmee we zullen werken om het Arduino-geheugen te bewaren#define INCLUDE_VOICE_RECOGNIZER_SHIELD //Help ons om te communiceren met de 1 schildbord met spraakopdrachten#define INCLUDE_TEXT_TO_SPEECH_SHIELD #define INCLUDE_CLOCK_SHIELD#define INCLUDE_SMS_SHIELD#define INCLUDE_EMAIL_SHIELD #include #include in minuten,uren; // Variabelen die het uur en de minuten erin zullen opslaan String strh; // Zal deze regel gebruiken om de int-waarde die de klok leest om te zetten naar StringString strm;char h[4];char m[4];LiquidCrystal lcd(2,3,4,5,6,7);#define receptieLamp A1 // Dit IS het ontvangstrelais #define bedRoomLamp A2 // Dit is de slaapkamer #define pathRoomLamp A3 // Dit IS de badkamer #define balaconyLamp A4 // Dit IS de keuken const char timeCommand[] ="hoe laat is het"; //De commando's die we tegen de 1Sheeld zullen zeggen om zijn taak uit te voerenconst char receptieCommandOn[] ="receptie op"; const char receptieCommandOff[] ="ontvangst van";const char whatsUp[] ="goedemorgen";const char pathRoomCommandOn[] ="badkamer aan";const char pathRoomCommandOff[] ="badkamer uit";const char balaconyCommandOn[] ="keuken aan";const char balaconyCommandOff[] ="keuken uit";const char bedRoomCommandOn[] ="slaapkamer aan";const char bedRoomCommandOff[] ="slaapkamer uit";const char lightsOn[] ="aan"; //Dit IS voor sms-schild wanneer we een sms verzenden Bevat (lichten aan) De lichten gaan aanconst char lightsOff [] ="off"; //Dit IS voor sms-schild wanneer we een sms verzenden Bevat (lichten uit) De lichten gaan uit //************************* ********************************************** **************************const char securityModeOn[] ="beveiliging aan"; //Dit is voor het beveiligingssysteem Als we zeggen (beveiliging aan) dan hebben we het beveiligingssysteem geactiveerd Iedereen zal het systeem breken Het alarm werkt char securityModeOff[] ="beveiliging uit"; // Het beveiligingssysteem uitschakelen Iedereen breekt het beveiligingssysteem Het alarm werkt niet//*********************************** ********************************************** *********************const char mainCommand[] ="jarvis"; // We zeggen jarvis voor elk spraakcommando om het systeem me te laten horen 's middags;//#define tmp A0 //Voor de TMP-sensor gebruiken we LM35DZ//int voltage,degree; // De variabelen die de verschillende spanningen bevatten tijdens het veranderen van temperaturen, en de graad in Celisus na een eenvoudige wiskundige EQ. byte smile [] ={//Making A Smile Symbol On The Liquid Crystal Screen B00000, B01001, B01001, B00000, B000000, B10001, B01110, B00000,};#define magneticReception 8 //The magnetische schakelaar voor de receptie#define magneticBalacony 9 //De magnetische schakelaar voor de Balaconyint-zoemer2 =10; // Deze zoemer is voor temperatuursensor // D11 was gratis; int buzzer1 =A5; //Deze zoemer is voor de magnetische schakelaars. Als iemand het beveiligingssysteem breekt, werkt deze zoemer in de magnetische ontvangststatus; // Variabele bevat de uitlezing van de magnetische schakelaar als deze 1 of 0int magnetischeBalaconyState was;int state =0; // Dit voor Jarvisbool-beveiliging; // This For the Security System void setup() {noTone(buzzer1);noTone(buzzer2);//analogReference(INTERNAL); //Referentie voor de nauwkeurigheid van de TMP-sensor 1.1 VoltagedigitalWrite(receptionLamp,HIGH);digitalWrite(bedRoomLamp,HIGH);digitalWrite(pathRoomLamp,HIGH);digitalWrite(balaconyLamp,HIGH);//passState =false;lcd.begin(16 ,2); //Begin De LCD OneSheeld.begin(); //Begin de OneSheeld BoardpinMode (receptionLamp, OUTPUT); pinMode(bedRoomLamp,OUTPUT);pinMode(balaconyLamp,OUTPUT);pinMode(pathRoomLamp,OUTPUT);pinMode(zoemer1,OUTPUT); // voor magnetische switchpinMode (magneticReception, INPUT_PULLUP); // We gebruiken de PULLUP-weerstand die is ingebouwd in de BoardpinMode (magneticBalacony, INPUT_PULLUP);//pinMode (tmp, INPUT); pinMode (buzzer2, OUTPUT); //for temperatuursensorlcd.createChar(0,smile);lcd.clear();lcd.setCursor(0,0);lcd.print("Welkom bij de ");delay(4000);lcd.clear(); lcd.setCursor(0,0);lcd.print("Smart Home");lcd.setCursor(0,1);lcd.print("Automatisering en ");delay(4000);lcd.clear();lcd .setCursor(0,0);lcd.print("Beveiligingssysteem");delay(4000);lcd.clear();lcd.setCursor(0,0);lcd.print("KALIBREREN....");delay (10000);if(!VoiceRecognition.isNewCommandReceived()) //Als er geen spraakcommando's zijn Print deze woorden{ lcd.clear(); lcd.setCursor(1,0); lcd.print("We zijn hier om"); lcd.setCursor(4,1); lcd.print("HELP U"); }beveiliging =false;}void loop() {Clock.queryDateAndTime(); // Deze functie voor het opvragen van de datum en tijd met behulp van het klokschild op de OneSheeld BoardSMS.setOnSmsReceive (&MyFunction); //Deze functie voor de sms-minuten =Clock.getMinutes();hours =Clock.getHours();if(hours>12) //We doen dit om de tijd te veranderen van 24-uurssysteem naar 12-uursysteem en om te weten is Het AM of PM{ uur-=12; noon="PM";}anders{ noon="A M"; }strh =String(uren);strm =String(minuten);strh.toCharArray(h,4); // De uren die we converteren naar string omzetten in een Char Arraystrm.toCharArray(m,4);VoiceRecognition.start(); //Start The Voice Recognition ShieldOneSheeld.delay (8000); // Vertraging om de bestellingen te maken Start vervolgens Agaimif (VoiceRecognition.isNewCommandReceived ()) {if (!strcmp (mainCommand, VoiceRecognition.getLastCommand ())) // Vergelijk de laatste spraakopdracht met de hoofdopdracht die "Alexa" is {TextToSpeech .say("ja meneer"); //Deze functie is om het tekst-naar-spraakscherm te bestellen om zijn taak uit te voeren lcd.clear(); lcd.setCursor(8,0); lcd.schrijven(byte(0)); staat =1; } if(!strcmp(receptionCommandOn,VoiceRecognition.getLastCommand())&&state==1) //Vergelijk de twee strings De laatst ontvangen opdracht en de string die ik eerder heb gemaakt { TextToSpeech.say("ok meneer lamp in de receptie is aan "); OneSheeld.vertraging (2500); digitalWrite (receptieLamp, LAAG); lcd.wissen(); lcd.setCursor(0,0); lcd.print("De Zaallamp Is"); lcd.setCursor(8,1); lcd.print("AAN"); staat =0; } else if (!strcmp(receptionCommandOff,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("ok meneer lamp in de receptie is uit"); OneSheeld.vertraging (2500); digitalWrite (receptieLamp, HOOG); lcd.wissen(); lcd.setCursor(0,0); lcd.print("De Zaallamp Is"); lcd.setCursor(7,1); lcd.print("UIT"); staat =0; } else if (!strcmp(bedRoomCommandOn,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("oke meneer lamp in de slaapkamer is aan"); OneSheeld.vertraging (2500); digitalWrite (bedRoomLamp, LAAG); lcd.wissen(); lcd.setCursor(0,0); lcd.print("De Slaapkamer"); lcd.setCursor(0,1); lcd.print("lamp is:AAN"); staat =0; } else if (!strcmp(bedRoomCommandOff,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("oke meneer de lamp in de slaapkamer is uit"); OneSheeld.vertraging (2500); digitalWrite (slaapkamerLamp, HOOG); lcd.wissen(); lcd.setCursor(0,0); lcd.print("De Slaapkamer"); lcd.setCursor(0,1); lcd.print("lamp is:UIT"); staat=0; } else if (!strcmp(pathRoomCommandOn,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("oke meneer de lamp in de badkamer is aan"); OneSheeld.vertraging (2500); digitalWrite(pathRoomLamp,LOW); lcd.wissen(); lcd.setCursor(0,0); lcd.print("De badkamer"); lcd.setCursor(0,1); lcd.print("lamp is:AAN"); staat=0; } else if (!strcmp(pathRoomCommandOff,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("oke meneer de lamp in de badkamer is uit"); OneSheeld.vertraging (2500); digitalWrite(pathRoomLamp,HIGH); lcd.wissen(); lcd.setCursor(0,0); lcd.print("De badkamer"); lcd.setCursor(0,1); lcd.print("lamp is:UIT"); } else if (!strcmp(balaconyCommandOn,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("oke meneer lamp in de keuken is aan"); OneSheeld.vertraging (2500); digitalWrite (balaconyLamp, LAAG); lcd.wissen(); lcd.setCursor(0,0); lcd.print("De keuken"); lcd.setCursor(0,1); lcd.print("Lamp is:AAN"); staat=0; } else if (!strcmp(balaconyCommandOff,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("oke meneer de lamp in de keuken is uit"); OneSheeld.vertraging (2500); digitalWrite (balaconyLamp, HOOG); lcd.wissen(); lcd.setCursor(0,0); lcd.print("De keuken"); lcd.setCursor(0,1); lcd.print("Lamp is:UIT"); staat=0; } else if(!strcmp(whatsUp,VoiceRecognition.getLastCommand())&&state==1) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Goedemorgen :)"); lcd.setCursor(0,1); lcd.print("Het is een goede dag"); TextToSpeech.say("goedemorgen meneer"); OneSheeld.vertraging (1500); TextToSpeech.say("tijd in Caïro is"); OneSheeld.vertraging (1500); TextToSpeech.say(h); OneSheeld.vertraging (1000); TextToSpeech.say(m); OneSheeld.vertraging (1000); TextToSpeech.say (middag); staat=0; } else if(!strcmp(timeCommand,VoiceRecognition.getLastCommand())&&state==1) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Tijd in Caïro is"); lcd.setCursor(0,1); lcd.print(h); lcd.print(":"); lcd.afdruk(m); lcd.print(" "); lcd.print(middag); TextToSpeech.say("tijd in Caïro is"); OneSheeld.vertraging (1500); TextToSpeech.say(h); OneSheeld.vertraging (1000); TextToSpeech.say(m); OneSheeld.vertraging (1000); TextToSpeech.say (middag); staat=0; } //************************************************** ********************************************** anders if (!strcmp(securityModeOn,VoiceRecognition.getLastCommand())&&state==1) { lcd.clear(); lcd.setCursor(0,0); lcd.write("Ok, meneer Voel u veilig"); lcd.setCursor(0,1); lcd.write("Beveiligingsmodus"); vertraging (200); TextToSpeech.say("beveiligingssysteem is geactiveerd"); beveiliging=waar; staat=0; }else if (!strcmp(securityModeOff,VoiceRecognition.getLastCommand())&&state==1) { lcd.clear(); lcd.setCursor(0,0); lcd.write("Ok, meneer Beveiliging"); lcd.setCursor(0,1); lcd.write("is UIT"); vertraging (200); TextToSpeech.say("beveiligingssysteem is uitgeschakeld"); beveiliging=false; staat=0; } }//************************************************** ************Beveiligingssysteem ************************************ ********************* magneticReceptionState =digitalRead(magneticReception);magneticBalaconyState =digitalRead(magneticBalacony);if(security ==true){ if(magneticReceptionState ==HOOG || magneticBalaconyState ==HOOG) //Als iemand de deur opent terwijl het beveiligingssysteem aan het werk was, gaat het alarm { tone(buzzer1 ,1500); Email.send("[email protected]","Home Security System","Iemand is uw huis binnengekomen, wees voorzichtig"); OneSheeld.vertraging (3500); } else if (magneticReceptionState ==LAAG || magneticBalaconyState ==LAAG) { noTone(buzzer1); }}else if (security ==false){ noTone(buzzer1);}/*voltage =analogRead(tmp); spanning =spanning * 1100/1024; graad =spanning / 10; if(graad>=35) { toon(zoemer2,1500); Email.send("[email protected]","Home Security System","De temperatuur in de keuken IS hoger dan 45, wees voorzichtig"); OneSheeld.vertraging (5000); } else if (graad<25) { noTone(buzzer2); }*/}//********************************************* ********************************************** ******************************* ongeldig MyFunction (char* phoneNumber, char* messageBody) // SMS-functie () {if(!strcmp(lightsOn,messageBody)) //Als we "lights on" als sms sturen, gaan alle lichten aan {digitalWrite(receptionLamp,LOW); vertraging (500); digitalWrite(pathRoomLamp,LOW); vertraging (500); digitalWrite (bedRoomLamp, LAAG); vertraging (500); digitalWrite (balaconyLamp, LAAG); vertraging (500); TextToSpeech.say("alle lichten waren aan"); lcd.wissen(); lcd.setCursor(0,0); lcd.print("Alle lampjes zijn AAN"); vertraging (300); Email.send("[email protected]","Home Security System","alle lichten waren ingeschakeld"); OneSheeld.delay(3500);}else if(!strcmp(lightsOff,messageBody)) //Als we "lichten uit" als sms sturen, gaan alle lichten uit {digitalWrite(receptionLamp,HIGH); vertraging (500); digitalWrite(pathRoomLamp,HIGH); vertraging (500); digitalWrite (slaapkamerLamp, HOOG); vertraging (500); digitalWrite (balaconyLamp, HOOG); vertraging (500); TextToSpeech.say("alle lichten waren uit"); lcd.wissen(); lcd.setCursor(0,0); lcd.print("Alle lampjes zijn UIT"); vertraging (300); Email.send("[email protected]","Huisbeveiligingssysteem","allemaal UITGESCHAKELD"); OneSheeld.delay(3500);}}

Aangepaste onderdelen en behuizingen

tekening_lasser_cutting_lvvsN9X9Xg.dwg

Schema's


Productieproces

  1. Toepassingen van domotica
  2. Silicon Labs presenteert slimme connectiviteitsoplossingen voor huis- en gebouwautomatisering
  3. 433MHz Smart Home Controller met Sensorflare en een RaspberryPi
  4. Raspberry Pi-huisbeveiligingssysteem met camera en PIR-sensor
  5. Aanwezigheidssysteem met Arduino en RFID met Python
  6. Universele afstandsbediening met Arduino, 1Sheeld en Android
  7. IOT - Smart Jar met ESP8266, Arduino en ultrasone sensor
  8. Sonar met arduino en weergave op verwerkings-IDE
  9. Eenvoudige en slimme robotarm met Arduino
  10. Eenvoudig en slim luchtzuiveringssysteem
  11. Bedien uw lichtsysteem met een smartphone