Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Système de domotique et de sécurité intelligent utilisant 1Sheeld

Composants et fournitures

Arduino UNO
× 1
1Sheeld
× 1
Relais (générique)
iam utilisant YW Robot Relay 4 Channel
× 1
Sonnerie
× 2
Capteur de température
J'utilise LM35DZ
× 1
Câbles de raccordement (générique)
× 1
Capteur de mouvement PIR (générique)
× 1
Interrupteur de porte magnétique SparkFun
× 2
Adafruit Standard LCD - 16x2 Blanc sur Bleu
× 1

Outils et machines nécessaires

Coupe laser (générique)

À propos de ce projet

Salut aperçu

L'histoire commence à partir d'ici.

Nous avons décidé de faire ce projet parce que c'était un grand pas pour construire tout cela ensemble, ce projet vous aidera à comprendre beaucoup de concepts et vous obtiendrez une bonne expérience alors commençons à apprendre à construire ce truc sympa :)

Comment fonctionne notre projet :

Ce projet vous permet de contrôler toutes les lumières de votre maison avec vos commandes vocales ou avec un SMS :) To You dit qu'un étranger est entré dans votre maison et qu'un système d'alarme (buzzer) fonctionnera chez vous, également lorsque vous envoyez un SMS pour allumer ou éteindre les lumières, il vous envoie un e-mail pour vous dire que la commande a été Exécuté, également si le capteur Tmp détecte que la température. Est plus de 35 ans, une alarme (buzzer) fonctionnera à votre domicile et le système vous enverra un e-mail indiquant que la température. Était supérieur à 35 .

REMARQUE :N'oubliez pas de dire Jarvis avant toute commande que vous souhaitez donner :) Pour que le système puisse entendre votre commande.

REMARQUE :après toute commande que vous donnez au système, Jarvis vous répondra :) comme si vous parliez avec votre véritable assistant.

REMARQUE :pour activer le système de sécurité, donnez à votre smartphone une commande vocale (sécurité activée), pour désactiver le système de sécurité, dites (sécurité désactivée)

en savoir plus sur 1sheeld :

1Sheeld transforme votre smartphone en 40 shields Arduino différents. Nous n'avons donc pas à acheter de boucliers pour Arduino car nous les avons dans notre smartphone.

C'est la raison pour laquelle nous utilisons la carte 1Sheeld, vous n'avez pas besoin d'acheter de capteurs car vous les avez déjà dans votre smartphone.

Si vous voulez en savoir plus sur la façon de démarrer avec 1Sheeld, cliquez ici

Vous devez d'abord prendre le fichier CAO que nous avons téléchargé et le couper avec la machine de découpe laser.

  • Ensuite, vous devez placer le capteur d'interrupteur de porte magnétique sur votre porte comme ceci
  • C'était un capteur numérique, il renverra donc une valeur numérique 0 OU 1
  • Vous devez calibrer votre capteur avant de l'utiliser pour savoir quelle est la lecture lorsqu'il était ouvert et lorsqu'il était fermé.

Les lampes AC

  • Ensuite, vous devez couper les murs pour mettre les lampes à leurs emplacements spécifiques.
  • Connectez tous les fils des lampes en parallèle.

Le capteur de température

  • J'utilise LM35DZ qui a 3 pattes
  • +V est connecté à 5V sur l'Arduino
  • GND au sol sur l'Arduino
  • SORTIE vers la broche A0 de l'Arduino qui nous donnera la lecture

Comment utiliser 1sheeld ?

1- Empilez 1Sheeld sur votre carte Arduino et écrivez le code à l'aide de la bibliothèque 1Sheeld.

2 - Téléchargez le code sur l'Arduino à l'aide de l'IDE Arduino (vous pouvez télécharger l'IDE Arduino à partir d'ici)

3 - Remarque :Assurez-vous que le commutateur UART est en mode de téléchargement.

4 - Une fois le téléchargement du code terminé, ramenez le commutateur en mode de fonctionnement

Remarque :N'oubliez pas ! Si vous ne remettez pas le commutateur UART en mode de fonctionnement, votre projet ne fonctionnera pas correctement car vous n'aurez aucune communication entre 1Sheeld et la carte Arduino.

L'application 1Sheeld :

  • Ouvrez votre application 1Sheeld, vous pouvez la télécharger à partir d'ici
  • Ensuite, ouvrez votre application et connectez-vous avec votre carte, vous devrez saisir le code d'appairage (le code d'appairage par défaut est 1234) et vous connecter à 1Sheeld via Bluetooth.
  • Ensuite, choisissez les boucliers que nous utiliserons (SMS, reconnaissance vocale, synthèse vocale, horloge, e-mail).
  • Maintenant, essayez votre travail :)

REMARQUE :Nous avons créé notre propre Jarvis féminin :D

Faites votre propre Jarvis.

Code

  • Système de domotique et de sécurité intelligents
Système de domotique et de sécurité intelligentArduino
/* * Équipe SADEE Smart Home Automation And Security System * EMAIL :[email protected] * Pour plus de projets comme notre page FB :https://www.facebook.com/Scientific-%D9%90Association-of- the-Department-of-Electrical-Engineering-At-ACU-260274217766395/ */#define CUSTOM_SETTINGS //Utilisé pour définir un bouclier spécifique avec lequel nous travaillerons pour enregistrer la mémoire Arduino#define INCLUDE_VOICE_RECOGNIZER_SHIELD //Aidez-nous à communiquer avec le 1 panneau Sheeld avec commandes vocales#define INCLUDE_TEXT_TO_SPEECH_SHIELD #define INCLUDE_CLOCK_SHIELD#define INCLUDE_SMS_SHIELD#define INCLUDE_EMAIL_SHIELD #include #include int minutes,heures ; //Variables qui économiseront l'heure et les minutes String strh; //Utilisera cette ligne pour convertir la valeur entière que l'horloge lit en StringString;char h[4];char m[4];LiquidCrystal lcd(2,3,4,5,6,7);#define receptionLamp A1 // C'est le relais de réception #define bedRoomLamp A2 // C'est la chambre #define pathRoomLamp A3 // C'EST la salle de bain #define balaconyLamp A4 // C'est la cuisine const char timeCommand[] ="quelle heure est-il"; //Les commandes que nous allons dire au 1Sheeld pour exécuter sa tâcheconst char receptionCommandOn[] ="reception on"; const char receptionCommandOff[] ="reception of";const char whatsUp[] ="bonjour";const char pathRoomCommandOn[] ="bathroom on";const char pathRoomCommandOff[] ="bathroom off";const char balaconyCommandOn[] ="kitchen on";const char balaconyCommandOff[] ="kitchen off";const char bedRoomCommandOn[] ="chambre on";const char bedRoomCommandOff[] ="chambre off";const char lightsOn[] ="on"; // Ceci est pour le bouclier SMS lorsque nous envoyons un SMS contenant (voyants allumés) Les voyants s'allumerontconst char lightsOff[] ="off"; // Ceci est pour SMS Shield lorsque nous envoyons un SMS contenant (lumières éteintes) Les lumières s'éteindront //****************************** ******************************************************** ****************************const char securityModeOn[] ="sécurité activée"; // Ceci est pour le système de sécurité lorsque nous disons (Sécurité activée) Ensuite, nous avons déclenché le système de sécurité. N'importe qui brisera le système. L'alarme fonctionnera. // Désactivation du système de sécurité N'importe qui brise le système de sécurité L'alarme ne fonctionnera pas //************************************ ******************************************************** *************************const char mainCommand[] ="jarvis"; //Nous disons jarvis avant toute commande vocale pour que le système m'entende midi ;//#define tmp A0 //Pour le capteur TMP, nous utilisons LM35DZ//int voltage,degree ; //Les variables qui contiendront les différentes tensions lors du changement de température, et le degré en Celsius après un simple égaliseur mathématique. byte smile[] ={ //Faire un symbole de sourire sur l'écran à cristaux liquides B00000, B01001, B01001, B00000, B00000, B10001, B01110, B00000,};#definemagneticReception 8 //Le commutateur magnétique pour la réception#definemagneticBalacony 9 // Le commutateur magnétique pour le buzzer Balaconyint2 =10; // Ce Buzzer est pour le capteur de température //D11 Was Free;int buzzer1 =A5; //Ce buzzer est destiné aux commutateurs magnétiques si quelqu'un casse le système de sécurité, ce buzzer fonctionnera dans l'état de réception magnétique ; //La variable contiendra la lecture du commutateur magnétique s'il était 1 ou 0intmagneticBalaconyState;int state =0; // Ceci pour la sécurité Jarvisbool ; // Ceci pour le système de sécurité void setup() {noTone(buzzer1);noTone(buzzer2);//analogReference(INTERNAL); //Référence pour que le capteur TMP soit précis 1.1 VoltagedigitalWrite(receptionLamp,HIGH);digitalWrite(bedRoomLamp,HIGH);digitalWrite(pathRoomLamp,HIGH);digitalWrite(balaconyLamp,HIGH);//passState =false;lcd.begin(16 ,2) ; // Commencer l'écran LCD OneSheeld.begin(); //Commencer le OneSheeld BoardpinMode(receptionLamp,OUTPUT); pinMode(bedRoomLamp,OUTPUT);pinMode(balaconyLamp,OUTPUT);pinMode(pathRoomLamp,OUTPUT);pinMode(buzzer1,OUTPUT); //pour le switchpinMode magnétique (réception magnétique, INPUT_PULLUP); //Nous utilisons la résistance PULLUP intégrée dans le BoardpinMode (Balacony magnétique, INPUT_PULLUP); // pinMode (tmp, INPUT); pinMode (buzzer2, OUTPUT); //pour le capteur de températurelcd.createChar(0,smile);lcd.clear();lcd.setCursor(0,0);lcd.print("Bienvenue dans le ");delay(4000);lcd.clear(); lcd.setCursor(0,0);lcd.print("Smart Home");lcd.setCursor(0,1);lcd.print("Automation et ");delay(4000);lcd.clear();lcd .setCursor(0,0);lcd.print("Système de sécurité");delay(4000);lcd.clear();lcd.setCursor(0,0);lcd.print("CALIBRAGE....");delay(10000);if(!VoiceRecognition.isNewCommandReceived()) //S'il n'y a pas de commandes vocales, imprimez ces mots{ lcd.clear(); lcd.setCursor(1,0) ; lcd.print("Nous sommes là pour"); lcd.setCursor(4,1) ; lcd.print("AIDEZ-VOUS"); }security =false;}void loop() {Clock.queryDateAndTime(); //Cette fonction pour interroger la date et l'heure à l'aide du bouclier d'horloge sur le OneSheeld BoardSMS.setOnSmsReceive(&MyFunction); //Cette fonction pour les minutes SMS =Clock.getMinutes();hours =Clock.getHours();if(hours>12) //Nous faisons cela pour changer l'heure du système de 24 heures en système de 12 heures et savoir c'est Il AM ou PM{ heures-=12 ; midi="P M";}else{ midi="A M"; }strh =String(heures);strm =String(minutes);strh.toCharArray(h,4); //Conversion des heures que nous convertissons en chaîne en un caractère Arraystrm.toCharArray(m,4);VoiceRecognition.start(); //Démarrer la reconnaissance vocale ShieldOneSheeld.delay(8000); //Délai de faire les commandes puis démarrez Agaimif(VoiceRecognition.isNewCommandReceived()){ if(!strcmp(mainCommand,VoiceRecognition.getLastCommand())) //Comparez la dernière commande vocale avec la commande principale qui est "Alexa" { TextToSpeech .say("oui monsieur"); //Cette fonction consiste à ordonner au bouclier de synthèse vocale d'effectuer sa tâche lcd.clear(); lcd.setCursor(8,0) ; lcd.write(byte(0)); état =1 ; } if(!strcmp(receptionCommandOn,VoiceRecognition.getLastCommand())&&state==1) //Comparer les deux chaînes, la dernière commande reçue et la chaîne que j'ai faite avant { TextToSpeech.say("ok monsieur la lampe à la réception est allumée "); OneSheeld.delay(2500); digitalWrite(réceptionLampe,LOW); lcd.clear(); lcd.setCursor(0,0); lcd.print("La lampe d'entrée est"); lcd.setCursor(8,1) ; lcd.print("ON"); état =0 ; } else if (!strcmp(receptionCommandOff,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("ok monsieur la lampe de la réception est éteinte"); OneSheeld.delay(2500); digitalWrite(réceptionLampe,HIGH); lcd.clear(); lcd.setCursor(0,0); lcd.print("La lampe d'entrée est"); lcd.setCursor(7,1) ; lcd.print("OFF"); état =0 ; } else if (!strcmp(bedRoomCommandOn,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("ok monsieur la lampe dans la chambre est allumée"); OneSheeld.delay(2500); digitalWrite(bedRoomLamp,LOW); lcd.clear(); lcd.setCursor(0,0); lcd.print("La chambre"); lcd.setCursor(0,1) ; lcd.print("la lampe est allumée"); état =0 ; } else if (!strcmp(bedRoomCommandOff,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("ok monsieur la lampe de la chambre est éteinte"); OneSheeld.delay(2500); digitalWrite(bedRoomLamp,HIGH); lcd.clear(); lcd.setCursor(0,0); lcd.print("La chambre"); lcd.setCursor(0,1) ; lcd.print("la lampe est :éteinte"); état=0 ; } else if (!strcmp(pathRoomCommandOn,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("ok monsieur la lampe de la salle de bain est allumée"); OneSheeld.delay(2500); digitalWrite(pathRoomLamp,LOW); lcd.clear(); lcd.setCursor(0,0); lcd.print("La salle de bain"); lcd.setCursor(0,1) ; lcd.print("la lampe est allumée"); état=0 ; } else if (!strcmp(pathRoomCommandOff,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("ok monsieur la lampe de la salle de bain est éteinte"); OneSheeld.delay(2500); digitalWrite(pathRoomLamp,HIGH); lcd.clear(); lcd.setCursor(0,0); lcd.print("La salle de bain"); lcd.setCursor(0,1) ; lcd.print("la lampe est :éteinte"); } else if (!strcmp(balaconyCommandOn,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("ok monsieur la lampe dans la cuisine est allumée"); OneSheeld.delay(2500); digitalWrite(balaconyLamp,LOW); lcd.clear(); lcd.setCursor(0,0); lcd.print("La cuisine"); lcd.setCursor(0,1) ; lcd.print("La lampe est allumée"); état=0 ; } else if (!strcmp(balaconyCommandOff,VoiceRecognition.getLastCommand())&&state==1) { TextToSpeech.say("ok monsieur la lampe de la cuisine est éteinte"); OneSheeld.delay(2500); digitalWrite (balaconyLamp, HIGH); lcd.clear(); lcd.setCursor(0,0); lcd.print("La cuisine"); lcd.setCursor(0,1) ; lcd.print("La lampe est :éteinte"); état=0 ; } else if(!strcmp(whatsUp,VoiceRecognition.getLastCommand())&&state==1) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Bonjour :)"); lcd.setCursor(0,1) ; lcd.print("C'est une bonne journée"); TextToSpeech.say("bonjour monsieur"); OneSheeld.delay(1500); TextToSpeech.say("l'heure au Caire est"); OneSheeld.delay(1500); TextToSpeech.say(h); OneSheeld.delay(1000); TextToSpeech.say(m); OneSheeld.delay(1000); TextToSpeech.say(midi); état=0 ; } else if(!strcmp(timeCommand,VoiceRecognition.getLastCommand())&&state==1) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Le temps au Caire est"); lcd.setCursor(0,1) ; lcd.print(h); lcd.print(":"); lcd.print(m); lcd.print(" "); lcd.print(midi); TextToSpeech.say("l'heure au Caire est"); OneSheeld.delay(1500); TextToSpeech.say(h); OneSheeld.delay(1000); TextToSpeech.say(m); OneSheeld.delay(1000); TextToSpeech.say(midi); état=0 ; } //****************************************************** ************************************************* autre if (!strcmp(securityModeOn,VoiceRecognition.getLastCommand())&&state==1) { lcd.clear(); lcd.setCursor(0,0); lcd.write("D'accord, monsieur, sentez-vous en sécurité"); lcd.setCursor(0,1) ; lcd.write("Mode de sécurité"); retard (200); TextToSpeech.say("le système de sécurité a été déclenché"); security=true; état=0 ; } else if (!strcmp(securityModeOff,VoiceRecognition.getLastCommand())&&state==1) { lcd.clear(); lcd.setCursor(0,0); lcd.write("D'accord, Monsieur la Sécurité"); lcd.setCursor(0,1) ; lcd.write("est désactivé"); retard (200); TextToSpeech.say("le système de sécurité a été désactivé"); sécurité=faux ; état=0 ; } }//************************************************ ************Système de sécurité ************************************ *************************magneticReceptionState =digitalRead(magneticReception);magneticBalaconyState =digitalRead(magneticBalacony);if(security ==true){ if(magneticReceptionState ==ÉLEVÉ || MagneticBalaconyState ==ÉLEVÉ) // Si quelqu'un ouvre la porte pendant que le système de sécurité fonctionnait, il déclenchera une alarme { tonalité (buzzer1, 1500); Email.send ("[email protected]", "Système de sécurité à domicile", "Quelqu'un est entré dans votre maison, soyez prudent"); OneSheeld.delay(3500); } else if (magneticReceptionState ==LOW ||magneticBalaconyState ==LOW) { noTone(buzzer1); }} else if (security ==false){ noTone(buzzer1);}/*voltage =analogRead(tmp); tension =tension * 1100/1024 ; degré =tension/10 ; if(degré>=35) { tone(buzzer2,1500); Email.send ("[email protected]", "Système de sécurité à domicile", "La température dans la cuisine est supérieure à 45, soyez prudent"); OneSheeld.delay (5000); } else if (degré<25) { noTone(buzzer2); }*/}//************************************************ ******************************************************** ********************************* void MyFunction(char* phoneNumber , char* messageBody) // Fonction SMS () {if(!strcmp(lightsOn,messageBody)) //Si nous envoyons des "lumières allumées" sous forme de SMS, toutes les lumières s'allumeront{ digitalWrite(receptionLamp,LOW); retard (500); digitalWrite(pathRoomLamp,LOW); retard (500); digitalWrite(bedRoomLamp,LOW); retard (500); digitalWrite(balaconyLamp,LOW); retard (500); TextToSpeech.say("toutes les lumières étaient allumées"); lcd.clear(); lcd.setCursor(0,0); lcd.print("Tous les voyants sont allumés"); retard (300); Email.send ("[email protected]", "Système de sécurité domestique", "toutes les lumières ont été allumées"); OneSheeld.delay (3500);}else if(!strcmp(lightsOff,messageBody)) //Si nous envoyons des "lumières éteintes" sous forme de SMS, toutes les lumières s'éteindront{ digitalWrite(receptionLamp,HIGH); retard (500); digitalWrite(pathRoomLamp,HIGH); retard (500); digitalWrite(bedRoomLamp,HIGH); retard (500); digitalWrite (balaconyLamp, HIGH); retard (500); TextToSpeech.say("toutes les lumières ont été éteintes"); lcd.clear(); lcd.setCursor(0,0); lcd.print("Toutes les lumières sont éteintes"); retard (300); Email.send ("[email protected]", "Système de sécurité domestique", "tous ont été éteints "); OneSheeld.delay (3500);}}

Pièces et boîtiers personnalisés

dessin_lasser_cutting_lvvsN9X9Xg.dwg

Schémas


Processus de fabrication

  1. Applications de la domotique
  2. Silicon Labs présentera des solutions de connectivité pour la maison intelligente et l'automatisation des bâtiments
  3. Contrôleur Smart Home 433MHz avec Sensorflare et RaspberryPi
  4. Système de sécurité domestique Raspberry Pi avec caméra et capteur PIR
  5. Système de présence utilisant Arduino et RFID avec Python
  6. Télécommande universelle utilisant Arduino, 1Sheeld et Android
  7. IOT - Smart Jar utilisant ESP8266, Arduino et capteur à ultrasons
  8. Sonar utilisant arduino et affichage lors du traitement de l'IDE
  9. Bras robotique simple et intelligent utilisant Arduino