كيفية جعل زر اتصال Wi-Fi الخاص بك مع ESP8266

كيفية جعل زر اتصال Wi-Fi الخاص بك مع ESP8266

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





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





اليوم سنقوم بإنشاء زر تمكين Wi-Fi باستخدام NodeMCU ، وبرمجته لاستخدام IFTTT للقيام ... حسنًا ، أي شيء! تعليمات مكتوبة بعد الفيديو ، إذا كنت تفضل ذلك.





ماذا ستحتاج

سوف تحتاج:

  • 1 × لوحة NodeMCU (ESP8266) ، متوفرة لـ 2-3 دولارات على AliExpress
  • 1 × زر ضغط
  • 1 × LED (اختياري)
  • 1 × 220 أوم المقاوم (اختياري)
  • اللوح وأسلاك التوصيل
  • مايكرو يو اس بي للبرمجة
  • جهاز كمبيوتر مثبت عليه Arduino IDE

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



الخطوة 1: إعداد الدائرة

إعداد الأجهزة بسيط جدًا لهذا المشروع. قم بإعداد لوحك وفقًا لهذا الرسم التخطيطي.

السلك الأرجواني يعلق دبوس D0 على جانب واحد من الزر. يربط السلك الأخضر الجانب الآخر من الزر بملف دبوس RST . السلك الأزرق يمتد من دبوس D1 للمقاوم والصمام. تعلق الساق السلبية من الصمام على دبوس GND من NodeMCU.





عند إعداد اللوح ، يجب أن يبدو مثل هذا:

كيفية التحقق من رسائل instagram على جهاز الكمبيوتر

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





الخطوة 2: إعداد IDE

قبل الشروع في البرمجة ، تحتاج إلى إجراء بعض الاستعدادات. إذا لم تكن قد قمت بذلك بالفعل ، فقم بإعداد Arduino IDE للتعرف على لوحة NodeMCU الخاصة بك. يمكنك إضافته إلى قائمة المجالس الخاصة بك عن طريق ملف> تفضيلات .

يمكنك العثور على شرح أكثر تفصيلاً لهذه الخطوة في مقالة مقدمة عن NodeMCU.

مطلوب مكتبتين لهذا المشروع. انتقل إلى رسم> تضمين مكتبة> إدارة المكتبات . بحث عن واي فاي بواسطة Ivan Grokhotkov وتثبيته. تمت كتابة هذه المكتبة لإجراء اتصالات Wi-Fi مع لوحة NodeMCU.

البحث التالي عن IFTTT ويب هوك بواسطة John Romkey وتثبيت أحدث إصدار. تم تصميم هذه المكتبة لتبسيط عملية إرسال webhooks إلى IFTTT.

هذا كل التحضير الذي نحتاجه ، دعنا نبرمج!

كيف ستعمل المدونة

سنستخدم ملف واي فاي مكتبة لإنشاء اتصال Wi-Fi. ال IFTTTWebhooks تقدم المكتبة طلبًا إلى IFTTT --- في هذه الحالة ، للنشر على Twitter. بعد ذلك ، قم بإرشاد لوحة NodeMCU إلى وضع السكون عندما لا تكون قيد الاستخدام لتوفير الطاقة.

عند الضغط على الزر ، سيربط ملف د 0 و RST دبابيس. هذا يعيد ضبط اللوحة ، وتحدث العملية مرة أخرى.

معظم التعليمات البرمجية في هذا البرنامج التعليمي بسيطة بما يكفي للمبتدئين. ومع ذلك ، إذا كنت تبدأ ، فستجد أنه من الأسهل كثيرًا فهمه بعد اتباعك دليل المبتدئين في اردوينو .

يمر هذا البرنامج التعليمي من خلال التعليمات البرمجية في أجزاء للمساعدة في الفهم. إذا كنت ترغب في الوصول إلى العمل مباشرة ، يمكنك العثور على أكمل الكود في Pastebin . لاحظ أنك ستظل بحاجة إلى ملء بيانات اعتماد Wi-Fi و IFTTT في هذا الرمز حتى تعمل!

الخطوة الثالثة: اختبار النوم العميق

للبدء ، سننشئ اختبارًا بسيطًا لإظهار كيفية عمل النوم العميق. افتح رسمًا جديدًا في Arduino IDE. أدخل مقطعي الكود التاليين.

#include
#include
#define ledPin 5
#define wakePin 16
#define ssid 'YOUR_WIFI_SSID'
#define password 'YOUR_WIFI_PASSWORD'
#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

هنا ، نقوم بتضمين مكتباتنا ، إلى جانب تحديد بعض المتغيرات التي سنحتاجها في رسمنا التخطيطي. ستلاحظ أنه تم ترقيم ledPin و wakePin بشكل مختلف هنا مقارنةً بمخطط Fritzing أعلاه. يحتوي NodeMCU على pinout مختلف للوحات Arduino. ومع ذلك ، فهذه ليست مشكلة ، بسبب هذا الرسم التخطيطي السهل:

الآن قم بإنشاء وظيفة الإعداد:

void setup() {
Serial.begin(115200);
while(!Serial) {
}
Serial.println(' ');// print an empty line before and after Button Press
Serial.println('Button Pressed');
Serial.println(' ');// print an empty line
ESP.deepSleep(wakePin);
}

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

أخيرًا ، للاختبار ، أضف هذا إلى ملف حلقة() طريقة:

