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

إنذار مياه إنترنت الأشياء: 5 خطوات (مع صور)
إنذار مياه إنترنت الأشياء: 5 خطوات (مع صور)

فيديو: إنذار مياه إنترنت الأشياء: 5 خطوات (مع صور)

فيديو: إنذار مياه إنترنت الأشياء: 5 خطوات (مع صور)
فيديو: ذبح قطة بطريقه شرعية (لاحول ولاقوه الابالله) 2024, يوليو
Anonim
انذار المياه IoT
انذار المياه IoT

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

الخطوة 1: مبدأ العملية

مبدأ التشغيل
مبدأ التشغيل

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

مستشعر الماء عبارة عن سلكين يتم وضعهما على مسافة 1 مم تقريبًا. أحد الأسلاك متصل بـ 3.3 فولت ، والآخر متصل بدبوس استشعار في المتحكم الدقيق ، وهو متصل أيضًا بالأرض من خلال المقاوم 0.5 MOhm. عادة ، تكون المقاومة بين أسلاك المستشعر عالية جدًا (أكثر من 10 ميغا أوم) ، لذلك يتم سحب دبوس الاستشعار على طول الطريق حتى 0 فولت.ومع ذلك ، عندما يكون هناك ماء بين الأسلاك ، تنخفض المقاومة إلى أقل من 1 ميجا أوم ، ويرى دبوس الاستشعار بعض الجهد (في حالتي حوالي 1.5 فولت). عندما يكتشف ATtiny85 هذا الجهد على دبوس الاستشعار ، فإنه ينشط MOSFET لتشغيل الجرس ، ويرسل إشارة الاستيقاظ إلى وحدة ESP8266 المسؤولة عن إرسال التنبيهات (البريد الإلكتروني والإشعارات الفورية). بعد دقيقة من الأزيز ، يتم إلغاء تنشيط الإنذار ، ولا يمكن إعادة ضبطه إلا عن طريق تدوير الطاقة.

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

نظرًا لأن الوحدة النمطية ESP8266 مسؤولة عن إرسال كل من تحذيرات البطارية المنخفضة وكذلك تنبيهات الفيضان ، فإنها تتطلب إشارة تحكم من ATiny85. نظرًا للعدد المحدود من الدبابيس المتاحة ، يتم إنشاء إشارة التحكم هذه بواسطة نفس الدبوس المسؤول عن مؤشر LED للبطارية. أثناء التشغيل العادي (يكون الإنذار مسلحًا والبطاريات مشحونة) ، يومض مؤشر LED بشكل متقطع. عند اكتشاف حالة البطارية المنخفضة ، يضيء مؤشر LED لتوفير إشارة عالية إلى دبوس RX بوحدة ESP. إذا تم الكشف عن وجود ماء ، فسيتم إيقاف تشغيل مصباح LED الخاص بالبطارية بينما يكون ESP8266 مستيقظًا..

الخطوة 2: التصميم والتجميع

التصميم والتجميع
التصميم والتجميع
التصميم والتجميع
التصميم والتجميع
التصميم والتجميع
التصميم والتجميع

لقد صممت الدائرة ليتم بناؤها على لوح حماية مزدوج الجوانب مقاس 4x6 سم باستخدام أجزاء 0805 SMD في الغالب. تستند المخططات المقدمة إلى هذا التصميم ، ولكن يمكن تكييفها بسهولة مع المكونات من خلال الفتحة (نصيحة: لتقليل المساحة ، يتم لحام المقاومات من خلال الفتحة عموديًا).

الأجزاء التالية مطلوبة:

- المقاومات: 330 × 1 ؛ 470 × 1 ؛ 680 × 1 ؛ 1 كيلو أوم × 1 ؛ 10 كيلو أوم × 3 ؛ 470 كيلو أوم × 3 ؛ - مكثف سيراميك واحد 10 درجات فهرنهايت- MOSFET ذو مستوى منطقي واحد (على سبيل المثال RFP30N06LE أو AO3400) - مؤشر LED أحمر وأصفر واحد (أو ألوان أخرى إذا أردت). - موصلات طرفي برغي ثنائي الأسلاك × 3 (ليست كذلك) ضرورية للغاية ، لكنها تجعل من السهل الاتصال وفصل المحيط أثناء الاختبار) - جرس بيزو عالي الصوت مناسب لـ 3.3 فولت - متحكم ATtiny85 (إصدار PDIP) - مقبس PDIP ذي 8 سنون لوحدة التحكم الدقيقة- وحدة ESP-01 (يمكن استبداله بوحدة أخرى قائمة على ESP8266 ، ولكن سيكون هناك الكثير من التغييرات في التخطيط في هذه الحالة) - محول تعزيز DC-DC 3.3 فولت قادر على توصيل تيارات 200 مللي أمبير (انفجار 500 مللي أمبير) عند 2.2 فولت إدخال. (أوصي https://www.canton-electronics.com/power-converter… بسبب تياره الهادئ للغاية المنخفض) - رأس أنثى 3 سنون - رأسان أنثى 4 سنون أو رأس 2x4 - 22 أسلاك صلبة AWG بالنسبة لمستشعر المياه - 22 AWG سلك مجدول (أو نوع آخر من الأسلاك الرقيقة المكشوفة لإنشاء آثار)

أوصي بقيم المقاوم المذكورة أعلاه ، ولكن يمكنك استبدال معظمها بقيم مماثلة. اعتمادًا على نوع مصابيح LED التي تريد استخدامها ، قد تحتاج إلى ضبط قيم المقاوم الحالي للحصول على السطوع المطلوب. يمكن أن يكون MOSFET إما من خلال ثقب أو SMT (SOT23). يتأثر اتجاه المقاوم 330 أوم فقط بنوع MOSFET. يوصى باستخدام فتيل PTC (على سبيل المثال مصنّف لـ 1 A) إذا كنت تخطط لاستخدام هذه الدائرة مع بطاريات NiMH. ومع ذلك ، فهي ليست ضرورية مع البطاريات القلوية. نصيحة: يمكن شراء الأجزاء المطلوبة لهذا الإنذار بثمن بخس من ebay أو aliexpress.

بالإضافة إلى ذلك ، سوف تحتاج إلى لوح توصيل ، والعديد من المقاومات التي تصل إلى 10 كيلو من خلال الفتحة ، وأسلاك توصيل متعددة من الذكور والإناث والذكور ("dupont") ومحول USB-UART من أجل برمجة وحدة ESP-01.

يمكن صنع مستشعر الماء بعدة طرق ، ولكن أبسطها هو سلكان 22 AWG بنهايات مكشوفة (بطول 1 سم) متباعدة بحوالي 1 ملم. الهدف هو الحصول على مقاومة أقل من 5 MΩ بين ملامسات المستشعر عند وجود الماء.

تم تصميم الدائرة لتحقيق أقصى قدر من الاقتصاد في البطارية. إنه يرسم فقط 40-60 µA في نظام المراقبة (مع إزالة مؤشر LED للطاقة من وحدة ESP-01). بمجرد تشغيل الإنذار ، ستسحب الدائرة 300-500 مللي أمبير (عند إدخال 2.4 فولت) لمدة ثانية أو أقل ، وبعد ذلك سينخفض التيار إلى أقل من 180 مللي أمبير. بمجرد انتهاء وحدة ESP من إرسال الإشعارات ، سينخفض الاستهلاك الحالي إلى أقل من 70 مللي أمبير حتى يتم إيقاف تشغيل الجرس. ثم ينزع جهاز الإنذار سلاحه ، وسيكون الاستهلاك الحالي أقل من 30 A. وبالتالي ستتمكن مجموعة من بطاريات AA من تشغيل الدائرة لعدة أشهر (على الأرجح أكثر من عام). إذا كنت تستخدم محول دفعة مختلفًا ، على سبيل المثال مع تيار هادئ يبلغ 500 A ، فستحتاج البطاريات إلى التغيير كثيرًا.

نصائح التجميع:

استخدم علامة دائمة لتسمية جميع الآثار والمكونات الموجودة على اللوحة الأولية لتسهيل اللحام. أوصي بالمتابعة بالترتيب التالي:

- مصابيح SMT للجانب العلوي وجسور سلكية معزولة

- MOSFET في الجانب العلوي (ملاحظة: إذا كان لديك SOT-23 MOSFET ، فضعه قطريًا كما في الصورة. إذا كنت تستخدم MOSFET عبر الفتحة ، فضعه أفقيًا مع دبوس البوابة في الموضع I3.)

- الجانب العلوي من خلال أجزاء الفتحة (ملاحظة: الجرس غير ملحوم ولا يلزم حتى تركيبه على PCB)

- أجزاء SMT الجانبية العكسية وآثارها (مثل الخيوط الفردية من سلك AWG22)

الخطوة 3: البرامج الثابتة

كود C لـ ATtiny85

يحتوي Main.c على الكود الذي يجب تجميعه وتحميله إلى وحدة التحكم الدقيقة. إذا كنت ستستخدم لوحة Arduino كمبرمج ، فيمكنك العثور على مخطط الأسلاك في هذا البرنامج التعليمي. تحتاج إلى اتباع الأقسام التالية فقط (تجاهل الباقي):

- تكوين Arduino Uno كمزود خدمة إنترنت (برمجة داخل النظام)

- توصيل ATtiny85 مع Arduino Uno.

لتجميع وتحميل البرنامج الثابت ، ستحتاج إما إلى CrossPack (لنظام التشغيل Mac OS) أو سلسلة أدوات AVR (لنظام التشغيل Windows). يجب تنفيذ الأمر التالي لتجميع الكود:

avr-gcc -Os -mmcu = attiny85 -c main.c ؛ avr-gcc -mmcu = attiny85 -o main.elf main.o ؛ avr-objcopy -j.text -j.data -O ihex main.elf main.hex

لتحميل البرنامج الثابت ، قم بتشغيل ما يلي:

avrdude -c arduino -p attiny85 -P /dev/cu.usbmodem1411 -b 19200 -e -U فلاش: w: main.hex

بدلاً من "/dev/cu.usbmodem1411" ، ستحتاج على الأرجح إلى إدخال المنفذ التسلسلي الذي يتصل به Arduino (يمكنك العثور عليه في Arduino IDE: Tools Port).

يحتوي الرمز على وظائف متعددة. deep_sleep () يجعل المتحكم الدقيق يدخل في حالة طاقة منخفضة جدًا لمدة 8 ثوانٍ تقريبًا. read_volt () يستخدم لقياس جهد البطارية وجهاز الاستشعار. يتم قياس جهد البطارية مقابل مرجع الجهد الداخلي (2.56 فولت زائد أو ناقص بضعة بالمائة) بينما يتم قياس جهد المستشعر مقابل Vcc = 3.3 فولت. تتم مقارنة القراءات مقابل BATT_THRESHOLD و SENSOR_THRESHOLD المعرّفة بـ 932 و 102 على التوالي ، والتي تتوافق مع ~ 2.3 و 0.3 فولت قد تتمكن من تقليل قيمة حد البطارية لتحسين عمر البطارية ، ولكن لا يوصى بذلك (راجع اعتبارات البطارية للحصول على معلومات مفصلة).

activ_alarm () يخطر وحدة ESP بكشف المياه ويصدر صوت الجرس. يخطر low_batt_notification () وحدة ESP بأن البطارية منخفضة ويصدر صوت صفارة أيضًا. إذا كنت لا ترغب في أن تستيقظ في منتصف الليل لتغيير البطارية ، فقم بإزالة "| 1 <" في low_batt_notification ().

رسم اردوينو لـ ESP-01

اخترت برمجة وحدة ESP باستخدام Arduino HAL (اتبع الرابط للحصول على إرشادات الإعداد). بالإضافة إلى ذلك ، استخدمت المكتبتين التاليتين:

ESP8266 إرسال بريد إلكتروني عن طريق Górász Péter

ESP8266 Pushover بواسطة فريق Arduino Hannover

تتصل المكتبة الأولى بخادم SMTP وترسل تنبيهًا إلى عنوان بريدك الإلكتروني. ما عليك سوى إنشاء حساب gmail لـ ESP الخاص بك ، وإضافة بيانات الاعتماد إلى الرمز. ترسل المكتبة الثانية إشعارات فورية عبر خدمة Pushover (الإخطارات مجانية ، ولكن عليك أن تدفع مرة واحدة لتثبيت التطبيق على هاتفك / جهازك اللوحي). قم بتنزيل كلتا المكتبتين. ضع محتويات مكتبة Send Email في مجلد الرسم الخاص بك (سيقوم arduino بإنشائه عندما تفتح رسم اردوينو لأول مرة). قم بتثبيت مكتبة Pushover عبر IDE (Sketch -> Include Library -> Add. ZIP library).

لبرمجة وحدة ESP-01 ، يمكنك اتباع البرنامج التعليمي التالي: https://www.allaboutcircuits.com/projects/breadbo … لا داعي للقلق من إعادة لحام صف واحد من المسامير كما هو موضح في الدليل - فقط استخدم دوبونت من الإناث والذكور أسلاك لتوصيل دبابيس الوحدة بلوحة التجارب. لا تنسَ أن محول التعزيز ومحول USB-UART يجب أن يتشاركا الأرض (ملاحظة: قد تتمكن من استخدام خرج 3.3 فولت لمحول USB-UART بدلاً من محول التعزيز ، ولكن على الأرجح لن يحدث ذلك. تكون قادرة على إخراج تيار كافٍ).

الخطوة 4: اعتبارات البطارية

تم تكوين رمز البرنامج الثابت المقدم مسبقًا لإرسال تحذير انخفاض البطارية وإغلاقه عند ~ 2.3 فولت. تعتمد هذه العتبة على افتراض استخدام بطاريتين NiMH في السلسلة. لا يوصى بتفريغ أي خلية نيمه فردية أقل من 1 فولت. وبافتراض أن كلتا الخليتين تتمتعان بقدرة متساوية وخصائص تفريغ ، فسيتم قطع كل منهما عند 1.15 فولت تقريبًا - ضمن النطاق الآمن. ومع ذلك ، فإن خلايا NiMH التي تم استخدامها للعديد من دورات التفريغ تميل إلى الاختلاف في السعة. يمكن تحمل ما يصل إلى 30٪ من الاختلاف في السعة لأنه لا يزال يؤدي إلى أدنى نقطة قطع لخلية الجهد حوالي 1 فولت.

في حين أنه من الممكن تقليل الحد الأدنى للبطارية في البرنامج الثابت ، فإن القيام بذلك سيؤدي إلى إزالة هامش الأمان ، وقد يؤدي إلى زيادة تفريغ البطارية وتلفها بينما لا يُتوقع سوى زيادة هامشية في عمر البطارية (خلية NiMH هي> 85٪ تم تفريغها عند 1.15 فولت).

هناك عامل آخر يجب أخذه في الاعتبار وهو قدرة محول التعزيز على توفير 3.0 فولت على الأقل (2.5 فولت وفقًا للأدلة القصصية) عند ذروة تيار 300-500 مللي أمبير على البطاريات المنخفضة. تسبب المقاومة الداخلية المنخفضة لبطاريات NiMH انخفاضًا ضئيلًا قدره 0.1 فولت فقط في ذروة التيارات ، لذا فإن زوجًا من خلايا NiMH التي يتم تفريغها حتى 2.3 فولت (دائرة مفتوحة) سيكون قادرًا على توفير 2.2 فولت على الأقل لمحول التعزيز. ومع ذلك ، فهي أكثر تعقيدًا مع البطاريات القلوية. مع وجود زوج من بطاريات AA يجلس عند 2.2-2.3 فولت (دائرة مفتوحة) ، من المتوقع حدوث انخفاض في الجهد بمقدار 0.2-0.4 فولت في التيارات القصوى. على الرغم من أنني تحققت من أن الدائرة تعمل مع محول التعزيز الموصى به مع أقل من 1.8 فولت يتم توفيره في التيارات القصوى ، فمن المحتمل أن يتسبب هذا في انخفاض جهد الخرج مؤقتًا إلى أقل من القيمة التي اقترحها Espressiff. وبالتالي ، فإن عتبة القطع البالغة 2.3 فولت تترك هامش أمان ضئيلًا للبطاريات القلوية (ضع في اعتبارك أن قياس الجهد الذي يتم إجراؤه بواسطة وحدة التحكم الدقيقة يكون دقيقًا فقط ضمن نسبة قليلة أو قليلة). لضمان عدم حدوث خلل في وحدة ESP عندما تكون البطاريات القلوية منخفضة ، أوصي بزيادة جهد القطع إلى 2.4 فولت (# حدد BATT_THRESHOLD 973). عند 1.2 فولت (دائرة مفتوحة) ، يتم تفريغ الخلية القلوية بحوالي 70٪ وهو أقل بنسبة 5-10 نقاط مئوية فقط من درجة التفريغ عند 1.15 فولت لكل خلية.

كل من NiMH والخلايا القلوية لها مزايا وعيوب لهذا التطبيق. تعد البطاريات القلوية أكثر أمانًا (لا تشتعل فيها النيران إذا تم تقصيرها) ، ولديها معدل تفريغ ذاتي أقل بكثير. ومع ذلك ، تضمن بطاريات NiMH التشغيل الموثوق لـ ESP8266 عند نقطة قطع أقل بفضل مقاومتها الداخلية المنخفضة. ولكن في النهاية ، يمكن استخدام أي من النوعين مع بعض الاحتياطات ، لذا فهي مجرد مسألة تفضيل شخصي.

الخطوة 5: إخلاء المسؤولية القانونية

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

موصى به: