قام المحفل

الساعة وأتمتة المنزل باستخدام STONE Display

المحتويات

  1. الوصف
  2. تصميم واجهة المستخدم الرسومية

3 - مخطط الدائرة

  1. رمز
  2. فيديو

الوصف

في هذا المشروع ، سنقوم بتصميم ساعة ونظام أتمتة بهذه المساعدة ، يمكننا تشغيل أو إيقاف إضاءة المنزل ، وهناك أيضًا ساعة تعرض الوقت والتاريخ.

لهذا نستخدمه شاشة TFT (STONE-HMI)، تحتوي هذه الشاشة على برنامج عبارة عن برنامج واجهة مستخدم رسومية بهذه المساعدة ، سنقوم بتصميم واجهة ستحتوي على ساعة القسم والأتمتة. قم بتنزيل برنامج واجهة المستخدم الرسومية انقر هنا

تصميم جزء الساعة: -

لنقم أولاً بتصميم جزء الساعة ، أولاً علينا إضافة جميع الصور الواردة في المجلد انقر فوق هنا .

الساعة وأتمتة المنزل باستخدام STONE Display IOT PlatoBlockchain Data Intelligence. البحث العمودي. عاي.كما ترى في الجانب الأيسر ، تمت إضافة جميع الصور في قسم ملف الصورة ، الآن انقر فوق الصورة '14' ستحصل على هذه الواجهة كما ترى في الصورة ، الآن حدد 'RTC' من تكوين اللمس لتعيين الوقت وقم بالتاريخ والقيام بكل التهيئة لهذا الأول ، أضف صورة 'in the page' كصورة رقم 6 والتي سيتم استخدامها في وقت الإعداد.الآن انتقل إلى الصورة رقم 6 وأضف جميع الأزرار وقيم مفاتيحها. كن بهذا الشكل.

الساعة وأتمتة المنزل باستخدام STONE Display IOT PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

لـ "1" - 0031

لـ "2" - 0031

لـ "3" - 0031

لـ "4" - 0031

لـ "5" - 0031

لـ "6" - 0031

لـ "7" - 0031

لـ "8" - 0031

لـ "9" - 0031

لـ "0" - 0030

لـ "OK" - 00F1

بعد ذلك ، قم بإضافة تأثير الزر كصورة nimber-7 لجميع الأزرار ، لذلك سيتم إجراء هذا الجزء لإعدادات clock.let لتحرك أبعد لإنشاء عقارب على مدار الساعة.

وبالمثل ، أضف ساعة الاتصال من أعلى وأضف كل عقرب الساعات والدقائق والثواني لهذا أولاً ، يتعين علينا إنشاء رمز لهذه العقارب ، لذلك انتقل إلى منشئ الرموز وحدد هذه الصور وستجد مجلدًا جديدًا في القسم من `` ملف الأيقونة '' من هنا ، عليك تحديد جميع الأيقونات وفقًا لمتطلبات العقرب ، وبعد ذلك حدد كل الأيقونة وفقًا لمتطلبات عقارب الساعة ، ولا تنس تحديد مركز كل عقارب للساعة ، باستخدام هذا الإجراء سيتم القيام بذلك الآن علينا أن نذهب إلى جزء الأتمتة ولهذا قمنا بإضافة رمز أتمتة كما ترون في الصورة أعلاه ، لهذا الزر تحديد ووضع هذا الزر في منطقة رمز التشغيل الآلي هذا ثم حدد ' تبديل الصفحة "as image-1" لأن هذه هي صورة الأتمتة بعد ذلك ، حدد image-1 لمزيد من التصميم.

تصميم جزء الأتمتة: -

الساعة وأتمتة المنزل باستخدام STONE Display IOT PlatoBlockchain Data Intelligence. البحث العمودي. عاي.دعونا نصمم جزءًا من الأتمتة لهذا ، فقد طلبنا من Arduino إرسال قيمة مفتاح معينة عبر عنوان ، وهنا نستخدم "0001" لجميع قيمة المفتاح. بالنسبة لزر Fan (ON) ، نرسل قيمة مفتاح "0001" وللمروحة (OFF) ) نحن نرسل قيمة المفتاح "0002" بالمثل التي نرسلها لجميع القيمة المحددة لجميع الأجهزة. هنا أضفنا أيضًا زرًا للتبديل إلى واجهة المستخدم الرسومية على مدار الساعة والتي ستساعد في الانتقال من هذه الواجهة إلى واجهة الساعة.

بالنسبة لمفتاح الصفحة ، نستخدم "الزر" الذي يتم وضعه في الجزء العلوي الأيسر ولزر التشغيل الآلي ، نستخدم وظيفة "قيمة مفتاح الضغط على العودة" التي تحتوي على معلمتين أولاً هي قيمة العنوان والأخرى هي القيمة الأساسية كما ذكرنا أعلاه. باستخدام قيمة مفتاح مختلفة لكل زر أتمتة.

مخطط الرسم البياني