void loop(){
//if deep sleep is working, this code will never run.
Serial.println('This shouldn't get printed');
}

عادةً ما تقوم رسومات Arduino بتشغيل وظيفة الحلقة بشكل مستمر بعد الإعداد. نظرًا لأننا نرسل اللوحة إلى وضع السكون قبل انتهاء الإعداد ، فلن تعمل الحلقة مطلقًا.

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

ملاحظة حول جهاز العرض التسلسلي

ربما لاحظت بعض الأحرف الهراء في الشاشة التسلسلية أثناء بعض مشاريعك. يحدث هذا عادةً بسبب عدم ضبط الشاشة التسلسلية على نفس معدل البث بالباود مثل Serial.begin (XXXX) معدل.

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

هي أجهزة أبل إيربودس متوافقة مع أندرويد

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

الخطوة 4: الاتصال بشبكة Wi-Fi

الآن قم بإنشاء وظيفة للاتصال بشبكة Wi-Fi الخاصة بك.

void connectToWifi() {
Serial.print('Connecting to: SSID NAME'); //uncomment next line to show SSID name
//Serial.print(ssid);
WiFi.begin(ssid, password);
Serial.println(' ');// print an empty line
Serial.print('Attempting to connect: ');
//try to connect for 10 seconds
int i = 10;
while(WiFi.status() != WL_CONNECTED && i >=0) {
delay(1000);
Serial.print(i);
Serial.print(', ');
i--;
}
Serial.println(' ');// print an empty line
//print connection result
if(WiFi.status() == WL_CONNECTED){
Serial.print('Connected.');
Serial.println(' ');// print an empty line
Serial.print('NodeMCU ip address: ');
Serial.println(WiFi.localIP());
}
else {
Serial.println('Connection failed - check your credentials or connection');
}
}

تحاول هذه الطريقة الاتصال بشبكتك عشر مرات مع ثانية بينهما. نجاح أو فشل الاتصال يطبع إلى الشاشة التسلسلية.

الخطوة 5: استدعاء طريقة الاتصال

الآن ، connectToWifi () لم يتم استدعاؤه. أضف مكالمة إلى وظيفة الإعداد الخاصة بك بين رسالة 'الضغط على الزر' وإرسال اللوحة للنوم.

connectToWifi();

إذا كنت تتساءل عن المكان المناسب لذلك ، يجب أن يبدو كما يلي:

في الجزء العلوي من الرسم ، استبدل ملف ssid و كلمه السر المتغيرات مع بيانات اعتماد Wi-Fi الخاصة بك. حفظ الرسم الخاص بك وتحميله على السبورة.

الآن عندما تقوم اللوحة بالتمهيد ، ستحاول الاتصال بشبكة Wi-Fi الخاصة بك ، قبل العودة إلى وظيفة الإعداد. الآن ، لنقم بإعداد تكامل IFTTT.

الخطوة 6: إعداد تكامل IFTTT

يسمح IFTTT بالتكامل مع مجموعة واسعة من خدمات الويب. استخدمناه في البرنامج التعليمي الخاص بنا على برج Wi-Fi PC الخاص بنا لإرسال تنبيه عند تلقي بريد إلكتروني جديد. اليوم سنستخدمه لإرسال تغريدة بضغطة زر.

انتقل إلى ملف تطبيقاتي الصغيرة الصفحة ، وحدد تطبيق صغير جديد

انقر فوق + هذا واتصل بـ ويب هوك . يختار 'تلقي طلب ويب' وقم بتسمية الحدث الخاص بك. أبقيها بسيطة ! قم بتدوين اسم الحدث ، ستحتاج إلى إضافته إلى رمز NodeMCU لاحقًا. انقر 'إنشاء مشغل' .

حدد الآن + ذلك . ابحث عن ملف تويتر الخدمة والاتصال بها - ستحتاج إلى تفويضها للنشر على حساب Twitter الخاص بك. يختار 'انشر تغريدة' واختر رسالتك.

ستطلب منك الشاشة التالية مراجعة التطبيق الصغير. انقر فوق إنهاء. هذا كل شيء!

الخطوة 7: إضافة بيانات اعتماد IFTTT إلى الكود

مرة أخرى في Arduino IDE ، ستحتاج إلى إضافة مفتاح IFTTT API واسم الحدث إلى المتغيرات المحددة. للعثور على مفتاح API ، انتقل إلى تطبيقاتي الصغيرة واختر ويب هوك تحت خدمات التبويب. يختار توثيق للوصول إلى مفتاحك.

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

#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

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

بين استدعاء connectToWifi () وإرسال اللوحة إلى وضع السكون ، قم بإنشاء مثيل لكائن مكتبة IFTTTWebhook. يشير مؤشر LED إلى اكتمال المهمة قبل أن يبدأ النوم العميق مرة أخرى.

في منتصف الطريق بين عنوانين
//just connected to Wi-Fi
IFTTTWebhook hook(IFTTT_API_KEY, IFTTT_EVENT_NAME);
hook.trigger();
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
//now sending board to sleep

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

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

منتهي! كيف يمكنك تحسينه بشكل أكبر؟

هذه نسخة أساسية من زر Wi-Fi ، ولكن هناك العديد من الطرق التي يمكن تحسينها. للتبسيط ، يتم استخدام اتصال USB للطاقة هنا. ستجعلها البطارية متحركة بالكامل ، وستكون العلبة التي تحمل الدائرة هي مشروع الطباعة ثلاثية الأبعاد المثالي للمبتدئين.

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

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

حقوق الصورة: Vadmary / الإيداع

يشارك يشارك سقسقة بريد الالكتروني 6 بدائل مسموعة: أفضل تطبيقات الكتب الصوتية المجانية أو الرخيصة

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

اقرأ التالي
مواضيع ذات صلة
  • افعلها بنفسك
  • اردوينو
  • دروس مشروع DIY
نبذة عن الكاتب إيان باكلي(216 مقالة منشورة)

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

المزيد من Ian Buckley

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك