جدول المحتويات:

تنبيه المنزل: Arduino + Cloud Messaging على شاشة كبيرة: 14 خطوة (بالصور)
تنبيه المنزل: Arduino + Cloud Messaging على شاشة كبيرة: 14 خطوة (بالصور)

فيديو: تنبيه المنزل: Arduino + Cloud Messaging على شاشة كبيرة: 14 خطوة (بالصور)

فيديو: تنبيه المنزل: Arduino + Cloud Messaging على شاشة كبيرة: 14 خطوة (بالصور)
فيديو: Web Programming - Computer Science for Business Leaders 2016 2024, شهر نوفمبر
Anonim
تنبيه المنزل: Arduino + Cloud Messaging على شاشة كبيرة
تنبيه المنزل: Arduino + Cloud Messaging على شاشة كبيرة
تنبيه المنزل: Arduino + Cloud Messaging على شاشة كبيرة
تنبيه المنزل: Arduino + Cloud Messaging على شاشة كبيرة
تنبيه المنزل: Arduino + Cloud Messaging على شاشة كبيرة
تنبيه المنزل: Arduino + Cloud Messaging على شاشة كبيرة

في عصر الهواتف المحمولة ، تتوقع أن يستجيب الناس لمكالمتك على مدار الساعة طوال أيام الأسبوع.

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

لدي هذه المشكلة في كثير من الأحيان بما يكفي لتبرير حل. نتج عن القليل من العبث باستخدام Arduino و Freetronics Dot Matrix Display (DMD) أداة مزعجة للغاية (لزوجتي) ، ولكنها كانت بمثابة جهاز اتصال رائع ومركز معلومات بالنسبة لي. أحبه ، وهو الإصدار 1 فقط!

يتكون تنبيه المنزل من هذه الأجزاء:

  • شاشة Freetronics Dot Matrix ، وهي عبارة عن مجموعة من 16x32 LEDs. إنها تأتي بألوان مختلفة ، لكني أستخدم اللون الأحمر للتأكيد على أن هذه الأداة مخصصة للإشعارات "الحرجة".
  • Arduino Uno مزود بدرع إيثرنت.
  • كسر ساعة الوقت الحقيقي ، مثل هذا أو هذا.
  • جرس بيزو
  • جهاز استشعار درجة الحرارة والرطوبة DHT22.

يتم التحكم في تنبيه الصفحة الرئيسية عبر صفحة ويب مستضافة على Heroku ، مضيف تطبيق مستند إلى مجموعة النظراء. تم ترميز صفحة الويب بلغة Ruby ، باستخدام إطار عمل تطبيق الويب Sinatra ومتجر Redis key-value store.

ألق نظرة على الصفحة الرئيسية (تظهر في الصورة المرفقة الأولى في هذه الخطوة) ، حيث ينتظر النموذج رسالة جديدة من المستخدم.

يقبل الحقل الأول رمز جهاز رقمي. إنه رمز يسمح لك باستهداف نظام تنبيه منزلي معين ، حيث يمكن منح كل نظام رمز فريد. أو يمكن أن يكون لديك عدة تنبيهات منزلية تشترك في نفس الرمز ، بحيث يتم عرض نفس الرسالة على مواقع متعددة.

تنتقل الرسالة التي تريد عرضها إلى الحقل الثاني. سيتم عرض أي نص تكتبه هناك في DMD.

إذا كنت تريد إصدار بعض الضوضاء ، فتحقق من نعم! مربع الاختيار ، ومن المؤكد أن الجرس يجذب انتباه أي شخص قريب.

في هذه المقالة ، سأوضح لك كيفية إنشاء نظام تنبيه منزلي خاص بك ، سواء أجهزة Arduino أو برامجه ، بالإضافة إلى تطبيق الويب Sinatra mini.

هيا بنا نبدأ!

الخطوة 1: الأجهزة