الساعة وأتمتة المنزل باستخدام STONE Display IOT PlatoBlockchain Data Intelligence. البحث العمودي. عاي.كما ترون في الاتصال ، هناك ثلاثة مصابيح LED - 1 ، light-2 وللمروحة هنا نستخدم مصابيح LED فقط ولكن يمكنك توصيل الأجهزة الفعلية بهذا. 1 قم بالاتصال بـ pin-D6 من Arduino ، مروحة مماثلة تتصل بـ D2 مع Arduino ، وقم بالاتصال لـ Rx و Tx وفقًا لمخطط الدائرة هنا قمنا بتوصيل Tx بـ pin-7 و Rx مع pin-5 من Arduino مثل لكل كود اردوينو ، دعنا ننتقل أكثر إلى كيفية عمله مع الكود.

هناك أنواع مختلفة من الاتصالات التسلسلية. عند استخدام لوحة Arduino في مشروع ما ، يمكنك اختيار المسامير التسلسلية القياسية مثل برنامج Arduino التسلسلي Rx Tx ، من UART داخل لوحة Arduino ، لذلك يطلق عليه Serial TTL. في هذه الحالة ، نستخدم مكتبة الأجهزة serial.h ، لكن بعض الدبابيس الإضافية يمكن أن تعمل كإرسال Rx أو Tx. على سبيل المثال ، يمكن أن تعمل دبابيس اتصالات SPI كمفاتيح MISO و MOSI و Select (SC) ، ولكنها أيضًا دبابيس يمكن أن تعمل كمدخل رقمي أو إخراج رقمي ، أو إذا كنت بحاجة ، يمكنك استخدام هذه المسامير مثل Rx و Tx باستخدام البرنامج التسلسلي مكتبة. 

دعنا ننتقل أكثر لمعرفة كيفية عمل الكود. 

الشفرة :- 

#يشمل // مكتبة البرامج التسلسلية

SoftwareSerial max232 (2,3،XNUMX) ؛

بيانات شار 

سلسلة الغموض

كثافة العمليات و = 5 ؛ // دبوس للمروحة

كثافة العمليات l1 = 6 ؛ // دبوس للضوء -1

كثافة العمليات l2 = 7 ؛ // دبوس للضوء -2

الإعداد باطل()

{

Serial.begin (115200) ؛ // هنا بودرات هو 115200

max232.begin (115200) ؛

pinMode (f ، الإخراج) ؛     

digitalWrite (f ، LOW) ؛ 

pinMode (l1 ، الإخراج) ؛    

digitalWrite (l1 ، منخفض) ؛

pinMode (l2 ، الإخراج) ؛    

digitalWrite (l2 ، منخفض) ؛

}

حلقة فارغة()

{

إذا (max232.available ()> 0)

 {

   البيانات = max232.read () ؛

   mystring = mystring + بايت (بيانات) ؛ 

   تأخير (10) ؛

 }

وإلا إذا (mystring.endsWith ("101")) // شرط تشغيل المروحة

  {

    mystring = "" ؛ 

   الكتابة الرقمية (f ، عالية) ؛

  }

وإلا إذا (mystring.endsWith ("102")) // حالة لـ Fan OFF

  {

   mystring = "" ؛ 

   digitalWrite (f ، LOW) ؛

  }

وإلا إذا (mystring.endsWith ("103")) // شرط لـ Light-1 ON

  {

  mystring = "" ؛ 

  digitalWrite (l1 ، مرتفع) ؛

  }

وإلا إذا (mystring.endsWith ("104")) // حالة لـ Light-1 OFF

  {

   mystring = "" ؛ 

   digitalWrite (l1 ، منخفض) ؛

  }

وإلا إذا (mystring.endsWith ("105")) // شرط لـ Light-2 ON

  {

  mystring = "" ؛ 

  digitalWrite (l2 ، مرتفع) ؛

  }

وإلا إذا (mystring.endsWith ("106")) // حالة لـ Light-2 OFF

  {

   mystring = "" ؛ 

   digitalWrite (l2 ، منخفض) ؛

  }

وإلا إذا (mystring.endsWith ("107")) // حالة تشغيل جميع الأجهزة

  {

   mystring = "" ؛ 

   digitalWrite (l1 ، مرتفع) ؛

   digitalWrite (l2 ، مرتفع) ؛

   الكتابة الرقمية (f ، عالية) ؛

  }

وإلا إذا (mystring.endsWith ("108")) // حالة جميع الأجهزة معطلة

  {

   mystring = "" ؛ 

   digitalWrite (l1 ، منخفض) ؛

   digitalWrite (l2 ، منخفض) ؛

   digitalWrite (f ، LOW) ؛

  }

}

عمل :-

