جدول المحتويات:
فيديو: IOToilet: 7 خطوات (مع صور)
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
IOToilet هو أول حامل ورق تواليت ذكي ، يتتبع استخدامنا اليومي لورق التواليت ويسمح بتراكم الإحصائيات التي تظهر هذه المقاييس. ولماذا يجب أن أهتم باستخدامي اليومي لورق التواليت ، قد تسأل؟ حسنًا ، كما اتضح ، فإن صحة البطن ، وخاصة دورة الهضم ، لها علاقة كبيرة بصحتنا الجسدية وصحتنا العقلية. على سبيل المثال ، إليك حديث TED لطيف (بالمناسبة واحد من عدد قليل جدًا) يشرح هذا الموضوع بالتفصيل:
تم تكليفي في البداية ببناء 10 وحدات من هذا الجهاز لوكالة العلامات التجارية ، والتي يمكنك رؤية مقطعها أعلاه (الموقع الثاني) ، لحملة تسويقية مقصودة لشركة كبيرة. في البداية ، رفضت الفكرة باعتبارها واحدة قادمة من عقل آخر مفرط في الإبداع يحاول يائسًا الفوز بحساب عميل ، لكنها نمت بشكل تدريجي ، حتى أدركت قيمة المعلومات التي تم جمعها من خلال هذا الجهاز.
اعتمد التصميم على قطعة موجودة من الأجهزة حصل عليها عميلي من EBay ، وهو جهاز تسجيل صوتي مُغلف في حامل مناديل الحمام. كان لديه عامل الشكل الصحيح وجميع الأجهزة الطرفية اللازمة المضمنة بالفعل ، مثل مكبر الصوت ، ومستشعر الحركة لتشغيل الجهاز ، والينابيع لحمل ورق التواليت نفسه ، وحجرة البطارية ، ومفتاح التشغيل والإيقاف ، لذلك اخترت بكل سرور باستخدام هذا جاهز الصنع بدلاً من النمذجة والطباعة بنفسي.
الخطوة 1: الأدوات والمواد
المواد المستخدمة:
حامل ورق التواليت
Wemos D1 Mini
رقاقة ATTiny85 ، تغليف DIP
2 × 2n2222 الترانزستور
220 أوم المقاوم
2 * 1 كيلو أوم المقاوم
مقياس التسارع MPU6050
اختياري ، في حالة عدم استخدام PCB الخاص بي:
درع Wemos للنماذج الأولية
سلك ، لحام ، إلخ.
الأدوات المستخدمة:
دريميل مع قرص تقطيع
ATTiny dev board (لتحميل البرامج الثابتة بسهولة)
مبرمج USB صغير ISP
مفك براغي مثلث ، لقد استخدمت هذه المجموعة:
الخطوة 2: تفكيك الوحدة الأصلية
بعد الحصول على مغزل ورق التواليت الأصلي ، فتحت العلبة باستخدام مفك براغي مثلث وأزلت PCB الأصلي ، وفصلت السماعة وتركت أكبر قدر ممكن من الأسلاك متصلة بها.
ثم قمت بعد ذلك بلحام مؤشر LED ومستشعر الإمالة من ثنائي الفينيل متعدد الكلور الأصلي ، ليتم تضمينه لاحقًا في الدائرة الجديدة. انتبه إلى عدم ارتفاع درجة حرارة مفتاح الإمالة ، فقد يؤدي ذلك إلى إتلافه. كان لون خاص بي رماديًا ، ولكن نظرًا لأنني لم ألتقط صورة جيدة له عند إزالته من الجهاز الأصلي ، فقد اضطررت إلى استخدام صورة من الشبكة (انظر أعلاه) ، حيث كانت خضراء. مجرد تفصيل بسيط.
بعد فتح العلبة وإزالة الإلكترونيات ، استخدمت أيضًا جهاز Dremel لإزالة البلاستيك الزائد الذي تم استخدامه لتثبيت PCB الأصلي في مكانه ، وهذه الأرفف البلاستيكية الصغيرة وواحد من الأنابيب اللولبية الأربعة. يمكنك تأجيل هذا إلى مرحلة التجميع إذا أردت ، ولكن على أي حال ، ستكون هناك حاجة إلى بعض التشذيب البلاستيكي.
الخطوة 3: شرح الدوائر
إذن ، إليك القليل عن المنطق وراء الدائرة:
لكي تدوم البطاريات لفترة طويلة ، كان علي وضع كل من مقياس التسارع MPU6050 والمعالج ESP8266 في Wemos D1 Mini للنوم بين عمليات التنشيط. تم تنفيذ الأول بسهولة باستخدام ترانزستور قام بتشغيل وإيقاف تشغيل MPU6050.
ملاحظة: اعتقدت في البداية أنه يمكنني برمجته لإرسال إشارة مقاطعة ستوقظ المعالج الرئيسي. للأسف ، لم أتمكن من العثور على طريقة لتحقيق ذلك ، فقد كان تكوين السجلات المناسبة لـ MPU6050 مهمة صعبة لا زلت لا أعرف ما إذا كان ذلك ممكنًا على الإطلاق …
كان خياري الثاني هو استخدام مفتاح الإمالة المزود مع الوحدة الأصلية لتنبيه ESP. قمت أولاً بربطه مباشرة بدبوس Wemos RESET كما هو موضح في الصور أعلاه ، باستخدام ترانزستور لتنشيط / إلغاء تنشيط الآلية. عندما كانت قاعدة الترانزستور عالية ، يمكن أن يمر GND عبر مفتاح الإمالة ويتسبب في توصيله مؤقتًا بدبوس RESET ، مما يتسبب في إعادة تعيين MCU (هذه هي الطريقة الوحيدة لإيقاظ ESP من النوم العميق ، على ما يبدو). ثم قمت بعد ذلك بتوصيل D0 بقاعدة الترانزستور ، باتباع فرضية أن هذه الساق عالية طالما أن MCU نائمة ، وبمجرد أن تستيقظ ، تعود D0 إلى LOW ، مما يؤدي إلى تعطيل آلية إعادة التعيين. بعد كل شيء ، لم أكن بحاجة إلى إعادة تعيين متكررة ، فقط لأول مرة عندما بدأ حامل ورق التواليت في التحرك.
ومع ذلك ، ما اكتشفته هو أن الدبوس D0 يستغرق وقتًا طويلاً بعد إعادة تعيين MCU للعودة إلى LOW ، حوالي 200 مللي ثانية. هذا يعني أنه إذا قمت بتدوير حامل ورق التواليت بسرعة كافية أثناء نوم MCU ، فستحصل على عدة عمليات إعادة تعيين ، بدلاً من عد الجولات ، كما ينبغي.
لذلك ، حاولت حل هذا الوضع الجديد ببعض المكونات المنفصلة (المكثفات ، الترانزستورات وما إلى ذلك) لكنني تمكنت فقط من الحصول على حل جزئي للمشكلة.
انتهى بي الأمر بإضافة وحدة MCU أخرى ، ATTiny85 ، والتي ستستيقظ من النوم بواسطة مفتاح الإمالة ، ثم استيقظ ESP8266 ، وانتظر بعض الوقت قبل العودة إلى النوم. أعلم أن هذا ربما ليس الحل الأكثر اقتصادا للمشكلة ، لكن كان لدي موعد نهائي …
يمكنك رؤية الحل التفصيلي في المخطط الذي قمت بتضمينه. يرجى ملاحظة أنه تم استبدال مقاومات 10K بـ 1K لأن المقاومات 10k كانت عالية جدًا بحيث لا يمكن فتح الترانزستورات بالكامل.
الخطوة 4: تحضير ATTiny85
إذا لم تقم أبدًا ببرمجة ATTiny85 ، فلا تخف! يمكن أن يساعدك استخدام Arduino IDE المحبوب على طول الطريق. ابدأ بهذه الإرشادات حول كيفية تكوين Arduino IDE:
github.com/SpenceKonde/ATTinyCore/blob/mas…
بعد ذلك ، قم بتثبيت برامج تشغيل USBTinyISP من هنا:
learn.adafruit.com/usbtinyisp/drivers
الآن ، قم بتحميل رمز الاختبار المرفق: WakeOnExternalInterruptTest.ino
والاتصال (انظر الرسم التخطيطي ATTiny85 Pinout):
1. زر اللباقة بين دبوس 3 والأرض
2. الصمام والمقاوم 220 أوم على التوالي ، بين الدبوس 2 والأرض
التالي،
حدد USBTinyISP كمبرمج (ضمن أدوات -> مبرمج) وقم بتحميل رسم الاختبار على اللوحة.
يجب أن يومض مؤشر LED لمدة 5 مرات ، ثم يجب أن تنام الشريحة. سيؤدي الضغط على الزر إلى إيقاظه وتكرار ذلك التسلسل.
حصلت عليه للعمل؟ رائعة! قم بتحميل الرسم النهائي "Awakener" إلى ATTiny ، لاستخدامه في الدائرة النهائية.
الخطوة 5: بناء Wemos Shield
لذلك ، لإنشاء الدرع لديك 3 خيارات يمكنك الاختيار من بينها:
1. استخدم درعًا أوليًا قياسيًا لـ Wemos وقم بلحام الدوائر عليه.
2. تصنيع ثنائي الفينيل متعدد الكلور ، بناءً على ملفات EAGLE المرفقة.
3. اسألني عن ثنائي الفينيل متعدد الكلور يمكنني إرساله لك بالبريد العادي (لدي القليل من الكذب ، التكلفة قريبة من لا شيء).
على أي حال ، أوصي ببناء الدائرة على اللوح قبل الالتزام بـ PCB!
إذا كنت تستخدم خيارات PCB ، فتأكد من توصيل السلك الأسود كما في الصور ، على الجانب الأمامي أو الخلفي من اللوحة (كان الأخير أفضل بالنسبة لي). يربط هذا السلك GND من Wemos إلى ATTiny85 وبدون ذلك ، لن يحدث الاستيقاظ.
ما عليك سوى إلقاء نظرة فاحصة على الصور وقراءة التعليقات التوضيحية التي أضفتها ، يجب أن يكون هذا كافيًا.
الخطوة 6: تحضير Wemos
إذا لم تستخدم Arduino IDE مطلقًا لبرمجة لوحة Wemos ، فابدأ بتثبيت مدير اللوحة واختيار اللوحة في قائمة Tools -> Board ، كما هو موضح هنا:
github.com/esp8266/Arduino
ابدأ بتحميل الرسم التخطيطي الوامض على لوحك ، وتأكد من تحميل الكود بشكل صحيح.
الخطوة 7: وضع كل ذلك معًا
قم بتثبيت الدرع على Wemos. يمكنك لحامها ، لكني أوصي باستخدام رؤوس أنثوية ملحومة في Wemos والتي ستسمح بالاتصال المؤقت بين Wemos والدرع ، في حالة حدوث أي مشكلة. فقط ضع في اعتبارك أن الرأس الأنثوي سيتعين عليه النزول في المرحلة الأخيرة من التجميع حتى تتناسب الوحدة مع الغلاف البلاستيكي. أيضًا ، لجعل الأمور أكثر تعقيدًا ، هناك فرصة جيدة أنه عند توصيل الدرع بـ Wemos ، سيتم تعطيل تحميل الكود. لقد واجهت هذه الظاهرة بطريقة غير متسقة ، ولم يكن لدي وقت للبحث فيها.
كلمة النصيحة: خطط للمستقبل.
الآن ، الاختبار!
بمجرد التثبيت ، ابدأ بتحميل رسم اختبار BlinkAccelerometer إلى Wemos ، وتأكد من تشغيل وإيقاف تشغيل MPU6050 LED. إذا لم يكن الأمر كذلك ، فتحقق من توصيلات الترانزستور المسؤولة عن تشغيل MPU6050. يجب توصيل قاعدته بالدبوس D5 الخاص بـ Wemos ، ويجب توصيل المجمع بـ GND الخاص بمقياس التسارع ويجب توصيل الباعث بـ GND المشترك.
بعد ذلك ، قم بتحميل رسم TurnCountTest1 إلى لوحة Wemos وافتح Serial Monitor. يجب أن ترى بيانات قادمة من مقياس التسارع معروضًا على الشاشة. في حالة عدم العمل ، تحقق من الساعة وأسلاك البيانات: يجب توصيل CLK بـ D1 ويجب توصيل البيانات بـ D2.
الآن ، قم بلحام مفتاح الإمالة بالفتحات المحددة في اللوحة (انظر التعليقات التوضيحية) ، مع التأكد من أنه عمودي على محور الدوران بحيث يغلق المغزل ويفتح الاتصال بين خيوطه.
بعد ذلك ، قم بتوصيل إدخال Battery 3V بـ Wemos VCC ، ومحطة الطرح الخاصة به بـ Wemos GND. تأكد من أن تشغيل المفتاح يؤدي إلى تشغيل الوحدة. أخيرًا ، قم بتوصيل السماعة بـ GND وقم بتوصيل D4 من Wemos.
قم بتحميل الكود النهائي إلى Wemos - رسم تخطيطي يسمى SmartWipe. افتح شاشة تسلسلية وتأكد من أن الوحدة تدخل في وضع السكون بعد 3 دقائق واستيقاظها عن طريق تحريك مفتاح الإمالة (يجب أن تظهر الرسائل المقابلة على الشاشة).
إذا كنت ترغب في تقليل وقت يقظة Wemos (بشكل أساسي لأغراض الاختبار) ، قم بتقليل قيمة WIFI_CONFIGURATION_IDLE_TIMEOUT المحددة في params.h وقم بتحميل المخطط إلى اللوحة. تأكد من أنه بعد أن يذهب Wemos إلى نوم عميق ، فإن تحريك مفتاح الإمالة يؤدي إلى استيقاظ ATTiny (المشار إليه بواسطة مؤشر LED) ، والذي بدوره يستيقظ Wemos.
قم بتغيير قيمة المعلمة مرة أخرى إلى 180000L (3 دقائق ، بالمللي ثانية) وتأكد من أن Wemos يطلق نقطة فعالة تسمى IOToilet_XXXXXXXX حيث سيتم استرداد XXXXXXX من عنوان MAC الخاص بالرقاقة. اتصل بشبكة Wifi هذه باستخدام هاتف ذكي ، ويجب أن يتم توجيهك إلى نموذج التسجيل (آلية تسمى Captive Portal). املأ التفاصيل ، من المهم بشكل خاص أن يكون SSID وكلمة المرور لشبكة wifi المحلية الخاصة بك ، وقم بإرسال النموذج. يجب أن تحاول الوحدة بعد ذلك الاتصال بالشبكة باستخدام بيانات الاعتماد المرفقة ، وإذا نجحت ، فقم بتشغيل 3 أصوات تصاعدية على السماعة. إذا كانت هناك مشكلة في الاتصال بشبكة Wifi ، فسيتم تشغيل 3 أصوات تنازلية. بعد ذلك ، يجب أن يذهب Wemos إلى نوم عميق ، حتى يستيقظ بالحركة.
أخيرًا: اختبار النظام من النهاية إلى النهاية.
قم بلف حامل ورق التواليت على طول محور الدوران الخاص به بضع لفات ، ثم ضعه على سطح ثابت (للإشارة إلى انتهاء اللفة وتشغيل تحميل البيانات). انتظر حوالي 10 ثوانٍ حتى يتم إرسال عدد القوائم إلى السحابة ، ثم انتقل إلى https://smartwipe-iot.appspot.com/ وانقر فوق Query. يجب أن ترى تفاصيل التسجيل الخاصة بك وعدد قوائم الاستخدام الأخيرة في السحابة! تأكد من كتابة uuid الخاص بك ، وهو المعرف الفريد الخاص بك في النظام ، والمستخرج من عنوان MAC الخاص بـ Wemos.
إذا كنت ترغب في استخراج الإحصائيات الخاصة بك فقط بتنسيق JSON ، فاستخدم عنوان URL مشابهًا لهذا:
smartwipe-iot.appspot.com/api؟action=query&uuid=1234567890
فقط استبدل uuid بك.
لقد قمت بتضمين جميع مصادر تطبيق الويب ، الذي يتم استضافته على محرك تطبيقات Google بحيث يمكن للمستخدمين الذين يرغبون في الحصول على مزيد من الخصوصية للبيانات ، نشرها على مستخدم Google الخاص بهم ، وإضافة المصادقة وما إلى ذلك.
عندما يعمل كل شيء ، ضع الأجهزة الإلكترونية في الغلاف البلاستيكي ، وقم بقص البلاستيك باستخدام دريميل حسب الحاجة. يجب أن تتناسب القطعة بأكملها بشكل جيد مع الهيكل.
مشكلة؟ اكتب لي!
المتحدة نحن POOP!