Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Система автоматизации и безопасности умного дома с использованием 1Sheeld

Компоненты и расходные материалы

Arduino UNO
× 1
1Sheeld
× 1
Реле (универсальное)
Я использую YW Robot Relay 4 Channel
× 1
Зуммер
× 2
Датчик температуры
Я использую LM35DZ
× 1
Перемычки (общие)
× 1
Датчик движения PIR (общий)
× 1
Магнитный дверной выключатель SparkFun
× 2
Стандартный ЖК-экран Adafruit - 16x2, белый на синем
× 1

Необходимые инструменты и машины

Лазерный резак (универсальный)

Об этом проекте

Привет, обзор

История начинается отсюда.

Мы решили сделать этот проект, потому что это был отличный шаг для создания всего этого вместе, этот проект поможет вам понять множество концепций, и вы получите хороший опыт, так что давайте начнем учиться, как создать этот классный материал :)

Как работает наш проект:

Этот проект дает вам возможность управлять всем вашим домашним освещением с помощью голосовых команд или с помощью SMS :) Не только это также была система безопасности, когда любой незнакомец входит в ваш дом, пока вы спите или находитесь вне дома, он отправляет электронное письмо Вам говорит, что в ваш дом вошел незнакомец, и система сигнализации (зуммер) будет работать в вашем доме, а также, когда вы отправляете SMS, чтобы включить или выключить свет, он отправляет вам электронное письмо, чтобы сообщить вам, что заказ был Выполнено, также если датчик температуры воздуха обнаруживает, что температура. Больше 35 В вашем доме будет работать сигнализация (зуммер), и система пришлет вам электронное письмо, в котором сообщается, что темп. Было выше 35.

ПРИМЕЧАНИЕ. Не забудьте сказать «Джарвис» перед любой командой, которую вы хотите дать :) Чтобы система могла слышать вашу команду.

ПРИМЕЧАНИЕ. После любой команды, которую вы дадите системе, Джарвис ответит вам :), как будто вы разговариваете со своим настоящим помощником.

ПРИМЕЧАНИЕ. Чтобы включить систему безопасности, дайте своему смартфону голосовую команду (безопасность включена), чтобы выключить систему безопасности, скажите (безопасность выключена)

давайте узнаем больше о 1sheeld:

1Sheeld превращает ваш смартфон в 40 различных щитов Arduino. Таким образом, нам не нужно покупать щиты для Arduino, поскольку они есть в нашем смартфоне.

Это причина, по которой мы используем 1Sheeld Board. Вам не нужно покупать какие-либо датчики, потому что они уже установлены на вашем смартфоне.

Если вы хотите узнать больше о том, как начать работу с 1Sheeld, нажмите здесь

Прежде всего, вам нужно взять загруженный нами файл САПР и вырезать его на станке для лазерной резки.

  • Затем вам нужно разместить магнитный датчик дверного переключателя на двери вот так.
  • Это был цифровой датчик, поэтому он вернет цифровое значение 0 ИЛИ 1
  • Вам необходимо откалибровать датчик перед его использованием, чтобы знать, какие показания показывают, когда он был открыт, а когда близко.

Лампы переменного тока

  • Затем вам нужно разрезать стены, чтобы светильники располагались в определенных местах.
  • Подключите все провода ламп параллельно.

Датчик температуры

  • Я использую LM35DZ с 3 ножками
  • + V подключен к 5V на Arduino
  • Земля на Arduino
  • ВЫХОД на контакт A0 на Arduino, который даст нам показания

Как использовать 1sheeld?

1. Установите 1Sheeld поверх платы Arduino и напишите код, используя библиотеку 1Sheeld.

2 - Загрузите код в Arduino с помощью Arduino IDE (вы можете скачать Arduino IDE отсюда)

3 - Примечание. Убедитесь, что переключатель UART находится в режиме загрузки.

4 - После завершения загрузки кода верните коммутатор в рабочий режим

Примечание:не забывайте! Если вы не переключите переключатель UART обратно в рабочий режим, ваш проект не будет работать должным образом, поскольку у вас не будет связи между 1Sheeld и платой Arduino.

