IOT

Годинник і домашня автоматизація за допомогою STONE Display

зміст

  1. Опис
  2. Дизайн графічного інтерфейсу

3. Електрична схема

  1. код
  2. Відео

Опис

У цьому проекті ми збираємося розробити годинник і систему автоматизації, за допомогою якої ми зможемо вмикати або вимикати світло вдома, а також є годинник, який показуватиме час і дату.

Для цього ми використовуємо TFT дисплей (STONE-HMI), цей дисплей має програмне забезпечення, яке є програмним забезпеченням графічного інтерфейсу користувача. З цією допомогою ми збираємося розробити інтерфейс, який міститиме як секційний годинник, так і автоматизацію. Завантажте програмне забезпечення графічного інтерфейсу користувача натисніть тут

Розробка частини годинника: -

Давайте спочатку розробимо частину годинника, спочатку ми повинні додати всі зображення, які надані в папці click тут

Clock and Home Automation using STONE Display IOT PlatoBlockchain Data Intelligence. Vertical Search. Ai.Як ви бачите ліворуч, усі зображення додано в розділ файлу зображення. Тепер клацніть зображення «14», і ви отримаєте такий інтерфейс, як на зображенні. Тепер виберіть «RTC» у конфігурації дотику для встановлення часу і дату та виконайте всі налаштування для цього, спочатку додайте зображення «на сторінці» як зображення номер 6, яке використовуватиметься під час налаштування. Тепер перейдіть до зображення номер 6 і додайте всі кнопки та їхні значення ключів. ці значення будуть бути в цьому форматі.

Clock and Home Automation using STONE Display IOT PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Для «1» — 0031

Для «2» — 0031

Для «3» — 0031

Для «4» — 0031

Для «5» — 0031

Для «6» — 0031

Для «7» — 0031

Для «8» — 0031

Для «9» — 0031

Для «0» — 0030

Для «OK» – 00F1

Після цього додайте ефект кнопки як зображення nimber-7 для всіх кнопок, таким чином ця частина буде зроблена для налаштування годинника. Перейдемо далі, щоб створити стрілки годинника.

Так само додайте циферблат годинника зверху та додайте всю годинну, хвилинну та секундну стрілки. Для цього спочатку нам потрібно створити піктограму для цих стрілок, тож для цього перейдіть до генератора піктограм і виберіть ці зображення. Ви знайдете нову папку в розділі з «файлу піктограм» тут вам потрібно вибрати всі піктограми відповідно до вимог стрілки. Після цього виберіть усі піктограми відповідно до вимог стрілок годинника та не забудьте вибрати центр кожної стрілки годинника за допомогою цієї процедури це буде зроблено зараз, ми маємо перейти до частини автоматизації, і для цього ми додали символ автоматизації, як ви можете бачити на зображенні вище, для цієї кнопки вибору та помістіть цю кнопку в область цього значка автомата, а потім виберіть " page switch' як зображення-1, тому що це зображення для автоматизації, після чого виберіть зображення-1 для подальшого проектування.

Проектування частини автоматизації: -

Clock and Home Automation using STONE Display IOT PlatoBlockchain Data Intelligence. Vertical Search. Ai.Давайте розробимо автоматизовану частину для цього, ми вимагаємо, щоб Arduino надсилав певне значення ключа за адресою, тут ми використовуємо «0001» для всіх значень ключа. Для кнопки Fan(ON) ми надсилаємо значення ключа «0001», а для Fan(OFF ) ми надсилаємо значення ключа «0002», так само ми надсилаємо для всіх конкретних значень для всіх пристроїв. Тут ми також додали кнопку для перемикання на графічний інтерфейс годинника, який допоможе перейти від цього інтерфейсу до інтерфейсу годинника.

Для перемикання сторінок ми використовуємо «кнопку», яка розміщується ліворуч угорі, а для кнопки автоматизації ми використовуємо функцію «повернути значення натиснення клавіші», яка має два параметри: перший – це значення адреси, а інший – значення ключа, як ми вже згадували вище. використовуючи різні значення ключа для кожної кнопки автоматизації.

Схема