الأجهزة
الأجهزة
الأجهزة
الأجهزة
الأجهزة
الأجهزة

DMD هو النقطة المحورية للأداة. كان بإمكاني استخدام شاشة LCD صغيرة ، لكن الفكرة الرئيسية لهذا المشروع كانت إنتاج شيء يمكن رؤيته وسماعه من مسافة بعيدة. بالنسبة للجزء المرئي ، كنت بحاجة إلى شيء كبير ومشرق ، وشاشة Freetronics هذه هي بالضبط ما احتاجه. تحتوي كل لوحة على مجموعة من 16x32 LEDs ، ويمكنك لصق العديد منها معًا لإنشاء شاشات أكبر بكثير. هذا شيء أود القيام به في المستقبل القريب.

يأتي DMD مع مكتبة Arduino سهلة الاستخدام. يتواصل مع Arduino عبر SPI عالي السرعة. تمكنت من الحصول على المكتبة من صفحة Freetronics Github ، ثم تشغيل الرسم التوضيحي وتشغيله في غضون دقائق من فتح الصندوق. لقد فوجئت برؤية مثل هذه الشاشة الساطعة باستخدام الطاقة فقط من Arduino. إذا كنت تريد أن تُعمى المشاهدين مؤقتًا ، فيمكنك توصيل مصدر طاقة مخصص لهذا DMD. إذا لم يلفت ذلك انتباههم ، فلن يحدث شيء!

فيزيائيًا ، تبلغ أبعاد هذه الشاشة 320 ملم (عرض) ، 160 ملم (ارتفاع) و 14 ملم (عمق).

تحتوي اللوحة الخلفية على موصلات الطاقة الخارجية ، 5 فولت بسعة 4 أمبير على الأقل ، وموصل Arduino الذي يحمل علامة HUB1 ، والموصل لشاشات العرض الإضافية المتسلسلة على الجانب الآخر. وفقًا للوثائق ، يمكنك توصيل ما يصل إلى أربعة DMDs.

يتم التحكم في DMD بواسطة Arduino Uno. يوفر Freetronics موصل "DMDCON" ملائم للغاية والذي يستقر مباشرة على SPI ودبابيس البيانات الصحيحة.

بخلاف DMD ، استخدمت Arduino Uno و Ethernet Shield وكسر ساعة في الوقت الفعلي وجرس و DHT22. بالنسبة لجميع هذه المكونات ، قمت بإنشاء محاضرات تصف عملها في دورة Udemy الخاصة بي. (الترويج الذاتي الوقح: قم بالتسجيل في قائمة البريد الإلكتروني الخاصة بي على arduinosbs.com واحصل على قسيمة تمنحك وصولاً مخفضًا إلى جميع المحاضرات البالغ عددها 55).

ساعة الوقت الحقيقي ، وهي عبارة عن كسر يعتمد على ساعة DS18072 IC ، هي جهاز I2C لذا فهي متصلة بدبابيس Uno التناظرية 1 و 2 ، والتي تنفذ ناقل I2C.

يتم توصيل الجرس بالدبوس الرقمي 3 ، حيث أتحكم فيه باستخدام وظيفة النغمة ().

مستشعر DHT22 متصل بالدبوس الرقمي 2. كن حذرًا لتوصيل المقاوم 10KΩ بين خط 5V وخط البيانات.

الخطوة 2: رسم اردوينو

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

هذا هو الرسم التخطيطي ، مع التعليقات المضمنة (انظر مرفق PDF).

تتمثل المسؤولية الرئيسية لهذا المخطط في جعل Arduino مستهلكًا لخدمة الويب. خدمة الويب عبارة عن موقع ويب بسيط يحتوي على نقطتين نهائيتين ، أحدهما للمستخدم البشري للوصول إليه عبر مستعرض ويب وإرسال سلسلة نصية يرغب في عرضها على DMD ، والآخر حيث يمكن لـ Arduino الوصول إليه من أجل استرداد تلك السلسلة النصية.

