جدول المحتويات:
- الخطوة 1: العصف الذهني للفكرة
- الخطوة الثانية: الرسم والمواد
- الخطوة 3: إنشاء الغلاف الخارجي
- الخطوة 4: قطع الغلاف الخارجي بالليزر
- الخطوة 5: ضعها معًا
- الخطوة 6: الكود
- الخطوة السابعة: الإلكترونيات
- الخطوة 8: النهائي
فيديو: صديق الصباح: 8 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
بعض الناس لديهم جداول عمل مزدحمة للغاية ، مما يجعل من السهل نسيان شيء أو اثنين. باستخدام هذا المنبه ، يمكنك ضبط عدة منبهات لإبقائك في الموعد المحدد. تعمل الساعة على مدار 24 ساعة وكل ما عليك فعله هو برمجتها لتنطلق في أوقات مختلفة من اليوم تتناسب مع جدولك الزمني. عند القيام بذلك ، ستظهر الأوقات التي قمت بتعيينها على شاشة LCD ، بحيث يمكنك التحقق للتأكد من أنها صحيحة وتكون بمثابة تذكير إضافي.
الخطوة 1: العصف الذهني للفكرة
عندما كنا نحاول حل المشكلة ، استخدمنا طريقة هيكل السمكة للتوصل إلى فكرة ونتج عن ذلك المنبه الخاص بنا.
الخطوة الثانية: الرسم والمواد
خلال هذه الخطوة ، حاولنا إعداد قائمة بكل الأشياء التي اعتقدنا أننا سنحتاجها للإلكترونيات والغلاف الخارجي. ثم توصلنا إلى رسم تخطيطي لما أردنا أن تبدو عليه ساعة المنبه وكيف سنقوم بتجميع غلافها الخارجي.
الخطوة 3: إنشاء الغلاف الخارجي
بالنسبة للنموذج الأولي ، أردت فقط أن أرى كيف ستتناسب مفاصل الأصابع معًا ، لذلك استخدمت صندوق أحذية ولم أستخدم القياسات الدقيقة.
الخطوة 4: قطع الغلاف الخارجي بالليزر
بالنسبة للنموذج الأولي الثاني ، كنت أرغب في الحصول على قياسات دقيقة واضطررت إلى إنشاء ملف pdf لإرساله إلى قاطع الليزر. من أجل القيام بذلك ، استخدمت موقعًا لتطبيق Box Maker ، https://boxdesigner.connectionlab.org. على موقع الويب هذا ، أدخلت الأبعاد ثلاثية الأبعاد للصندوق ، وسمك المادة ، ووحدات القياس ، ونوع الملف الذي أريد إنشاءه. كانت أبعاد الصناديق 7.5 × 3 × 5 بوصة واستخدمت 1/8 في مادة الأكريليك السميكة. تم بعد ذلك تكوين قياسات فتحات مفصل الإصبع تلقائيًا لتكون 0.46875 بوصة. لقد اخترت إصدار pdf لأن هذا هو نوع الملف الذي يقرأه قاطع الليزر وأردت إجراء بعض التغييرات في Adobe على الملف. لقد غيرت ألوان الخط إلى اللون الأحمر ، بحيث يعرف قاطع الليزر أنه يقطعها بدلاً من نقش الشكل ، وأضفت مربعًا مستطيلاً بأبعاد 3.92 بوصة بمقدار 1.56 بوصة على ما كان سيكون القطعة الأمامية من علبة. أضفت أيضًا مستطيلًا مقطوعًا بأبعاد 1 بوصة × 0.5 بوصة في القطعة الجانبية اليمنى في الجزء السفلي ليكون بمثابة فتحة للسلك المتصل بساعة المنبه. أضفت مؤخرًا ثلاث فتحات دائرية في الجزء العلوي للصفارين والزر. يبلغ قطر فتحات الجرس 0.5 بوصة وفتحة الزر 0.375 بوصة.
الخطوة 5: ضعها معًا
عندما تم قطع جميع القطع ، استخدمت حقنة وغراء أكريليك لإغلاقها معًا. جمعت القطع معًا وقمت بتقطير الغراء بين الشقوق لتكوين الجوانب معًا ، لكن الجزء العلوي لم يتم لصقها لأسفل.
الخطوة 6: الكود
مقدمة:
تم ترميز هذا المشروع باستخدام لغة c ++ على برنامج Arduino IDE. كانت وحدة التحكم الدقيقة المستخدمة هي NodeMCU مع ESP8266. بالنسبة لهذا المشروع ، سنحتاج إلى طريقة للحفاظ على الوقت بدقة ، وجرس لإصدار صوت ، ونظام إنذار لإحداث رنين في الإنذار ، وشاشة لعرض الوقت بالكامل وأوقات التنبيه. للحصول على الكود الكامل ، يرجى الرجوع إلى هذا الرابط
استيراد مكتبات
أول الأشياء أولاً ، نحتاج إلى استيراد المكتبات الضرورية.
# تضمين "RTClib.h"
# تضمين "Wire.h" # include # include # include # include
بدء المتغيرات
بعد ذلك ، نحتاج إلى بدء المتغيرات في وقت لاحق ، وتعيين تخطيط الدبوس لأزرار الجرس ، وإعداد RTC ، وتعيين عنوان I2C الخاص بشاشة LCD.
LiquidCrystal_I2C lcd (0x27 ، 20 ، 4) ؛
const int buzzer1 = 12 ؛ const int buzzer2 = 0 ؛ زر كثافة العمليات = 2 ؛ RTC_DS3231 rtc ؛ char daysOfTheWeek [7] [12] = {"الأحد" ، "الاثنين" ، "الثلاثاء" ، "الأربعاء" ، "الخميس" ، "الجمعة" ، "السبت"} وقت البدء ؛ وقت النشاط int int prevoustime = 0 ؛ char ahours1 [3] ؛ شار amins1 [3] ؛ ساعة int1 = 0 ؛ كثافة العمليات دقيقة 1 = 0 ؛ شار ahours2 [3] ؛ amins2 شار 2 [3] ؛ int hour2 = 0 ؛ كثافة العمليات دقيقة 2 = 0 ؛ شار ahours3 [3] ؛ شار amins3 [3] ؛ int hour3 = 0 ؛ كثافة العمليات min3 = 0 ؛ إنذار int = 0 ؛ الباحث بايت شار المستلم البايت الثابت numChars = 32 ؛ تم استلام حرف char [numChars] ؛
اقامة
بعد ذلك ، نحتاج إلى وظيفة تبدأ جميع العمليات الضرورية. في هذه الوظيفة ، نحتاج إلى بدء تشغيل شاشة LCD وطباعة الأوقات الأولية ، وإنشاء وظيفة أصغر تمنح الوقت الحقيقي لـ RTC إذا لم تكن موجودة بالفعل ، وبدء تشغيل الشاشة التسلسلية.
الإعداد باطل() {
#ifndef ESP8266 while (! Serial) ؛ #endif if (! rtc.begin ()) {Serial.println ("تعذر العثور على RTC")؛ بينما (1) ؛ } إذا (rtc.lostPower ()) {Serial.println ("RTC فقد الطاقة ، لنضع الوقت!")؛ rtc.adjust (DateTime (F (_ DATE_)، F (_ TIME_)))} lcd.init () ؛ اضاءه خلفيه ال سى دى()؛ // يجعل Baklight قيد التشغيل. lcd.clear () ؛ // Clears LCD.print ("00:00") ؛ // عرض على شاشة LCD بعد تحميل الكود lcd.setCursor (10 ، 0) ؛ lcd.print ("00:00") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("الوقت") ؛ lcd.setCursor (10 ، 1) ؛ lcd.print ("إنذار 1") ؛ lcd.setCursor (0 ، 3) ؛ lcd.print ("إنذار 2") ؛ lcd.setCursor (0 ، 2) ؛ lcd.print ("00:00") ؛ lcd.setCursor (10 ، 3) ؛ lcd.print ("إنذار 3") ؛ lcd.setCursor (10 ، 2) ؛ lcd.print ("00:00") ؛ rtc.begin () ، pinMode (زر ، الإدخال) ؛ // تعيين دبوس لزر الصمت pinMode (الطنان 1 ، الإخراج) ؛ // تعيين دبوس لمخرج الجرس pinMode (buzzer2 ، الإخراج) ؛ // تعيين دبوس لإخراج الجرس Serial.begin (9600) ؛ Serial.println ("وقت إدخال الإنذارات بتنسيق HHMM مع عدم وجود مسافة بين أجهزة الإنذار") ؛ وقت البدء = مللي () / 1000 ؛ }
جار استقبال البيانات
الآن ، يجب أن نكون قادرين على استقبال أوقات التنبيه. للقيام بذلك ، أنشأنا وظيفة لتلقي البيانات من الشاشة التسلسلية وتخزينها في مصفوفة.
recvWithEndMarker باطل () {
ثابت int ndx = 0 ؛ وقت السلسلة = Serial.readString () ، لـ (ndx = 0 ؛ timein [ndx] ؛ ndx ++) {ReceivedChars [ndx] = timein [ndx] ؛ } ReceivedChars [ndx] = '\ 0' ؛ Serial.print (وردت رسوم) ؛ }
ضبط المنبهات
الخطوة التالية هي القدرة على ضبط الإنذارات. هذا هو رمز الإنذار 1. بالنسبة للإنذار 2 و 3 ، تكررت نفس العملية مع بعض التغييرات في العدد.
/ * إنذار 1 * /
recvWithEndMarker () ، int ح ، م ؛ لـ (h = 0 ؛ h <2 ؛ h ++) {ahours1 [h] = ReceivedChars [h] ؛ } لـ (m = 2؛ m <4؛ m ++) {amins1 [m-2] = ReceivedChars [m] ؛ } ahours1 [h] = '\ 0' ؛ amins1 [m-2] = '0' ؛ Serial.print (ahours1) ؛ Serial.print (أمين 1) ؛ hour1 = atoi (ahours1) ؛ الحد الأدنى 1 = أتوي (أمين 1) ؛ Serial.print (hour1) ؛ Serial.print (دقيقة 1) ؛
الجرس / الزر
بعد ذلك ، نحتاج إلى جعل الجرس ينطلق عندما يتساوى الوقت الحقيقي ووقت التنبيه. في هذه الخطوة أيضًا ، نقوم بعمل زر غفوة مثل الذي يوقف الجرس أثناء الضغط عليه.
/ * زر كتم الصوت * /
الصمت الباحث ب ؛ ب = digitalRead (2) ؛ إذا (ب == منخفض) {الصمت = 1 ؛ } وإلا {silence = 0؛ } / * بدء التنبيه * / إذا (ساعات == ساعة 1 && دقيقة == دقيقة 1) {إنذار = 1 ؛ } else if (hours == hour2 && mins == min2) {alarm = 1؛ } else if (hours == hour3 && mins == min3) {alarm = 1؛ } آخر {التنبيه = 0 ؛ الصمت = 0 ؛ } إذا (المنبه == 1 && الصمت == 0) {tone (buzzer1، 4000، 1000)؛ نغمة (buzzer2 ، 4000 ، 1000) ؛ تأخير (1000) ؛ noTone (الجرس 1) ؛ noTone (الطنان 2) ؛ تأخير (1000) ؛ }
أوقات الطباعة
أخيرًا ، نحتاج إلى طباعة أوقات التنبيه والوقت الفعلي على شاشة LCD.
DateTime now = rtc.now () ؛
ساعات int = (now.hour ()) ؛ int mins = (now.minute ()) ؛ / * وقت التنبيه بتنسيق 00:00 * / lcd.setCursor (10 ، 0) ؛ lcd.print (ahours1) ؛ lcd.setCursor (13 ، 0) ؛ lcd.print (amins1) ؛ lcd.setCursor (0 ، 2) ؛ lcd.print (ahours2) ؛ lcd.setCursor (3 ، 2) ؛ lcd.print (amins2) ؛ lcd.setCursor (10 ، 2) ؛ lcd.print (ahours3) ؛ lcd.setCursor (13 ، 2) ؛ lcd.print (amins3) ؛ / * وقت العرض من RTC * / lcd.setCursor (0 ، 0) ؛ lcd.print (ساعات) ؛ lcd.print (":") ؛ lcd.print (دقيقة) ؛
الخطوة السابعة: الإلكترونيات
هناك عدة قطع للإلكترونيات لهذا المشروع ، كما يظهر في فاتورة المواد. الصورة الأولى هي رسم تخطيطي للإلكترونيات النهائية للمشروعات. الصورة الثانية هي تصميمنا الإلكتروني النهائي. الصورة الثالثة لمشروعنا في منتصف النموذج الأولي الثاني.
للبدء ، قم بإرفاق NodeMCU بالنهاية البعيدة للوح الخاص بك. ستحتاج بعد ذلك إلى توصيل جميع إلكترونياتك الأخرى بـ NodeMCU واللوحة. ابدأ بتوصيل شاشة LCD الخاصة بك بالدبابيس D1 لـ SCL و D2 لـ SDA. ستسمح شاشة LCD للمستخدم برؤية الوقت الحالي وأوقات التنبيه المحددة. لديك الآن سلك يربط صفاراتك بالدبابيس D3 و D6. سوف تسمح صفارات الإنذار بتنبيه المستخدم عند الوصول إلى الوقت المحدد. يجب عليك الآن إرفاق زر للسماح بإيقاف التنبيه. أرفق هذا الزر لتثبيت D4. ستقوم الآن بإرفاق ساعة الوقت الفعلي بلوحة التجارب. قم بتوصيل ساعة الوقت الحقيقي بحيث تستخدم نفس دبابيس SDA و SCL المستخدمة في شاشة LCD.
الخطوة 8: النهائي
إذا كنت قد اتبعت المعلومات المقدمة لمشروعك ، فقد يبدو مثل الصورة أعلاه. نتمنى لك التوفيق في محاولاتك لإعادة إنشاء هذا المشروع وعندما تنتهي من مشروعك نشجعك على مشاركة الصور والملاحظات معنا في التعليقات. شكرا لكم وحظا سعيدا زملائي صناع.
موصى به:
أضواء DIY طويلة المسافة لأفضل صديق: 4 خطوات (مع صور)
مصابيح DIY لأفضل صديق لمسافات طويلة: لقد صنعت أضواء متزامنة لمسافات طويلة تُعرف باسم & quot؛ أفضل صديق & quot؛ مصابيح. هذا يعني فقط أنها تظل متزامنة مع اللون الحالي للمصباح الآخر. لذلك إذا كنت تريد تغيير أحد المصباح إلى اللون الأخضر ، فبعد فترة وجيزة سيتحول المصباح الآخر إلى اللون الأخضر
صديق الدراسة: 10 خطوات
دراسة الأصدقاء: يشرح هذا الدليل كيفية تكوين رفيق الدراسة.تتمثل وظيفة رفيق الدراسة هذا في مساعدة المراهقين الذين تتراوح أعمارهم بين 14 و 18 عامًا على تعلم كيفية التخطيط والدراسة. الهدف هو أن الروبوت يمكن أن يتعلم مع الطلاب. الغلاف مرسوم في
مصباح مكتبي LED صديق للساعة اليومية (لا حاجة لبرمجة!): 7 خطوات (بالصور)
المصباح المكتبي LED الصديق للساعة البيولوجية (لا يتطلب برمجة!): لقد صممت هذا المصباح ليكون مناسبًا لإيقاع الساعة البيولوجية. في الليل ، يكون نومك أسهل لأنه لا يمكن تشغيل سوى مصابيح LED الملونة الدافئة. خلال النهار ، يمكن أن تبقيك مستيقظًا لأن كلاً من مصابيح LED ذات اللون الأبيض الفاتح والألوان الدافئة يمكن تشغيلها في
ضوء الصباح والليل: 4 خطوات
ضوء الصباح والليل: هذا ضوء ورقي عصامي يستخدم في الصباح والمساء
آلة الصباح: 5 خطوات (بالصور)
The Morning Machine: هل سبق لك أن استيقظت في الصباح على المنبه المزعج ثم مشيت طوال الطريق إلى المطبخ لمجرد متابعة جهد صب مشروبك. حسنا لا مزيد من البحث! ستعلمك هذه التعليمات كيفية صنع آلة لا يمكنها