Clock and Home Automation using STONE Display IOT PlatoBlockchain Data Intelligence. Vertical Search. Ai.Як ви можете бачити, у з’єднанні є три світлодіоди light-1, light-2, а для вентилятора тут ми використовуємо лише світлодіоди, але ви можете під’єднати до нього фактичні прилади. Light-1 під’єднайте до контакту -D6 Arduino, light- 2 підключіть до контакту D7 Arduino, подібний вентилятор підключіть до контакту D5 за допомогою Arduino. І зробіть підключення для Rx і Tx відповідно до схеми. Тут ми підключили Tx до контакту 2 і Rx до контакту 3 Arduino як за кодом Arduino. Розглянемо далі, як це працює з кодом.

Існують різні типи послідовного зв’язку. Коли ви використовуєте плату Arduino в проекті, ви можете вибрати стандартні послідовні контакти як послідовний Rx Tx програмного забезпечення Arduino з UART всередині плати Arduino, тому це називається Serial TTL. У цьому випадку ми використовуємо апаратну бібліотеку serial.h, але деякі додаткові контакти можуть працювати як Rx або Tx. Наприклад, комунікаційні контакти SPI можуть працювати як MISO, MOSI та Select (SC), але вони також є контактами, які можуть працювати як цифровий вхід або цифровий вихід, або, якщо потрібно, ви можете використовувати ці контакти як Rx, Tx за допомогою програмного забезпечення. .h Бібліотека. 

Давайте підемо далі, щоб дізнатися, як працює код. 

Код: - 

#включати // бібліотека програмного забезпечення

SoftwareSerial max232(2,3);

char дані; 

Рядок mystring;

int f = 5; // Пін для віяла

int l1 = 6; // Булавка для світла-1

int l2 = 7; // Булавка для світла-2

void setup ()

{

Serial.begin(115200); //Тут швидкість 115200 бод

max232.begin(115200);

pinMode(f, ВИХІД);     

digitalWrite(f, LOW); 

pinMode(l1, ВИХІД);    

digitalWrite(l1, LOW);

pinMode(l2, ВИХІД);    

digitalWrite(l2, LOW);

}

цикл void ()

{

якщо (max232.available()>0)

 {

   дані = max232.read();

   mystring = mystring + byte(data) ; 

   delay (10);

 }

else if (mystring.endsWith(“101”)) //умова для ввімкнення вентилятора

  {

    mystring = ""; 

   digitalWrite(f,HIGH);

  }

else if (mystring.endsWith(“102”)) //умова для вимкнення вентилятора

  {

   mystring = ""; 

   digitalWrite(f,LOW);

  }

else if (mystring.endsWith(“103”)) //умова для Light-1 ON

  {

  mystring = ""; 

  digitalWrite(l1,HIGH);

  }

else if (mystring.endsWith(“104”)) //умова для Light-1 OFF

  {

   mystring = ""; 

   digitalWrite(l1,LOW);

  }

else if (mystring.endsWith(“105”)) //умова для Light-2 ON

  {

  mystring = ""; 

  digitalWrite(l2,HIGH);

  }

else if (mystring.endsWith(“106”)) //умова для Light-2 OFF

  {

   mystring = ""; 

   digitalWrite(l2,LOW);

  }

else if (mystring.endsWith(“107”)) //умова для всіх пристроїв ON

  {

   mystring = ""; 

   digitalWrite(l1,HIGH);

   digitalWrite(l2,HIGH);

   digitalWrite(f,HIGH);

  }

else if (mystring.endsWith(“108”)) //умова для всіх приладів ВИМКНЕНО

  {

   mystring = ""; 

   digitalWrite(l1,LOW);

   digitalWrite(l2,LOW);

   digitalWrite(f,LOW);

  }

}

Працює: -