يرجى تنزيل وقراءة ملف PDF المرفق ، فهو يحتوي على تعليقات مضمنة تصف تشغيله.

الخطوة 3: سيناترا يأخذ المسرح

سيناترا يأخذ المسرح!
سيناترا يأخذ المسرح!

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

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

ما هو سيناترا ولماذا هو اختيار جيد؟ أنا سعيد لأنك سألت!

سيناترا هي لغة التطور السريع لتطبيقات الويب. إنها مبنية على لغة Ruby ، وهي لغة برمجة نصية للأغراض العامة ومعبرة وشائعة جدًا. قد تسمع الإشارة إلى سيناترا باسم "DSL" ، وهي لغة خاصة بالمجال. المجال هنا هو الويب. الكلمات الرئيسية (الكلمات) وبناء الجملة التي تم إنشاؤها لسيناترا تجعل من السهل والسريع على الأشخاص إنشاء تطبيقات الويب.

في الوقت الذي تحظى فيه أطر عمل تطوير تطبيقات الويب مثل Ruby on Rails و Django بشعبية كبيرة ، يلتقط Sinatra الطرف الآخر من الطيف. بينما تطلب Ruby on Rails و Django من المبرمج اتباع اتفاقية محددة وطريقة عمل الأشياء (والتي بدورها تعني منحنى تعليمي طويل وحاد) ، فإن سيناترا لا تفرض مثل هذه المتطلبات.

سيناترا من الناحية المفاهيمية أبسط بكثير من القضبان و Djangos في العالم. يمكنك بدء التشغيل باستخدام تطبيق ويب يمكنه التفاعل مع Arduino في غضون دقائق.

سوف أبين بمثال. إليك ما يبدو عليه تطبيق ويب الحد الأدنى من Sinatra (ما عليك سوى قراءة ما يلي في الوقت الحالي ، ولا تفعل ذلك في الواقع على جهاز الكمبيوتر الخاص بك لأنك ربما لم تكن لديك المتطلبات الأساسية لهذا الإعداد حتى الآن):

في ملف واحد ، دعنا نسميها my_app.rb ، أضف هذا النص:

تتطلب 'sinatra'get' / 'do "Hello، world!" النهاية

في سطر الأوامر ، ابدأ التطبيق كما يلي:

روبي my_app.rb

سيبدأ تطبيقك ، وسترى هذا النص في وحدة التحكم:

peter @ ubuntu-dev: ~ / arduino / sinatra_demo $ ruby my_app.rbPuma 2.8.1 بدءًا … * الحد الأدنى للخيوط: 0 ، الحد الأقصى للخيوط: 16 * البيئة: التطوير * الاستماع على tcp: // localhost: 4567 == سيناترا / 1.4.4 احتل المسرح في 4567 للتطوير مع نسخة احتياطية من Puma

التطبيق جاهز الآن لتلقي طلبات العميل. افتح متصفحًا ، وأشره إلى https:// localhost: 4567 ، وهذا ما ستراه (انظر لقطة الشاشة المرفقة).

هذه أربعة أسطر بسيطة من التعليمات البرمجية في ملف واحد. في المقابل ، كان ريلز سيطلب أكثر من مائة ملف ، تم إنشاؤها ببساطة لتلبية متطلبات إطار العمل. لا تفهموني خطأ ، أنا أحب ريلز ، لكن حقًا؟ …

لذا ، سيناترا بسيط وسريع التشغيل. سأفترض أنك لا تعرف شيئًا عن Ruby و Sinatra ونشر التطبيقات على السحابة ، لذلك في القسم التالي سأنتقل بك خطوة بخطوة من الصفر إلى نشر خدمة الويب Arduino على السحابة.

الخطوة 4: قم بإعداد آلة التطوير الخاصة بك

سيناترا مبني على لغة برمجة روبي. لذلك ، تحتاج إلى تثبيت Ruby قبل تثبيت Sinatra.

ستحتاج أيضًا إلى تثبيت خادم مخزن ذي قيمة مفتاح يسمى Redis. فكر في Redis كقاعدة بيانات تخزن البيانات مقابل مفتاح. يمكنك استخدام المفتاح لاسترداد البيانات ، ويتم تحسينه للسرعة بدلاً من المرونة في هياكل البيانات التي تم تصميم قاعدة البيانات الارتباطية التقليدية من أجلها. يقوم Home Alert بتخزين رسائله في Redis.

الخطوة 5: Ruby على Mac أو Linux

إذا كنت تستخدم جهاز كمبيوتر Mac أو Linux ، فإنني أوصيك باستخدام RVM لتثبيت وإدارة تثبيت Ruby (RVM: Ruby Version Manager). تعليمات تثبيت Ruby مع RVM موجودة في هذه الصفحة ، أو فقط انسخ والصق هذا الأمر في قشرتك:

curl -sSL https://get.rvm.io | bash -s مستقر - روبي

اجلس واسترخي وانتظر حتى يكتمل تنزيل RVM و Ruby وتجميعهما وتثبيتهما.

الخطوة 6: Ruby على Windows

إذا كنت تستخدم نظام التشغيل Windows ، فإنني أوصي باتباع هذا الدليل على موقع الويب الخاص بـ Ruby Installer لنظام التشغيل Windows ، واستخدام تطبيق الإعداد.

الخطوة 7: تحقق من الياقوت وقم بتعيينه

في وقت كتابة هذا التقرير ، كان أحدث إصدار مستقر من Ruby هو 2.1.1.p76. يمكنك التحقق من الإصدار الذي تم تثبيته باستخدام RVM عن طريق كتابة هذا:

معلومات rvm

ستظهر الكثير من المعلومات حول RVM وروبي. في حالتي ، هذا هو قسم الياقوت:

روبي: مترجم: إصدار "روبي": "2.1.1p76" التاريخ: "2014" -02-24 مراجعة 45161) [x86_64-linux]"

أوصي باستخدام Ruby 2.1.1 أيضًا ، لذلك إذا رأيت أي شيء أقدم من ذلك ، فقم بالترقية على النحو التالي:

تثبيت rvm 2.1.1

سيؤدي هذا إلى تثبيت Ruby 2.1.1. يحتوي موقع مشروع RVM على الكثير من المعلومات حول RVM وكيفية إدارة تثبيت Ruby.

الخطوة 8: تثبيت Sinatra (جميع الأنظمة الأساسية)

في Ruby ، تتم مشاركة الكود كحزم تسمى “gems”. يمكن تثبيت الكود الذي يتكون من سيناترا على جهاز الكمبيوتر الخاص بك كجوهرة مثل هذا:

تثبيت جوهرة سيناترا

سيقوم هذا السطر بجلب جميع التعليمات البرمجية والوثائق وتثبيتها على جهاز الكمبيوتر الخاص بك.

الخطوة 9: Redis على نظام Mac أو Linux

يعد إعداد Redis على نظام Mac أو Linux أمرًا سهلاً. العملية موضحة على موقع Redis على الويب. افتح Terminal ، واكتب هذه الأوامر:

$ wget https://download.redis.io/releases/redis-2.8.7.tar…$ tar xzf redis-2.8.7.tar.gz $ cd redis-2.8.7 $ make

قم بتشغيل Redis عن طريق كتابة:

خادم SRC / redis

… وقد انتهيت!

الخطوة 10: Redis على Windows

يوصى باستخدام Redis على Windows للتطوير فقط ، وستحتاج إلى تجميعه باستخدام بيئة تطوير Visual Studio Express المجانية. إنها تتطلب بعض الوقت لتشغيلها ، لكنها تعمل بشكل جيد وتستحق الجهد المبذول. اتبع التعليمات الموجودة على صفحة المشروع على Github. هناك ، ستجد أيضًا رابطًا لصفحة Visual Studio Express.