كما ناقشنا ، نحن نستخدم مكتبة البرامج التسلسلية لنقل القيمة الرئيسية عبر عنوان ، لذلك أضفنا في هذا الكود ، يعطي هذا الواجهة لتوصيل Arduino وشاشة STON-HMI. بعد ذلك ، أعلنا عن كل طرف الإخراج مهما كنا نستخدمه لمصابيح LED والمروحة ، بالنسبة لهذه الأجهزة ، أعلنا أن هذه الدبابيس على أنها OUTPUT ثم قم بتعيين معدل Baud لمكتبة البرامج التسلسلية ، كل ذلك تم إجراؤه في جزء الإعداد الفارغ الآن دعنا ننتقل إلى جعل حالة الأجهزة التي نستخدمها ، تتم إضافة هذا الجزء في الحلقة الفارغة لأن هذا سيتكرر عدة مرات حيث سنضغط على زر على الشاشة.

في قسم الحلقة الفارغة هناك أربعة شروط للأجهزة. الشرط الأول هو تشغيل وإيقاف تشغيل المروحة ، ونرسل هنا قيمة مفتاح "0001" لشرط التشغيل و "0002" لحالة إيقاف التشغيل على العنوان "0001" هذا العنوان هو نفس الشيء بالنسبة لجميع الأجهزة. بالنسبة للجهاز الثاني المخصص للضوء -1 ، نرسل "0003" لحالة التشغيل و "0004" لحالة إيقاف التشغيل ، وبالمثل بالنسبة للضوء -2 "0005" للتشغيل و "0006" لحالة إيقاف التشغيل ، لذلك بهذه الطريقة تعمل هذه الظروف لجهاز فردي.

هناك شرط آخر لإيقاف تشغيل جميع الأجهزة أو تشغيلها مرة واحدة لهذا نستخدم "0007" للتشغيل و "0008" للإيقاف.

إخراج الفيديو: -

الساعة وأتمتة المنزل باستخدام STONE Display IOT PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

هذا هو إخراج الفيديو لهذا المشروع في هذا الفيديو الذي يظهر أولاً إعداد الساعة وهناك عمل آلي كما ترى في الفيديو.

هذا هو إخراج الفيديو الذي يمكنك تنزيله عن طريق النقر فوق هذا الفيديو ، وقد أضفنا جميع البيانات المتعلقة بهذا إذا كان لديك أي شك حول تصميم واجهة المستخدم الرسومية ، يمكنك تنزيل ملف المشروع وفتحه مباشرة في هذه الحالة لا داعي لذلك تصميم أي واجهة مستخدم رسومية ستحصل على هذا التصميم الذي بنيناه. ولكن إذا كنت ترغب في تصميم واجهة مستخدم رسومية مختلفة ، فعليك اتباع جميع الخطوات.

رمز

// لمزيد من المعلومات حول هذا المشروع قم بزيارة: - wwww.electrocircuit.net //

#تضمن

SoftwareSerial max232 (2,3،XNUMX) ؛

بيانات شار 

سلسلة الغموض

كثافة العمليات و = 5 ؛ 

كثافة العمليات l1 = 6 ؛ 

كثافة العمليات l2 = 7 ؛  

الإعداد باطل()

{

Serial.begin (115200) ؛ 

max232.begin (115200) ؛

pinMode (f ، الإخراج) ؛ /////////أحمر////////

digitalWrite (f ، LOW) ؛ 

pinMode (l1 ، الإخراج) ؛ ////////لون أخضر///////

digitalWrite (l1 ، منخفض) ؛

pinMode (l2 ، الإخراج) ؛ ///////أزرق/////////

digitalWrite (l2 ، منخفض) ؛

}

حلقة فارغة()

{

إذا (max232.available ()> 0)

 {

   البيانات = max232.read () ؛

   mystring = mystring + بايت (بيانات) ؛ 

   تأخير (10) ؛

 }

وإلا إذا (mystring.endsWith ("101"))

  {

    mystring = "" ؛ 

   الكتابة الرقمية (f ، عالية) ؛

  }

وإلا إذا (mystring.endsWith ("102"))

  {

   mystring = "" ؛ 

   digitalWrite (f ، LOW) ؛

  }

وإلا إذا (mystring.endsWith ("103"))

  {

  mystring = "" ؛ 

  digitalWrite (l1 ، مرتفع) ؛

  }

وإلا إذا (mystring.endsWith ("104"))

  {

   mystring = "" ؛ 

   digitalWrite (l1 ، منخفض) ؛

  }

وإلا إذا (mystring.endsWith ("105"))

  {

  mystring = "" ؛ 

  digitalWrite (l2 ، مرتفع) ؛

  }

وإلا إذا (mystring.endsWith ("106"))

  {

   mystring = "" ؛ 

   digitalWrite (l2 ، منخفض) ؛

  }

وإلا إذا (mystring.endsWith ("107"))

  {

   mystring = "" ؛ 

   digitalWrite (l1 ، مرتفع) ؛

   digitalWrite (l2 ، مرتفع) ؛

   الكتابة الرقمية (f ، عالية) ؛

  }

وإلا إذا (mystring.endsWith ("108"))

  {

   mystring = "" ؛ 

   digitalWrite (l1 ، منخفض) ؛

   digitalWrite (l2 ، منخفض) ؛

   digitalWrite (f ، LOW) ؛

  }

}

المصدر: أفلاطون داتا إنتليجنس