Як ми вже обговорювали, ми використовуємо програмно-послідовну бібліотеку для передачі значення ключа через адресу, для цього ми додали у цьому коді це надає інтерфейс для підключення Arduino та дисплею STON-HMI. Після цього ми оголошуємо всі вихідні контакти, які ми використовуємо для світлодіодів і вентилятора, для цих пристроїв ми оголошуємо ці контакти як OUTPUT, а потім встановлюємо швидкість передачі даних для програмно-послідовної бібліотеки. Все це зроблено в частині налаштування void, а тепер давайте перейдемо до створення умови для пристроїв, які ми використовуємо, цю частину додано в цикл void, тому що це повторюватиметься багато разів, коли ми будемо натискати кнопку кнопку на дисплеї.

У розділі void loop є чотири умови для пристроїв. Перша умова полягає в увімкненні та вимкненні вентилятора, тут ми надсилаємо значення ключа «0001» для стану «УВІМКНЕНО» та «0002» для стану вимкнення за адресою «0001». Ця адреса однаково для всіх пристроїв. Для другого пристрою, який призначений для світла-1, ми надсилаємо «0003» для стану «УВІМКНЕНО» та «0004» для стану вимкнення, аналогічно для світла-2 «0005» для стану «УВІМКНЕНО» та «0006» для стану вимкнення, тому таким чином ці умови працюють для окремого пристрою.

Існує ще одна умова, щоб вимкнути або ввімкнути всі пристрої одночасно, для цього ми використовуємо «0007» для УВІМКНЕННЯ та «0008» для ВИМКНЕННЯ.

Вихідне відео: -

Clock and Home Automation using STONE Display IOT PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Це вихідне відео цього проекту, у цьому відео спочатку показано налаштування годинника та робота автоматизації, як ви бачите у відео.

Це вихідне відео, яке ви можете завантажити, клацнувши це відео. Ми додали всі дані, пов’язані з цим, якщо у вас є сумніви щодо розробки GUI, ви можете завантажити файл проекту та відкрити його безпосередньо, у цьому випадку вам не потрібно спроектуйте будь-який графічний інтерфейс, ви отримаєте той дизайн, який ми створили. Але якщо ви хочете розробити інший графічний інтерфейс, вам потрібно виконати всі кроки.

код

//Для отримання додаткової інформації про цей проект відвідайте:- wwww.electrocircuit.net //

#включати

SoftwareSerial max232(2,3);

char дані; 

Рядок mystring;

int f = 5; 

int l1 = 6; 

int l2 = 7;  

void setup ()

{

Serial.begin (115200); 

max232.begin(115200);

pinMode(f, ВИХІД); /////////ЧЕРВОНИЙ////////

digitalWrite(f, LOW); 

pinMode(l1, ВИХІД); ////////ЗЕЛЕНИЙ///////

digitalWrite(l1, LOW);

pinMode(l2, ВИХІД); ///////СИНІЙ//////////

digitalWrite(l2, LOW);

}

цикл void ()

{

якщо (max232.available()>0)

 {

   дані = max232.read();

   mystring = mystring + byte(data) ; 

   delay (10);

 }

інакше, якщо (mystring.endsWith(“101”))

  {

    mystring = ""; 

   digitalWrite(f,HIGH);

  }

інакше, якщо (mystring.endsWith(“102”))

  {

   mystring = ""; 

   digitalWrite(f,LOW);

  }

інакше, якщо (mystring.endsWith(“103”))

  {

  mystring = ""; 

  digitalWrite(l1,HIGH);

  }

інакше, якщо (mystring.endsWith(“104”))

  {

   mystring = ""; 

   digitalWrite(l1,LOW);

  }

інакше, якщо (mystring.endsWith(“105”))

  {

  mystring = ""; 

  digitalWrite(l2,HIGH);

  }

інакше, якщо (mystring.endsWith(“106”))

  {

   mystring = ""; 

   digitalWrite(l2,LOW);

  }

інакше, якщо (mystring.endsWith(“107”))

  {

   mystring = ""; 

   digitalWrite(l1,HIGH);

   digitalWrite(l2,HIGH);

   digitalWrite(f,HIGH);

  }

інакше, якщо (mystring.endsWith(“108”))

  {

   mystring = ""; 

   digitalWrite(l1,LOW);

   digitalWrite(l2,LOW);

   digitalWrite(f,LOW);

  }

}

Джерело: Інформація про дані Платона