الخطوة 11: قم بإنشاء تطبيق خدمة الويب

قم بإنشاء تطبيق خدمة الويب
قم بإنشاء تطبيق خدمة الويب

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

ها هو كود روبي ، الكل في ملف واحد يسمى "web.rb" (هذا الكود متاح على جيثب).

هام: قم بتنزيل وقراءة ملف PDF المرفق ، فهو يحتوي على تعليقات مفصلة مضمنة (يرجى القيام بذلك قبل المتابعة!).

يمكنك الآن تجربة نظام تنبيه المنزل الخاص بك. في الرسم الخاص بك ، قم بتغيير ثوابت WEBSITE و WEBPAGE للإشارة إلى جهاز التطوير ورقم المنفذ لخادم Sinatra للتطوير. في حالتي ، لدي جهاز تطوير على IP 172.16.115.136 ، وخادم التطوير Sinatra يستمع إلى المنفذ 5000 ، لذا فإن إعدادات الرسم الخاصة بي هي:

#define HW_ID "123" #define WEBSITE "172.16.115.136:5000 "#define WEBPAGE" / get_message /"

يمكن الوصول إلى عنوان IP هذا فقط للأجهزة الموجودة في شبكتي المنزلية.

يمثل إعداد HW_ID "معرف الجهاز" ، أي المعرف الذي سيتعرف عليه Arduino الذي يتحكم في DMD إلى تطبيق Sinatra. إنه نوع أساسي جدًا من المصادقة. سيقوم تطبيق الويب بتسليم رسالة إلى Arduino يطلبها بناءً على HW_ID المقدم. يمكن أن يكون لديك أجهزة متعددة بنفس HW_ID ، وفي هذه الحالة ستعرض جميع الأجهزة نفس الرسالة. إذا كنت تريد "الخصوصية" ، فاختر معرفًا به الكثير من الأحرف العشوائية التي لن يتمكن الآخرون من تخمينها. احذر أيضًا ، لا يتم تشفير أي اتصال.

الآن انطلق وابدأ تشغيل تطبيق Sinatra ، اكتب هذا (على افتراض أنك في مجلد مشروع Sinatra):

روبي web.rb

… وسترى شيئًا من هذا القبيل (قد تختلف بعض التفاصيل ، طالما لم يحدث عطل ، فأنت على ما يرام):

10:42:18 شبكة 1 | بدأت بـ pid 4911910: 42: 18 web.1 | بوما 2.8.1 يبدأ … 10: 42: 18 web.1 | * الحد الأدنى من المواضيع: 0 ، الحد الأقصى لعدد المواضيع: 1610: 42: 18 شبكة 1 | * البيئة: تطوير 10: 42: 18 ويب 1 | * الاستماع على tcp: //0.0.0.0: 5000

قم بتوجيه متصفح الويب الخاص بك إلى الموقع الذي يستمع إليه الخادم ، وسترى هذا (انظر المرفق الثاني).

قم بتحميل الرسم التخطيطي الخاص بك إلى Arduino ، وتأكد من اتصاله بشبكتك المحلية. إذا سارت الأمور على ما يرام ، فسيقوم Arduino باستطلاع رأي خدمة الويب الخاصة بك مرة واحدة كل دقيقة. أعطه رسالة لإظهارها: في حقل كود HW ، اكتب نفس المعرف الذي قمت بتعيينه للثابت HW_ID في الرسم التخطيطي. اكتب أي شيء في حقل "رسالتك" ، وحدد "مشاركة؟" خانة الاختيار.

أرسل ، انتظر لمدة دقيقة ، وشاهد رسالتك تظهر في DMD!

الخطوة 12: النشر إلى السحابة باستخدام Heroku

الآن بعد أن عمل Home Alert في التطوير ، دعنا نجعله يعمل على السحابة. هناك عدد لا يحصى من الخيارات المتاحة لنشر تطبيقات الويب. بناءً على نطاق وتعقيد Home Alert ، قررت أن إعداد الخادم الافتراضي الخاص بي لا يستحق الجهد المبذول. بدلاً من ذلك ، من الأفضل الذهاب إلى خدمة مثل Heroku ، مضيف التطبيق. بالنسبة لمقياسي ، تعد الدرجة المجانية في Heroku أكثر من كافية. حتى بالنسبة لمكون Redis ، تمكنت من اختيار خطة مجانية من أحد مزودي Redis العديدين الذين يعملون مع Heroku.

ومع ذلك ، هناك القليل من الجهد المبذول ، والذي يتعلق بتعديل تطبيقي بشكل طفيف بحيث يتوافق مع مواصفات Heroku. التفاصيل موجودة هنا ، ولكن ستحتاج بشكل أساسي إلى إضافة هذه الملفات إلى مشروع Sinatra الخاص بك (يمكن تنزيل جميع الملفات التالية من حسابي على Github):

* config.ru: يخبر Heroku أي ملف يحتوي على التطبيق. ها هي المحتويات:

تتطلب './web'run Sinatra:: Application

يشير السطر الأول إلى web.rb ، بينما يقوم السطر الثاني بتشغيل تطبيقك بالفعل.

* Gemfile: يحتوي على الجواهر (حزم أكواد الياقوت) التي يطلبها التطبيق. سيبحث Heroku داخل هذا الملف لمعرفة الكود الآخر الذي يحتاج إلى تثبيته حتى يعمل التطبيق الخاص بك. هناك طريقة أخرى للنظر إلى Gemfile وهي أنه يحتوي على قائمة بالتبعية لمشروعك. إذا لم تتوفر أي من هذه التبعيات ، فلن يعمل التطبيق الخاص بك. إليك ما يوجد داخل Gemfile لهذا التطبيق:

المصدر "https://rubygems.org" ruby "2.1.1" gem 'sinatra'gem' puma'gem 'redis'

أولاً ، يقوم بتعيين مستودع المصدر لجميع أكواد الجواهر ليكون rubygems.org. بعد ذلك ، يتطلب استخدام الإصدار 2.1.1 من Ruby لتشغيل التطبيق. ثم يسرد الجواهر المطلوبة: Sinatra و Puma (خادم تطبيق ويب Ruby رائع) و Redis.

* Procfile: يخبر Heroku بكيفية بدء تشغيل الخادم الخاص بك. يوجد سطر واحد فقط هنا:

الويب: Rackup -s puma -p $ PORT

يقول هذا السطر أن "الويب" هو النوع الوحيد من الخدمات المطلوبة (يمكن أن يكون لديك خدمات أخرى ، مثل "عامل" ، لمعالجة الخلفية) ، وأنه لبدء الخدمة ، يجب أن يستخدم Heroku الأمر الذي يأتي بعد ":".

يمكنك محاكاة ما سيفعله Heroku باتباع هذا التسلسل على جهاز التطوير الخاص بك (فقط اكتب الاختبار قبل السهم ؛ ما يلي السهم هو وصف للأمر فقط):

$> أداة تثبيت الأحجار الكريمة -> تثبيت Bundler ، الذي يعرف كيفية التعامل مع Gemfile. $> تثبيت الحزمة -> يعالج Bundler Gemfile ويثبت التبعيات. $> Rackup config.ru -> Rackup هي أداة يمكنها معالجة ملف config.ru. يأتي عادةً مع الإصدار الأحدث من Ruby ، إذا لم يتم تثبيته على النحو التالي: gem install rack.

تؤدي الخطوة الأخيرة إلى بدء تشغيل تطبيقك فعليًا. من المفترض أن ترى نفس الإخراج بالضبط عندما بدأت باستخدام ruby web.rb سابقًا. إنه نفس التطبيق قيد التشغيل ، فقط مع اختلاف أن الطريقة الثانية هي كيفية تشغيل Heroku.

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

