جدول المحتويات:
- الخطوة 1: النموذج الأولي
- الخطوة 2: إرسال إشعار عبر Blynk
- الخطوة الثالثة: قياس استهلاك الطاقة وتقدير عمر البطارية
- الخطوة 4: قياس مستوى البطارية
- الخطوة الخامسة: جعلها أجمل
- الخطوة 6: اللمسات الأخيرة
فيديو: مستشعر إشعارات الغسالة: 6 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
يوجد مستشعر الغسالة هذا أعلى الغسالة ويستخدم مقياس تسارع لاكتشاف الاهتزازات الصادرة عن الغسالة. عندما يستشعر أن دورة الغسيل قد انتهت ، يرسل لي إشعارًا على هاتفي. لقد صنعت هذا لأن الجهاز نفسه لم يعد يصدر صوتًا عند الانتهاء ، وقد سئمت من نسيان إخراج الغسيل.
يمكن العثور على الكود هنا:
قائمة الأجزاء الكاملة:
- ويموس لولين 32
- نصف حجم اللوح (للنماذج الأولية)
- صندوق مشروع ABS مع لوحة مصفوفة 59x88x30mm
- Sparkfun LIS3DH - اندلاع مقياس تسارع ثلاثي المحاور
- 1x ZVP3306A P-channel MOSFET ، 160 مللي أمبير ، 60 فولت ، 3-Pin E-Line
- 1x BC549B TO92 30V NPN الترانزستور
- 5 ملم LED أزرق 68 mcd
- 1x 100 كيلو 0.125 واط CF المقاوم
- 1x 330 كيلو 0.125 واط CF المقاوم
- 2x 10 كيلو 0.250 واط CF المقاوم
- 1x 100 0.250W CF المقاوم
- كبل نسائي بنمط PH ثنائي السنون من نوع JST (14 سم)
- 4x M1219-8 مغناطيس قرص نيوديميوم 6 × 4 مم
الخطوة 1: النموذج الأولي
يستخدم الجهاز متحكم ESP32. في هذه الحالة ، أستخدم لوحة تطوير Lolin32 من Wemos والتي يمكنك شراؤها على AliExpress مقابل حوالي 7 دولارات. مقياس التسارع هو Sparkfun LIS3DH - من المهم أن يكون مقياس التسارع رقميًا وليس تناظريًا كما سترى لاحقًا. البطارية التي أخذتها من مجموعة قديمة من مكبرات صوت البلوتوث.
يتصل ESP32 بمقياس التسارع عبر I2C. قام الإصدار الأول من الكود باستقصاء محاور التسريع الثلاثة (x و y و z) لقيمة التسارع المقاسة كل 20 مللي ثانية. وضع نموذج اللوح الأولي على الغسالة وقمت بإنتاج الرسم البياني أعلاه الذي يوضح قمم التسارع خلال مراحل مختلفة من دورة الغسيل. تظهر تلك القمم التي كان فيها التسارع المطلق أكبر من 125 مجم (125 جزء من الألف من الجاذبية العادية) باللون البرتقالي. نريد اكتشاف هذه الفترات واستخدامها لتحديد حالة الغسالة.
كيفية تحديد ما إذا كان الجهاز قيد التشغيل أم لا؟
كان أحد أهداف بناء هذا الجهاز أنه سيكون سلبيًا تمامًا. بمعنى آخر. لا يجب الضغط على أزرار ؛ سيعمل فقط. يجب أن تكون الطاقة منخفضة جدًا أيضًا حيث لم يكن من الممكن حقًا تمديد كبلات الطاقة إلى الغسالة في حالتي.
لحسن الحظ ، يتميز مقياس التسارع LIS3DH بميزة حيث يمكنه تشغيل مقاطعة عندما يتجاوز التسارع حدًا معينًا (ملاحظة ، يتطلب ذلك استخدام مرشح التمرير العالي المدمج في مقياس التسارع - راجع الكود الموجود على Github للحصول على التفاصيل) ويمكن إيقاظ ESP32 من وضع السكون العميق عبر مقاطعة. يمكننا استخدام هذه المجموعة من الميزات لإنشاء وضع سكون منخفض الطاقة للغاية يتم تشغيله بواسطة الحركة.
سيبدو الرمز الزائف كما يلي:
# استيقظ الجهاز
إشعار_threshold = 240 عداد = 10 مقياس تسارع.set_threshold (96) # 96mg بينما العداد> 0: إذا كان مقياس التسارع. () esp32.set_wakeup_trigger_on_interrupt () esp32.deep_sleep ()
يمكنك أن ترى هنا أننا نستخدم عدادًا لاكتشاف عدد ثواني التسارع التي اكتشفناها خلال فترة الاستيقاظ الحالية. إذا انخفض العداد إلى الصفر ، فيمكننا إعادة الجهاز إلى وضع السكون. إذا وصل العداد إلى 240 (حد الإخطار) ، فهذا يعني أننا اكتشفنا 4 دقائق من الاهتزاز. يمكننا تعديل قيم هذه الحدود للتأكد من أن الجهاز يكتشف بشكل صحيح دورة الدوران النهائية. بمجرد اكتشاف اهتزاز كافٍ ، يمكننا ببساطة النوم لمدة 5 دقائق أخرى (في حالتي ، هذه هي المدة التي يستغرقها الغسيل حتى يكتمل بالفعل) قبل إرسال إشعار.
الخطوة 2: إرسال إشعار عبر Blynk
Blynk هي خدمة مصممة للسماح بالتفاعل مع أجهزة إنترنت الأشياء مع تطبيق على هاتفك. في هذه الحالة ، أستخدم واجهة برمجة تطبيقات إشعار الدفع التي يتم تشغيلها بواسطة HTTP POST بسيط إلى واجهة برمجة تطبيقات Blynk.
الخطوة الثالثة: قياس استهلاك الطاقة وتقدير عمر البطارية
تم الإعلان عن شريحة ESP32 على أنها ذات استهلاك منخفض جدًا للطاقة أثناء النوم العميق (منخفض يصل إلى 5uA). لسوء الحظ ، توفر الدوائر الموجودة على العديد من لوحات التطوير المختلفة خصائص مختلفة جدًا لاستهلاك الطاقة - لا يتم إنشاء جميع لوحات ESP32 على قدم المساواة. على سبيل المثال ، عندما بدأت هذا المشروع لأول مرة ، استخدمت Sparkfun ESP32 Thing الذي يستهلك حوالي 1 مللي أمبير من الطاقة في وضع السكون العميق (حتى بعد تعطيل مؤشر LED للطاقة). منذ ذلك الحين ، كنت أستخدم Lolin32 (وليس الإصدار Lite) حيث قمت بقياس تيار 144.5uA أثناء وجوده في وضع السكون العميق. لإجراء هذا القياس ، قمت ببساطة بتوصيل جهاز متعدد في سلسلة مع البطارية والجهاز. هذا بالتأكيد أسهل في القيام به أثناء عمل النماذج الأولية باستخدام اللوح. لقد قمت أيضًا بقياس الاستخدام الحالي عندما يكون الجهاز مستيقظًا:
- النوم العميق: 144.5uA
- مستيقظا: 45mA
- واي فاي ممكن: 150mA
بافتراض أنني أستخدم الجهاز مرتين في الأسبوع ، فقد قدرت التوقيتات التالية للوقت الذي يقضيه المستشعر في كل حالة:
- النوم العميق: 604090 ثانية (~ أسبوع واحد)
- مستيقظ: 720 ثانية (12 دقيقة)
- تمكين واي فاي: 10 ثوان
من هذه الأرقام ، يمكننا تقدير المدة التي ستستغرقها البطارية. لقد استخدمت هذه الآلة الحاسبة العملية للحصول على متوسط استهلاك طاقة يبلغ 0.2 مللي أمبير. يقدر عمر البطارية بـ 201 يومًا أو حوالي 6 أشهر! في الواقع ، لقد وجدت أن الجهاز سيتوقف عن العمل بعد حوالي شهرين ، لذلك قد يكون هناك بعض الأخطاء في القياسات أو سعة البطارية.
الخطوة 4: قياس مستوى البطارية
اعتقدت أنه سيكون من الجيد أن يخبرني الجهاز عندما تنخفض طاقة البطارية حتى أعرف متى أقوم بشحنها. لقياس هذا نحتاج إلى قياس جهد البطارية. يبلغ مدى الجهد الكهربائي للبطارية 4.3 فولت - 2.2 فولت (الحد الأدنى لجهد التشغيل لـ ESP32). لسوء الحظ ، نطاق الجهد لدبابيس ADC في ESP32 هو 0-3.3 فولت. هذا يعني أننا بحاجة إلى خفض جهد البطارية من الحد الأقصى 4.3 إلى 3.3 لتجنب التحميل الزائد على ADC. يمكن القيام بذلك باستخدام مقسم الجهد. ما عليك سوى توصيل مقاومين بالقيم المناسبة من البطارية إلى الأرض وقياس الجهد في المنتصف.
لسوء الحظ ، فإن دائرة مقسم الجهد البسيط سوف تستنزف الطاقة من البطارية حتى عندما لا يتم قياس الجهد. يمكنك التخفيف من ذلك باستخدام مقاومات عالية القيمة ولكن الجانب السلبي هو أن ADC قد لا يكون قادرًا على سحب تيار كافٍ لإجراء قياس دقيق. قررت استخدام مقاومات بقيمتي 100kΩ و 330kΩ والتي ستنخفض 4.3V إلى 3.3V وفقًا لصيغة مقسم الجهد. بالنظر إلى مقاومة إجمالية قدرها 430kΩ ، نتوقع سحبًا حاليًا قدره 11.6uA (باستخدام قانون أوم). بالنظر إلى استخدامنا الحالي للنوم العميق هو 144uA ، فهي زيادة كبيرة بشكل معقول.
نظرًا لأننا نريد قياس جهد البطارية مرة واحدة فقط قبل إرسال إشعار ، فمن المنطقي إيقاف تشغيل دائرة مقسم الجهد خلال الوقت الذي لا نقيس فيه أي شيء. لحسن الحظ ، يمكننا القيام بذلك باستخدام اثنين من الترانزستورات المتصلة بأحد مسامير GPIO. لقد استخدمت الدائرة الواردة في إجابة تبادل المكدس هذه. يمكنك رؤيتي أقوم باختبار الدائرة باستخدام Arduino ولوحة توصيل في الصورة أعلاه (لاحظ أن هناك خطأ في الدائرة وهذا هو السبب في أنني أقيس جهدًا أعلى من المتوقع).
مع وجود الدائرة المذكورة أعلاه ، أستخدم الكود الزائف التالي للحصول على قيمة النسبة المئوية للبطارية:
battery_percentage ():
# تمكين دائرة جهد البطارية gpio_set_level (BATTERY_EN_PIN، HIGH) # يتم إرجاع مستوى البطارية كعدد صحيح بين 0 و 4095 يستخدم الحاجز مقاومات 100k / 330k ohm # 4.3V -> 3.223، 2.4 -> 1.842 متوقع_max = 4.3 * 330 / (100 + 330) متوقع_ min = 2.4 * 330 / (100 + 330) battery_level = (adc_voltage-due_min) / (متوقع_max - متوقعة_دقيقة) إرجاع البطارية_المستوى * 100.0
الخطوة الخامسة: جعلها أجمل
بينما يعمل إصدار اللوح بشكل جيد ، كنت أرغب في وضعه في حزمة تكون أكثر إتقانًا وموثوقية (لا توجد أسلاك يمكن أن تنفصل أو تقصر). تمكنت من العثور على صندوق المشروع المثالي لاحتياجاتي والذي كان بالحجم المناسب ، بما في ذلك لوحة دبوس وحوامل تثبيت ومسامير لتجميعها معًا. أيضًا ، كانت رخيصة جدًا بأقل من 2 جنيه إسترليني. بعد استلام الصندوق ، كل ما كان علي فعله هو لحام المكونات على لوحة الدبوس.
ربما كان الجزء الأصعب من هذا هو تركيب جميع مكونات دائرة جهد البطارية على مساحة صغيرة بجوار Lolin32. لحسن الحظ ، مع القليل من jiggery pokery والوصلات المناسبة المصنوعة باستخدام اللحام ، تتناسب الدائرة بدقة. أيضًا ، نظرًا لأن Wemos Lolin32 لا يحتوي على دبوس لفضح طرف البطارية الموجب ، فقد اضطررت إلى لحام سلك من موصل البطارية إلى لوحة الدبوس.
أضفت أيضًا مؤشرًا ضوئيًا يومض عندما يكتشف الجهاز حركة.
الخطوة 6: اللمسات الأخيرة
لقد قمت بلصق مغناطيس نيوديميوم 4 6 مم × 4 مم بقاعدة الصندوق مما يسمح له بالالتصاق بشكل آمن بالجزء العلوي المعدني للغسالة.
يأتي صندوق المشروع بالفعل مزودًا بفتحة صغيرة لتوفير الوصول للكابلات. لحسن الحظ ، تمكنت من وضع لوحة ESP32 بالقرب من هذه الفتحة لإتاحة الوصول إلى موصل USB الصغير. بعد توسيع الفتحة بسكين حرفية ، يكون الكابل مناسبًا تمامًا للسماح بشحن البطارية بسهولة.
إذا كنت مهتمًا بأي من تفاصيل هذا المشروع ، فلا تتردد في ترك تعليق. إذا كنت ترغب في رؤية الرمز ، فيرجى التحقق منه على Github:
github.com/alexspurling/washingmachine
موصى به:
مستشعر التنفس DIY مع Arduino (مستشعر التمدد الموصل المحبوك): 7 خطوات (بالصور)
مستشعر التنفس DIY مع Arduino (مستشعر التمدد الموصل المحبوك): سيأخذ مستشعر DIY هذا شكل مستشعر التمدد الموصل المحبوك. سوف يلتف حول صدرك / معدتك ، وعندما يتوسع صدرك / معدتك وينكمش ، فإن المستشعر ، وبالتالي بيانات الإدخال التي يتم تغذيتها إلى Arduino. وبالتالي
إشعارات الغسالة: 3 خطوات
إخطارات الغسالة: لديّ غسالة رخيصة "غبية" مقابل حوالي 150 جنيهًا إسترلينيًا. كان الحجم أكبر قيد ، لذا لا تحكموا علي بقسوة. الشيء الغبي في منزلي هو أنا. غسل الملابس الداخلية البيضاء بالبلوزات الحمراء من خطاياي. الآخر ليس تذكيرًا
نظام إشعارات القهوة الأوتوماتيكي: 7 خطوات (بالصور)
نظام إشعارات القهوة الأوتوماتيكي: في هذا المشروع ، أجعل صانع القهوة في المكتب ذكيًا ، من خلال بناء نظام تنبيه للقهوة يرسل إشعارات Slack عندما يقوم شخص ما بتخمير قدر من القهوة الطازجة. يمكن تغيير الرمز لإرسال بريد إلكتروني أو رسالة نصية. تم بناء هذا المشروع على R
إشعارات الغسالة باستخدام MESH: 4 خطوات (بالصور)
إخطارات الغسالة باستخدام شبكة: عفوًا! لقد نسيت أمر الملابس في الغسالة … هل تنسى دائمًا التقاط ملابسك بعد غسلها؟ ستعمل هذه الوصفة على ترقية غسالتك لتلقي الإشعارات عبر Gmail أو IFTTT بمجرد أن تصبح ملابسك جاهزة للتصوير
كاشف الحركة مع إشعارات Blynk (WeMos D1 Mini + HC-SR04): 4 خطوات (بالصور)
كاشف الحركة مع إشعارات Blynk (WeMos D1 Mini + HC-SR04): يرجى التصويت لهذا المشروع في المسابقة اللاسلكية. شكرًا لك! التحديث رقم 2 - بعض التعديلات (الإصدار 2.2) ، يمكنك إعداد المستشعر (النطاق والاسم) في التعريف مباشرةً. أيضًا ، حدث أحيانًا أن يقرأ المستشعر قيمًا خاطئة وأرسل إشعارًا