Приложение 1Sheeld:

  • Откройте приложение 1Sheeld, вы можете скачать его отсюда
  • Затем откройте свое приложение и подключитесь к плате. Вам потребуется ввести код сопряжения (код сопряжения по умолчанию - 1234) и подключиться к 1Sheeld через Bluetooth.
  • Затем выберите щиты, которые мы будем использовать (SMS, распознавание голоса, преобразование текста в речь, часы, электронная почта).
  • А теперь попробуйте свою работу :)

ПРИМЕЧАНИЕ. Мы создали нашу собственную женщину Джарвис:D

Сделайте свой собственный Джарвис.

Код

  • Система автоматизации и безопасности умного дома
Система автоматизации и безопасности умного дома Arduino
 / * * Команда SADEE по системам автоматизации и безопасности умного дома * EMAIL:[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 Sheeld Board с голосовыми командами # define INCLUDE_TEXT_TO_SPEECH_SHIELD #define INCLUDE_CLOCK_SHIELD #define INCLUDE_SMS_SHIELD #define INCLUDE_EMAIL_SHIELD #include  #include; // Переменные, которые сохранят в них часы и минуты String strh; // Будет использовать эту строку для преобразования значения Int, которое считывают часы, в StringString strm; char h [4]; char m [4]; LiquidCrystal lcd (2,3,4,5,6,7); # define acceptLamp A1 // Это приемное реле #define bedRoomLamp A2 // Это спальня #define pathRoomLamp A3 // Это ванная #define balaconyLamp A4 // Это кухня const char timeCommand [] ="который час"; // Команды, которые мы скажем 1Sheeld для выполнения его задачиconst char acceptCommandOn [] ="receive on"; const charceptionCommandOff [] ="прием"; const char whatsUp [] ="доброе утро"; const char pathRoomCommandOn [] ="ванная комната включена"; const char pathRoomCommandOff [] ="ванная комната отключена"; const char balaconyCommandOn [] ="кухня включена"; const char balaconyCommandOff [] ="кухня выключена"; const char bedRoomCommandOn [] ="спальня включена"; const char bedRoomCommandOff [] ="спальня выключена"; const char lightsOn [] ="on"; // Это ИС для SMS-щита, когда мы отправляем SMS, содержит (горит свет) свет загоритсяconst char lightsOff [] ="off"; // Это для SMS Shield. Когда мы отправляем SMS, он содержит (не горит) свет выключается // ************************* ************************************************* *************************** const char securityModeOn [] ="безопасность включена"; // Это для системы безопасности. Когда мы говорим («Безопасность включена»). Затем мы запускаем систему безопасности. Любой нарушит систему. Тревога сработает .const char securityModeOff [] ="security off"; // Выключение системы безопасности. Любой нарушитель системы безопасности. Сигнализация не сработает // ******************************* ************************************************* *********************** const char mainCommand [] ="jarvis"; // Мы говорим jarvis перед любой голосовой командой, чтобы система меня слышала String noon; // # define tmp A0 // Для датчика TMP мы используем LM35DZ // int Voltage, deg; // Переменные, которые будут содержать разные напряжения при изменении температуры, и градус Целисуса после простого математического эквалайзера. byte smile [] ={// Создание символа улыбки на жидкокристаллическом экране B00000, B01001, B01001, B00000, B00000, B10001, B01110, B00000,}; #define MagneticReception 8 // Переключатель MAgnetic для приема # define MagneticBalacony 9 // Магнитный переключатель для Balaconyint buzzer2 =10; // Этот зуммер iS для датчика температуры // D11 был свободен; int buzzer1 =A5; // Этот зуммер предназначен для магнитных переключателей. Если кто-то сломает систему безопасности, он сработает. // Переменная будет содержать чтение MAgnetic Switch, если оно было 1 или 0int magnetBalaconyState; int state =0; // Это для безопасности Jarvisbool; // Это для системы безопасности void setup () {noTone (buzzer1); noTone (buzzer2); // analogReference (INTERNAL); // Ссылка для точного измерения датчика TMP 1.1 VoltagedigitalWrite (acceptLamp, HIGH); digitalWrite (bedRoomLamp, HIGH); digitalWrite (pathRoomLamp, HIGH); digitalWrite (balaconyLamp, HIGH); // passState =false; lcd.begin (16 , 2); // Начинаем ЖК-дисплей OneSheeld.begin (); // Запускаем OneSheeld BoardpinMode (registrationLamp, OUTPUT); pinMode (bedRoomLamp, ВЫХОД); pinMode (balaconyLamp, ВЫХОД); pinMode (pathRoomLamp, ВЫХОД); pinMode (buzzer1, OUTPUT); // для магнитного переключателяpinMode (MagneticReception, INPUT_PULLUP); // Мы используем резистор PULLUP, встроенный в BoardpinMode (MagneticBalacony, INPUT_PULLUP); // pinMode (tmp, INPUT); pinMode (buzzer2, OUTPUT); // для датчика температуры lcd.createChar (0, улыбка); lcd.clear (); lcd.setCursor (0,0); lcd.print ("Добро пожаловать в"); delay (4000); lcd.clear (); lcd.setCursor (0,0); lcd.print («Умный дом»); lcd.setCursor (0,1); lcd.print («Автоматизация И»); delay (4000); lcd.clear (); lcd .setCursor (0,0); lcd.print («Система безопасности»); delay (4000); lcd.clear (); lcd.setCursor (0,0); lcd.print («КАЛИБРОВКА ....»); delay (10000); if (! VoiceRecognition.isNewCommandReceived ()) // Если нет голосовых команд, распечатайте это WOrds {lcd.clear (); lcd.setCursor (1,0); lcd.print («Мы здесь»); lcd.setCursor (4,1); lcd.print («ПОМОГИТЕ»); } security =false;} цикл void () {Clock.queryDateAndTime (); // Эта функция для запроса даты и времени с помощью экрана часов на OneSheeld BoardSMS.setOnSmsReceive (&MyFunction); // Эта функция для SMS-минут =Clock.getMinutes (); hours =Clock.getHours (); if (hours> 12) // Мы делаем это, чтобы изменить время с 24-часовой системы на 12-часовую систему и узнать, Это AM или PM {часов- =12; полдень ="ПМ";} еще {полдень ="АМ"; } strh =String (часы); strm =String (минуты); strh.toCharArray (h, 4); // Преобразование часов, которые мы преобразуем в строку, в Char Arraystrm.toCharArray (m, 4); VoiceRecognition.start (); // Запускаем распознавание голоса ShieldOneSheeld.delay (8000); // Задержка для выполнения приказов Затем запустите Agaimif (VoiceRecognition.isNewCommandReceived ()) {if (! Strcmp (mainCommand, VoiceRecognition.getLastCommand ())) // Сравните последнюю голосовую команду с основной командой, которой является "Alexa" {TextToSpeech .say ("да, сэр"); // Эта функция должна приказать экрану преобразования текста в речь выполнять свою задачу lcd.clear (); lcd.setCursor (8,0); lcd.write (байт (0)); состояние =1; } if (! strcmp (registrationCommandOn, VoiceRecognition.getLastCommand ()) &&state ==1) // Сравните две строки:последнюю полученную команду и строку, которую я создал до {TextToSpeech.say ("хорошо, сэр лампа в приемной горит "); OneSheeld.delay (2500); digitalWrite (ReceiverLamp, LOW); lcd.clear (); lcd.setCursor (0,0); lcd.print («Лампа в зале»); lcd.setCursor (8,1); lcd.print ("ВКЛ"); состояние =0; } else if (! strcmp (registrationCommandOff, VoiceRecognition.getLastCommand ()) &&state ==1) {TextToSpeech.say ("хорошо, сэр, лампа на приеме выключена"); OneSheeld.delay (2500); digitalWrite (ReceiverLamp, ВЫСОКИЙ); lcd.clear (); 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); digitalWrite (bedRoomLamp, LOW); lcd.clear (); 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); digitalWrite (bedRoomLamp, ВЫСОКИЙ); lcd.clear (); 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); digitalWrite (pathRoomLamp, LOW); lcd.clear (); 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); digitalWrite (pathRoomLamp, HIGH); lcd.clear (); 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); digitalWrite (balaconyLamp, LOW); lcd.clear (); 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); digitalWrite (balaconyLamp, HIGH); lcd.clear (); lcd.setCursor (0,0); lcd.print («Кухня»); lcd.setCursor (0,1); lcd.print («Лампа выключена»); состояние =0; } иначе, если (! 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 (м); OneSheeld.delay (1000); TextToSpeech.say (полдень); состояние =0; } иначе, если (! strcmp (timeCommand, VoiceRecognition.getLastCommand ()) &&state ==1) {lcd.clear (); lcd.setCursor (0,0); lcd.print («Время в Каире»); lcd.setCursor (0,1); lcd.print (h); lcd.print (":"); lcd.print (м); lcd.print (""); lcd.print (полдень); TextToSpeech.say ("время в Каире"); OneSheeld.delay (1500); TextToSpeech.say (h); OneSheeld.delay (1000); TextToSpeech.say (м); OneSheeld.delay (1000); TextToSpeech.say (полдень); состояние =0; } // ********************************************* ************************************************* еще если (! strcmp (securityModeOn, VoiceRecognition.getLastCommand ()) &&состояние ==1) {lcd.clear (); lcd.setCursor (0,0); lcd.write («Хорошо, сэр, чувствуйте себя в безопасности»); lcd.setCursor (0,1); lcd.write («Безопасный режим»); задержка (200); TextToSpeech.say («сработала система безопасности»); security =true; состояние =0; } иначе, если (! 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); } иначе, если (MagneticReceptionState ==LOW || MagneticBalaconyState ==LOW) {noTone (buzzer1); }} else if (security ==false) {noTone (buzzer1);} / * напряжение =analogRead (tmp); напряжение =напряжение * 1100/1024; градус =напряжение / 10; если (степень> =35) {тон (зуммер2,1500); Email.send («[email protected]», «Домашняя система безопасности», «Температура на кухне выше 45, будьте осторожны»); OneSheeld.delay (5000); } иначе, если (степень <25) {noTone (buzzer2); } * /} // ****************************************** ************************************************* ******************************** void MyFunction (char * phoneNumber, char * messageBody) // Функция SMS () {if (! strcmp (lightsOn, messageBody)) // Если мы отправим «светится» как SMS, все огни загорятся {digitalWrite (acceptLamp, LOW); задержка (500); digitalWrite (pathRoomLamp, LOW); задержка (500); digitalWrite (bedRoomLamp, LOW); задержка (500); digitalWrite (balaconyLamp, LOW); задержка (500); TextToSpeech.say («все огни были включены»); lcd.clear (); lcd.setCursor (0,0); lcd.print («Все огни включены»); задержка (300); Email.send («[email protected]», «Система домашней безопасности», «Все огни были включены»); OneSheeld.delay (3500);} else if (! Strcmp (lightsOff, messageBody)) // Если мы отправим «свет выключен» в виде SMS, все огни выключатся {digitalWrite (acceptLamp, HIGH); задержка (500); digitalWrite (pathRoomLamp, HIGH); задержка (500); digitalWrite (bedRoomLamp, ВЫСОКИЙ); задержка (500); digitalWrite (balaconyLamp, HIGH); задержка (500); TextToSpeech.say («все огни были выключены»); lcd.clear (); lcd.setCursor (0,0); lcd.print («Все огни выключены»); задержка (300); Email.send («[email protected]», «Домашняя система безопасности», «все были выключены»); OneSheeld.delay (3500);}} 

Изготовленные на заказ детали и корпуса

drawing_lasser_cutting_lvvsN9X9Xg.dwg

Схема


Производственный процесс

  1. Приложения домашней автоматизации
  2. Silicon Labs для демонстрации решений для умного дома и автоматизации зданий
  3. Контроллер умного дома 433 МГц с Sensorflare и RaspberryPi
  4. Домашняя система безопасности Raspberry Pi с камерой и ИК-датчиком
  5. Система посещаемости с использованием Arduino и RFID с Python
  6. Универсальный пульт дистанционного управления с использованием Arduino, 1Sheeld и Android
  7. IOT - Smart Jar с использованием ESP8266, Arduino и ультразвукового датчика
  8. Сонар с использованием Arduino и отображение при обработке IDE
  9. Простая и умная роботизированная рука с использованием Arduino
  10. Простая и интеллектуальная система очистки воздуха