
مقدمة
إذا كنت قد قرأت مقالتي السابقة ( Running line on Arduino ) ، فربما تعرف بالفعل أن لدينا الفرصة للقيام بمشاريع دورات الأجهزة في جامعتنا. وقررت ، مستوحاة من عملي السابق ، أن أحاول مرة أخرى أن أفعل شيئًا بيدي. الآن فقط كان يجب أن يكون الموضوع أكثر جدية. بالمناسبة ، بدأت أفكر في ما يجب القيام به خلال عطلة الشتاء ، أي قبل الفصل الدراسي. أردت أن أفعل شيئًا مثيرًا للاهتمام ومفيدًا في نفس الوقت.ابحث عن فكرة
ذات مرة ، في زوج حول أساسيات حماية المعلومات ، كان لدينا موضوع يتعلق بالملكية الفكرية وبراءات الاختراع. أعطانا المعلم مهمة إصدار براءة اختراع لأي جهاز وفقًا لجميع المتطلبات واستشهد بغلاية wifi كمثال.قال - ونسي. ونسي الجميع ، ولكن بقي هذا الموضوع في رأسي. وعندما حان الوقت للتفكير في ما يجب القيام به كدورة دراسية في الفصل الدراسي التالي ، تذكرت هذا إبريق الشاي.أول شيء قررت رؤيته هو ما تم فعله بالفعل. وما أدهشني عندما رأيت أنه لا يوجد سوى ثلاثة نماذج من الدمى مع دعم التحكم في WiFi للبيع ، ثم ينتمي اثنان منها إلى نفس الشركة. كانت هذه Smarter iKettle 1.0 و 2.0 و Russian Polaris PWK 1792CGL.
من المثير للاهتمام أن كل منزل تقريبًا لديه غلايات كهربائية عادية ، وهناك عدد قليل جدًا منها ذكي. بمقارنة الميزات التي تقدمها iKettle و Polaris ، قمت بعمل قائمة بأكثرها ضرورة. إليك ما حدث:- تشغيل / إيقاف من الهاتف الذكي ؛
- ضبط أي درجة حرارة لتسخين المياه ؛
- القدرة على معرفة درجة الحرارة الحالية ؛
- تتبع الحجم الحالي للمياه في الغلاية ؛
- التحذير والحماية من التبديل مع كمية صغيرة من الماء ؛
- تحديد وقت التنبيه التلقائي ؛
- إشعار الاستعداد ؛
يبدو أنه يبدو حقيقيا ، لقد حان الوقت لبدء العمل.ابحث عن المكونات المطلوبة
نظرًا لأنه لم يكن من الممكن صنع غلاية جديدة تمامًا ، فقد تقرر تعديل غلاية كهربائية عادية جاهزة. فقط في المنزل كانت غلاية يتيمة مع مفتاح مكسور.أعتقد أن الأساس موجود بالفعل ،الآن كان علي أن أبدأ في البحث عن مكونات الأجهزة. نظرًا لأن هناك القليل من الخبرة في العمل مع Arduino ، فقد قررت تنفيذ كل شيء عليه. علاوة على ذلك ، اردوين نفسها والوحدات لأنها غير مكلفة.منذ أن اضطررت إلى إدخال الجزء الكامل من التحكم في الغلاية داخل الغلاية ، وقع الاختيار على Arduino Nano. إنه صغير ولديه واجهة لتوصيل كبل ، على عكس Pro Mini ، والذي يجب وميضه عبر UART.
المكون الرئيسي لغلاية wifi هو بالطبع وحدة wifi. البحث في الإنترنت عن شيء ميسور التكلفة والعديد من البرامج التعليمية ، واجهت ESP8266. وبالتحديد ، في الإصدار 01. رأيت أنه غير مكلف (حوالي 2 دولار) وكان هناك الكثير من التعليمات للتوصيل. توقفت عليه. بالنسبة للوحدة النمطية نفسها ، العبارة هنا جيدة: رخيصة ومبهجة. لكن المزيد عن ذلك لاحقًا.
للتحكم في درجة الحرارة ، كنا بحاجة إلى نوع من أجهزة استشعار درجة الحرارة المقاومة للماء. لقد وجدت الثرمستور NTC المقاوم للماء على aliexpress ، والذي يمكن أن يتحمل درجات حرارة أكثر من 100 درجة. لقد وجدت أيضًا مثالًا للعمل معه ، لذا قررت هنا بسرعة.
كان من الضروري تحديد كيفية تشغيل الغلاية في وقت معين ، بالطبع ، يمكنك جعل ساعة البرنامج على Arduino وتشغيل الغلاية إذا تزامن الوقت ، ولكن هذا سيعمل بشكل غير مستقر ، وإذا تم إعادة تعيين البرنامج عن طريق الخطأ ، فإن كل شيء سيحدث خطأ. لذلك ، جاءت ساعة الإنقاذ في الوقت الحقيقي هنا. وهي DS1307. لديهم طاقة مستقلة (من بطارية 3 فولت) ، وكان هناك أيضًا شريحة ذاكرة EEPROM 32 كيلو بت على الوحدة النمطية التي كنت أتوقف عندها ، والتي اعتدت توفيرها في الوقت المحدد.
أوه نعم ، نظرًا لأن الغلاية يجب أن يتم تشغيلها برمجيًا ، فإنها تحتاج أيضًا إلى ترحيل قناة واحدة.
أما بالنسبة لمستشعر مستوى السائل ، فيجب القيام به يدويًا. التفاصيل أدناه.من الباقي ، لا تزال هناك حاجة إلى العديد من المقاومات من مختلف الطوائف ، ولوح اختبار للاختبارات ، ولوحة دوائر للتثبيت الفعلي ، والأسلاك ، ومكواة اللحام مع التدفق واللحام ، ونصيب الأسد من الصبر.بداية التطوير
نظرًا لأن المشروع عبارة عن غلاية wifi ، فإن أول شيء أريده وأحتاجه للتعامل مع وحدة wifi. بمجرد وصول الطرد ، قمت بتفريغها على الفور وبدأت في الاتصال.العثور على مجموعة من الأمثلة على الإنترنت. كل شيء كما ينبغي ، 3.3 فولت منظم للجهد ، مقسمات جهد لـ RX و TX. جمعت كل شيء بالقدوة ، وربطته - لم تطير! تم عرض مجموعة من النصوص في شاشة منفذ COM ، حيث اتضح أن الوحدة تتم إعادة تعيينها باستمرار. لا يستجيب لأوامر AT المرسلة. يعمل كاتب المقال ، وأنا لا.ما الأمر؟ حاولت البحث عن مخططات اتصال أخرى ، وما إلى ذلك ، ولكن لا تزال الوحدة إما إعادة تعيين أو لا تعرض أي شيء. وفي كل مكان مكتوب بخط أحمر: "لا تنطبق على وحدة 5 V ، وإلا فإنها ستفشل." لذلك استمر البحث عن حلول في بعض الأحيان في المساء ، كنت أفكر بالفعل في شراء وحدة أخرى ، لكنني قررت التحقق من الجهد باستخدام جهاز متعدد.اتضح أنه عندما يتم توصيل الوحدة بـ 3.3 فولت ، ينخفض الجهد إلى أقل من 3.2 فولت ، ويبدو أنه ، حسنًا ، ينخفض وينخفض. قررت تشغيلها من مصدر طاقة آخر واتضح أن الوحدة تعمل بشكل طبيعي بجهد أعلى من 3.2 فولت ، وأدناه لا يكفي ويتم إعادة تعيينه باستمرار.ونتيجة لذلك ، وعلى مسؤوليتي الخاصة والمخاطر ، قمت بتوصيله بـ 5 فولت وعمل كل شيء ولا يزال يعمل بشكل جيد.
لم تكن هناك مثل هذه المشاكل مع المكونات الأخرى.بعد أن اكتشفت شبكة wifi ، كان علي أن أقرر ما يجب فعله بمستشعر مستوى السائل. Googling ، وجدت مقالًا صنع فيه المؤلف مستشعر رطوبة التربة. عندما تجف التربة ، تزداد مقاومة المستشعر ويرتفع الجهد في المنفذ التناظري Arduino. من خلال الكشف عن تغيير في الجهد ، يمكن الكشف عن مظهر السائل. بدلاً من جهتي اتصال ، تم استخدام 6 لتحديد مستوى السائل في مشروعي ، أحدهما متصل بإخراج 5 فولت ، والباقي للمدخلات التناظرية ومقاومات 10 كيلو أوم بـ GND.هنا صور الاختبارات.
هنا هو مستوى استشعار النتيجة.
الشيء التالي الذي اختبرته هو الساعة في الوقت الحقيقي. لكن العمل معهم بسيط في الأساس. لتعيين الوقت والحصول على معلومات حوله ، استخدمت أمثلة حصرية تأتي مع المكتبة للعمل مع DS1307.ونتيجة لذلك ، عندما تم تجميع كل شيء على لوح توصيل ، حصلنا على مثل هذا التقاطع بين الأسلاك والوحدات. بالمناسبة ، في هذه الصور يوجد مستشعر درجة حرارة آخر.
الشروع في العمل
الآن كان لا بد من لحام كل هذا على لوحة الدوائر. لا يوجد شيء خاص للتعليق عليه ، لذلك فقط صورة. كما ترى ، تمت إضافة زر آخر حتى تتمكن من تشغيل الغلاية ليس فقط من الهاتف الذكي ، ولكن أيضًا بالطريقة المعتادة.

بعد ذلك ، تحتاج إلى وضع كل شيء داخل الغلاية.


تمت إضافة مادة الأسبستوس لحماية جميع الدواخل من الحرارة الزائدة.
صحيح ، كان يجب رفع العلبة قليلاً مع إدراج بلاستيكي إضافي.

انتقل الآن إلى جزء الجوال.
بالنسبة للتطبيق ، نظرًا لأنه تم تطويره بموجب نظام التشغيل Android ، فقد تم التخطيط في الأصل لاستخدام Android Studio. ولكن من أجل دراسة التقنيات الجديدة ، تقرر استخدام منصة جاهزة لتطوير البرامج في مجال إنترنت الأشياء. ونتيجة لذلك ، وقع الاختيار على منتج Evothings - Evothings Studio.
فيما يلي مزاياها الرئيسية:- عدد كبير من الأمثلة القياسية على العمل مع وحدات مختلفة (Wifi ، Bluetooth) ؛- تطوير التطبيقات باستخدام JS و HTML و CSS ، مما يسمح لك بكتابة كود واحد يعمل بشكل متساوٍ على Android و iOS ، أي يختفي الربط بمنصة واحدة فقط ؛- سهولة اختبار التطبيق: يتم تثبيت تطبيق على الهاتف الذكي لمعاينة تطوره ، ويتم عرض جميع رسائل الاختبار ورسائل الخطأ في البرنامج على الكمبيوتر ؛- كمية كبيرة من المعلومات على الإنترنت حول التطوير باستخدام JS و HTML و CSS ؛في استوديو Evothings هذا ، كان هناك مثال على تشغيل LED عن طريق إرسال طلب تشغيل من خلال ESP8266. قررت أخذ هذا المثال كأساس ، لأنه كان هناك أغلى شيء بالنسبة لي - التواصل مع وحدة WiFi عبر مقبس TCP. وبالمثل كيف تم إرسال طلب تشغيل LED ، قمت بتقديم طلب لتحديث أجهزة استشعار الغلاية ، لضبط الوقت ، وضبط درجة الحرارة ، إلخ.ثم قمت بتثبيط إخطارات الاستعداد وكمية صغيرة من الماء ، والفائدة هي أن كل شيء في عصرنا أصبح سهلًا. والنتيجة هي مثل هذا التطبيق (الشيء الجميل هو القيام بواجهة التطبيق باستخدام CSS):




وصف موجز لتفاعل الهاتف الذكي والغلاية
يتم الاتصال بين الخادم والعميل باستخدام وحدة WiFi. عند تشغيل وحدة التحكم في الغلاية ، تبدأ وحدة WiFi في توزيع شبكة تسمى artKettle. يتم ذلك باستخدام أوامر AT على جانب الخادم. لذا ، على سبيل المثال ، لوضع الوحدة في وضع نقطة الوصول ، تحتاج إلى إرسال الأمر AT + CWMODE = 2. بعد ذلك ، باستخدام هذه الأوامر ، تحتاج إلى تعيين معلمات الشبكة والسماح باتصال العديد من الأجهزة والحصول على عنوان IP الخاص بشبكة wifi نفسها.من جانب العميل ، يتم الاتصال من خلال منفذ معين وعنوان IP لوحدة wifi باستخدام chrome.tcp.socket.بعد توصيل العميل بالخادم ، يمكنك التحكم في الغلاية من هاتفك الذكي. ضع في اعتبارك مثال تشغيل الغلاية.عند النقر على زر الطاقة في تطبيق artKettle ، يتم استدعاء الوظيفة المقابلة لتضمين app.kettleOn (). داخل هذه الوظيفة ، يتم نقل خطين إلى جانب الخادم:app.sendString('H');
app.sendString('U');
التالي هو العمل بالفعل على جانب اردوينو. بعد وصول السطر الأول بالحرف "H" ، يتم تنفيذ الرمز التالي:if(message.indexOf("H") >= 0 && waterDetected()) {
digitalWrite(POWER_PIN, LOW);
IS_ON = true;
Serial.println("ON");
sendCIPData(0, "ON");
}
أولاً ، يتحقق من وجود ماء في الغلاية عن طريق استدعاء طريقة waterDetected (). ضع في اعتبارك الخيار عند وجود الماء في الغلاية.يتم تطبيق مستوى جهد منخفض على دبوس التحكم في المرحل ، والذي يتوافق مع إدراجه ، أي إغلاق دائرة الطاقة:digitalWrite(POWER_PIN, LOW);
ثم يتم تعيين العلم للإشارة إلى أن الغلاية قيد التشغيل ، ويتم عرض رسالة على الإخراج إلى شاشة المنفذ التسلسلي.بعد ذلك ، يتم استدعاء وظيفة تنقل رسالة استجابة إلى جانب العميل تفيد بأن التضمين بأكمله كان ناجحًا:sendCIPData(0, "ON");
من جانب العميل ، بعد التحقق من الرسالة الواردة ، يتم تعيين زر الطاقة على حالة التشغيل:if (buf.substr(0, 2) == "ON") {
app.setButtonOn();
}
بعد ذلك ، تتم معالجة الرسالة النصية بالحرف "U" المرسل من العميل إلى الخادم. هنا ، بطريقة مشابهة للإدراج ، يتم تحديث المعلومات حول درجة الحرارة الحالية وحجم السائل في الغلاية.وبالتالي ، يتم تنظيم اتصال ثنائي الاتجاه بين العميل والخادم ، بحيث يعرف أي منهما حالة الآخر في أي وقت.الخلاصة
نتيجة لمشروع الدورة ، تم تطوير تعديل لغلاية كهربائية تقليدية ، مما يسمح بالتحكم فيها من هاتف ذكي عبر شبكة wifi. الآن يمكن أن يعزى هذا إبريق الشاي إلى ممثلي إنترنت الأشياء. تمكنا من تنفيذ جميع الوظائف بالكامل ، لذلك تحتوي هذه الغلاية الآن على الميزات التالية:- تشغيل / إيقاف تشغيل من هاتف ذكي ؛- ضبط أي درجة حرارة لتسخين المياه ؛- القدرة على معرفة درجة الحرارة الحالية ؛- تتبع الحجم الحالي للمياه في الغلاية ؛- التحذير والحماية من التبديل مع كمية صغيرة من الماء ؛- تحديد وقت التشغيل ؛- إشعار الاستعداد ؛مزايا المشروع الذي تم تنفيذه هي إمكانية الوصول إلى قاعدة العناصر ، لأنه يمكن العثور على كل ما تحتاجه في مخازن المكونات الإلكترونية ، وقابلية التوسع للمشروع. نظرًا لأن الغلاية تحتوي على جميع أجهزة الاستشعار اللازمة مثبتة ، يمكن تعديلها برمجيًا ولا تكون أسوأ من النظير. نظرًا لتعدد استخدامات وحدة wifi المستخدمة ، يمكنك توصيلها بالإنترنت وتنظيم التحكم في الغلاية ، في أي مكان في العالم ، واستخدام الخدمة عبر الإنترنت لمعالجة رسائل SMS ، يمكنك تنظيم التضمين عن طريق الرسائل القصيرة. على سبيل المثال المشروع لا يزال قابلاً للتوسيع للغاية ، وهناك فرص لذلك ، لكنها لم تنفذ ، لأنها لم تكن جزءًا من أهداف المشروع قيد التطوير.بالطبع ، هناك عيوب في المشروع. الأول هو التشغيل غير المستقر لوحدة Wifi. أحيانًا تفقد الوحدة شبكتها ، أو تبدأ في إعادة ضبط الإعدادات ، أو ببساطة لا تعالج الإشارات الواردة. علاوة على ذلك ، هذه مشاكل شائعة بين مستخدمي هذه الوحدة. العيب الثاني هو عدم الإغلاق الميكانيكي للغلاية. يتم تنفيذ إيقاف التشغيل في البرنامج ؛ عند الوصول إلى نقطة الغليان ، تنقطع الدائرة بمساعدة المرحل. إذا تعطل البرنامج فجأة ، فقد لا يتم إيقاف تشغيل الغلاية. العيب الثالث هو مشكلة مراقبة درجة حرارة التسخين. لذلك ، على سبيل المثال ، إذا قمت بإيقاف تشغيل الغلاية عند درجة حرارة 60 درجة ، فستستمر التسخين في إطلاق الحرارة ، وبعد فترة ستكون درجة حرارة الماء حوالي 70 درجة. ولكن يتم تصحيح ذلك عن طريق إجراء تعديلات على البرنامج.