يقوم Heroku Toolbelt بتثبيت عميل سطر أوامر Heroku ، Git (نظام إدارة التعليمات البرمجية مفتوح المصدر) ، و Foreman (أداة Ruby التي تساعد في إدارة التطبيقات المستندة إلى Procfile).

بمجرد الانتهاء من تثبيت Heroku Toolbelt باتباع الإرشادات الموجودة على موقع ويب Heroku ، اتبع هذه الخطوات لنشر تطبيقك (تتم كتابة كل شيء في سطر الأوامر ، داخل دليل التطبيق):

$> تسجيل الدخول إلى heroku -> تسجيل الدخول إلى Heroku عبر سطر الأوامر $> git init -> تهيئة مستودع Git لتطبيقك $> git add. -> (لاحظ النقطة!) أضف جميع الملفات في الدليل الحالي إلى مستودع Git $> git الالتزام -m "init" -> قم بإدخال هذه الملفات في المستودع ، برسالة جديدة $> heroku create -> إنشاء ملف جديد التطبيق على Heroku. سيعطي Heroku تطبيقك اسمًا عشوائيًا ، مثل "blazing-galaxy-997". قم بتدوين الاسم وعنوان URL حتى تتمكن من الوصول إليه عبر متصفح الويب الخاص بك لاحقًا.سيبدو عنوان URL هذا بالشكل التالي: “https://blazing-galaxy-997.herokuapp.com/”. ستحتاج أيضًا إلى نسخ اسم المضيف (الجزء "blazing-galaxy-997.herokuapp.com") من التطبيق الجديد الخاص بك إلى ثابت WEBSITE في مخطط Arduino الخاص بك. افعل هذا الآن حتى لا تنسى لاحقًا. $> إضافات heroku: أضف rediscloud -> يضيف المستوى المجاني لخدمة Rediscloud Redis إلى تطبيقك. يتم إنشاء إعدادات التهيئة تلقائيًا وإتاحتها لتطبيقك. $> git push heroku master -> انشر الكود الخاص بك إلى Heroku. سيؤدي هذا تلقائيًا إلى نقل الرمز وإعداد أي تبعيات على Heroku وبدء التطبيق. في نهاية العملية ، سترى شيئًا مثل هذا: "https://blazing-galaxy-997.herokuapp.com تم نشره في Heroku" ، مما يعني أن تطبيقك أصبح الآن مباشرًا على السحابة العامة! تهانينا!

انطلق ، جربها!

الخطوة 13: وضع كل ذلك معًا

مع نشر تطبيق الويب الخاص بك ، قم بتحميل المخطط المحدث إلى Arduino (تذكر أنك قمت بتحديث ثابت WEBSITE للإشارة إلى مثيل الإنتاج الخاص بك لتطبيق الويب).

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

ستظهر رسالتك على DMD بعد حوالي دقيقة إذا سارت الأمور على ما يرام!

الخطوة 14: الإمكانيات

هناك الكثير الذي يمكنك القيام به مع نظام تنبيه المنزل …

يعني وجود واجهة Heroku الخلفية أنه يمكنك إضافة الكثير من المنطق الذي يمكن أن يضيف وظائف مذهلة. على سبيل المثال ، يمكنك إضافة قدرة التطبيق على إدارة الإخطارات المتكررة أو الإقرارات أو التحكم في أجهزة الإخطار الإضافية مثل الأضواء القوية وما إلى ذلك. يمكنك توسيعه ليشمل منطقة أتمتة المنزل والتحكم في الأضواء والأبواب. يمكنك إضافة DMDs متعددة لعرض إما رسائل مختلفة في كل واحدة أو رسالة واحدة في شاشة أكبر مدمجة. أنا فقط أكشط سطح ما هو ممكن هنا!

يتمتع!

موصى به: