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

صديق الصباح: 8 خطوات
صديق الصباح: 8 خطوات

فيديو: صديق الصباح: 8 خطوات

فيديو: صديق الصباح: 8 خطوات
فيديو: 8 خطوات تجعل مشروعك صديق للبيئة 2024, يوليو
Anonim
Image
Image

بعض الناس لديهم جداول عمل مزدحمة للغاية ، مما يجعل من السهل نسيان شيء أو اثنين. باستخدام هذا المنبه ، يمكنك ضبط عدة منبهات لإبقائك في الموعد المحدد. تعمل الساعة على مدار 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: النهائي

أخير
أخير

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

موصى به: