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

إخطارات الأحداث في الوقت الفعلي باستخدام NodeMCU (Arduino) و Google Firebase و Laravel: 4 خطوات (بالصور)
إخطارات الأحداث في الوقت الفعلي باستخدام NodeMCU (Arduino) و Google Firebase و Laravel: 4 خطوات (بالصور)

فيديو: إخطارات الأحداث في الوقت الفعلي باستخدام NodeMCU (Arduino) و Google Firebase و Laravel: 4 خطوات (بالصور)

فيديو: إخطارات الأحداث في الوقت الفعلي باستخدام NodeMCU (Arduino) و Google Firebase و Laravel: 4 خطوات (بالصور)
فيديو: Realtime Event Notifications Using NodeMCU (Arduino), Google Firebase and Laravel 2024, يونيو
Anonim
Image
Image
إشعارات الأحداث في الوقت الفعلي باستخدام NodeMCU (Arduino) و Google Firebase و Laravel
إشعارات الأحداث في الوقت الفعلي باستخدام NodeMCU (Arduino) و Google Firebase و Laravel

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

يمكن لهذا الجهاز تنبيهك في الوقت الفعلي بأي شيء تريده.

الخطوة 1: اربط الدائرة

اربط الدائرة
اربط الدائرة
اربط الدائرة
اربط الدائرة

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

نظرًا لأن لوحة NodeMCU يمكن أن تعمل بأمان حتى حوالي 12 مللي أمبير من التيار على المسامير ، يتم توصيل الجرس من خلال ترانزستور NPN. لقد استخدمت 2N2222 لأن لدي الكثير منهم في الأرجاء ولكنني متأكد من أن المبدأ سيكون هو نفسه مع أي ترانزستور NPN آخر.

لتوصيل الدائرة الكهربائية ، قم بتوصيل مجمع الترانزستور بدبوس Vin الموجود على اللوحة. يعمل الجرس عند 5 فولت ، وبما أننا سنعمل على تشغيل الجهاز من USB ، فإن هذا الدبوس سيعطينا الجهد قبل منظم 3.3 فولت على اللوحة.

بعد ذلك ، قم بتوصيل الجانب الموجب من الجرس الموجود على باعث الترانزستور ، والدبوس السالب للجرس بأي من المسامير الأرضية الموجودة على اللوحة. لقد استخدمت الدبوس 2 ، ولكن يمكنك أيضًا توصيله في أطراف التوصيل 9 أو 25 أو 29.

يتم توصيل قاعدة الترانزستور بالدبوس D2 الذي يرتبط بـ GPIO 4 في برنامج Arduino. مع هذا الإعداد ، سيعمل الترانزستور بشكل فعال كمفتاح تشغيل الجرس في كل حدث. بدلاً من الجرس ، يمكنك توصيل مرحل بنفس الطريقة لتتمكن من قيادة أي جهاز رئيسي مثل المصابيح الكهربائية أو الآلات أو صفارات الإنذار إذا كنت تقوم بعمل جهاز إنذار.

الخطوة الثانية: تحضير تطبيقات الويب

تحضير تطبيقات الويب
تحضير تطبيقات الويب
تحضير تطبيقات الويب
تحضير تطبيقات الويب
تحضير تطبيقات الويب
تحضير تطبيقات الويب

بالنسبة لجزء التشغيل والوقت الفعلي من الجهاز ، سنستخدم قاعدة بيانات Google Firebase Realtime. هذه قاعدة بيانات سحابة NoSQL رائعة تم إنشاؤها بواسطة Google والتي توفر مزامنة البيانات في الوقت الفعلي بين كل من الأنظمة الأساسية التي يتم استخدامها.

قم أولاً بإنشاء المشروع باسم من اختيارك. بمجرد الإنشاء ، قم بإنشاء عقدة واحدة تسمى "العد" وابدأها بالقيمة إذا كانت 0. سيكون هذا هو عدد البداية الذي نريد متابعته في المستقبل.

يستخدم تطبيق Laravel الحزمة "firebase-php" من Kreait ، وهي مرتبطة أدناه. قم بتثبيت الحزمة عن طريق تشغيل "composer need kreait / firebase-php". بمجرد الانتهاء من التثبيت ، نحتاج إلى إنشاء وحدة التحكم حيث سيحدث الإجراء. سميت الطريقة "تحديث" وقمت بتوصيلها في المسارات في إجراء POST.

لاسترداد مثيل Firebase ، تحتاج إلى ملف json الذي تحتاج إلى تنزيله من وحدة تحكم Firebase. ضع هذا الملف في جذر مشروع Laravel الخاص بك وقم بتسميته firebase.json. عند استرداد مثيل Firebase ، نحتاج إلى توفير المسار إلى هذا الملف باستخدام التابع withCredentials.

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

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

بالإضافة إلى ذلك ، بدلاً من إرسال النموذج كما في مثال Laravel ، لدينا الآن وظيفة JavaScript يتم استدعاؤها عند النقر فوق الزر ، وتحديث العدد وإعادة كتابة القيمة المحدثة إلى قاعدة البيانات.

الخطوة 3: برمجة لوحة NodeMCU

برمجة مجلس NodeMCU
برمجة مجلس NodeMCU
برمجة مجلس NodeMCU
برمجة مجلس NodeMCU
برمجة مجلس NodeMCU
برمجة مجلس NodeMCU

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

يقوم الجزء الأول من كود Arduino بإعداد جميع التعريفات الضرورية التي ستحتاج إلى تعديلها على جهازك. الإعداد الأول من هذا القبيل هو SSID الخاص بشبكة WiFi وكلمة المرور الخاصة به ، ثم نحتاج إلى إعداد عنوان url الخاص بـ firebase و firebase db secret. لسوء الحظ ، هذه ليست الطريقة الموصى بها للاتصال بقاعدة البيانات ولكن حتى الآن هذه هي الطريقة الوحيدة التي تدعمها المكتبة. يمكنك العثور على هذا السر ضمن Project Settings ، قائمة حسابات الخدمة في وحدة تحكم firebase.

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

تحدد وظيفة الإعداد دبوس LED المدمج ودبابيس D2 كمخرجات ، وابدأ الاتصال التسلسلي لمعرفة ما يجري والاتصال بشبكة WiFi المحددة. بمجرد إنشاء الاتصال ، يبدأ الاتصال بـ Firebase ويحصل على آخر قيمة أبلغنا عنها. ثم يبدأ في الاستماع إلى التغييرات على المسار المحدد.

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

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

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

الخطوة 4: استمتع بجهازك

استمتع بجهازك!
استمتع بجهازك!

الكود الكامل الذي استخدمته متاح في حسابي على GitHub المرتبط أدناه مع رابط إلى المخطط التخطيطي للمشروع.

مصدر الرمز

تخطيطي

يمكن اعتماد الكود بسهولة للعمل مع الكثير من السيناريوهات والأحداث المختلفة وأنا متأكد من أنك ستستمتع كثيرًا باللعب به.

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

إذا أعجبك المشروع ، فيرجى الاشتراك في قناتي على YouTube:

تذوق الكود

موصى به: