تحكم في الأشياء من جهازك!

من ويكي أضِف
مراجعة 12:08، 9 مارس 2014 بواسطة فهد (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث


عدّل باستمارة وصفة

FMEDIUM.jpg

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


مثلاً،

- أتمتة أدوات المنزل من مصابيح ومكيفات ..إلخ

- جهاز إنذار ذكي وفعال يراقب مداخل المنزل و متصل بل انترنت

- مصابيح إخطار كتلك المستعملة في سيارات الاسعاف، توضع في مكتب وتقوم باخطار العاملين عن أي عطل تقني في شبكات المعلومات الداخلية و الأنظمة المتصلة بها...


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


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


بعد استعمالنا لهذه التقنية مدة ثلاث شهور، إنخفض مؤشر "زمن الاستجابة" للفريق من معدل 4 ساعات ال 3 دقائق فقط!! وهذا واحد من أهداف فريقنا لهذه السنة بخفض مؤشر زمن الإستجابة لساعتين.. ولكنا حققنا أفضل من ذلك بكثير، وفي ربع المدة المتوقعة، ومن دون أي جهد إضافي، إذ أن الجهاز موضوع في مكان مفتوح في المكتب، يسهل على الجميع رؤيته والتصرف على أساسه, عملاً بمبدأ "الجدارة" أو ال-"meritocracy"! :)


في هذه "الوصفة" التقنية، سأقدم خطوة بخطوة، مراحل بناء هذا الجهاز، لعل في ذلك إفادة للجميع، مرحباً بتعديلاتكم وملاحظاتكم (رجاءً :))، كما أني أضع مصدر البرنامج والتصميم بين أيديكم، مفتوحاً، لإعادة إستخدامه والتصرف به من دون الحاجة لإعلامي، إلا لو لديكم سؤال أو نقاش :)


أدناه رابط فيديو يعرض المنتج النهائي للجهاز، وبرنامج التحكم خاصته.


فلنبدأ بالبناء...

الفيديو: https://www.youtube.com/watch?v=RwNfY-weuZE




الخطوة 1: التصميم العام ولائحة المواد

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

أولاً، طورت برنامج، مكتوب بلغة البرمجة Java، له واجهة مستخدم سهله، تسمىح بإدخال تفاصيل قاعدة البيانات الهدف، وبحفظ المعايير وأدارتها، ورصد المشاكل المكتشفة، كما أن الواجهة تحتوي على أداة فحص/إختبار للواجهة الالكترونية.


ثانياً، قمت ببناء جهاز بسيط، مستخدماً لوحة Arduino، موصول إلى لوحة مفاتيح إلكترونية ذات حالة صلبة (solid state relays). لوحة المفاتيح هذه تسمح بالتحكم ب 8 مخارج كهربائية (لكل منها قدرة توتر كهربائي متناوب 220 فولت، و معدل سحب أقصى للتيار يساوي 2 أمبير لكل مخرج). تقوم ال-Arduino بالتحكم بلوحة المفاتيح الإلكترونية اثر إشارة تأتيها من الكمبيوتر عبر ال-USB. قمت بكتابة برنامج بسيط يتم تحمله على ال-Arduino يسمح لها بفهم أوامر الكمبيوتر وتكيفها كإشارات رقمية تتحكم بالمفاتيح الالكترونية، كل على حدا.

بأمر من الكمبيوتر، تقوم ال-Arduino بإرسال إشارة 5 فولت أو 0 فولت، لأحد المفاتيح الإلكترونية الذي حددها الكمبيوتر في أمره، مما يسبب غلق أو فتح المفتاح، وبالتالي ، تشغيل أو إطفاء مصباح التحذير. الجدير بالذكر أن الواجهة تستطيع أيضاً التحكم بمحركي سيرفو، باستخدم اشارات PWM (تعديل مدة النبض الالكتروني)، يمكن أيضاً التحكم بها من الكمبيوتر بمساعدة ال-Arduino.


اليكم التصميم العام:

Schematic.jpg




لائحة المواد المطلوبة:


  1. دائرة إلكترونية Arduino. لقد قمت بإستخدام Arduino Nano، ولكن يمكن إستخدام اى دائرة Arduino أخرى إذا توفر.
  2. دائرة إلكترونية Sainsmart 8 وهي تحتوي على 8 مفاتيح إلكترونية solid state relay ممكن التحكم بها من ال-Arduino
  3. صندوق كهرباء 10 مداخل
  4. 8 مآخذ كهربائية عادية كتلك المستعملة فالحائط
  5. سلك كهرباء
  6. أسلاك متنوعة (لتوصيل ال-arduino بلوحة Sainsmart)
  7. سلك USB mini
  8. عدد من مصابيح التحذير حسب الحاجة تعمل ب-220 volt ( مثلاً)
  9. محركي سيرفو (إختياري)



الخطوة 2: برنامج Arduino وتجريبه مع المفاتيح

لكي استطيع بسهولة التحكم بكل مخارج ال-arduino كتبت برنامج يحمل على ال-Aruduino، يستطيع فهم أوامر بسيطة من الكمبيوتر وتحويلها إلى اشارات تحكم بالمفاتيح الالكترونية، بحيث يقوم برنامج ال-Java بإرسال واحد من مجموعة رموز، استنادا إلى أرقام صحيحة واضحة، كل رمز يسبب فتح أو غلق مفتاح معين، حسب جدول بيان الرموز أدناه:

Tablecodes.jpg




أمثلة:

- إرسال رمز 11 ،سيسبب بإغلاق المفتاح الموصول بالمخرج رقم 1، أما إرسال الرمز 10، فسوف يفتح المفتاح رقم 1

- إرسال رمز 200 سيسبب بإرسال إشارة PWM والتي بدورها سوف تحرك السيرفو إلى الزاوية 0 درجة، غير أن إرسال الرمز 299 سوف يحرك السيرفو الى زاوية 180 درجة ، وهي أقصى زاوية يستطيع السيرفو الوصول إليها

- إرسال الرمز 1000 ستقوم ال-arduino بإرسال قائمة بجميع أجهزة الإنذار/المداخل المحددة في برنامج اردوينو

فلنبدأ...


أولاً: لإستخدام الرموز وتجربتها،يجب تحميل تطبيق مبرمج Arduino وتشغيله، ثم إستخدامه لتحميل البرنامج خاصتنا على لوحه ال-arduino، ستجدون المصدر مرفق للتحميل، وهو موجود في أسفل هذه الخطوة.

ثانياً:يجب توصيل ال-arduino بدائرة المفاتيح Sainsmart، حيث أن كل دبوس/مخرج arduino سيدخل منفذ معين في دائرة Sainsmart وعلى الشكل التالي:

- مخرج Arduino رقم 2 ---> إلى مدخل Sainsmart رقم 1

- مخرج Arduino رقم 3 ---> إلى مدخل Sainsmart رقم 2

- مخرج Arduino رقم 4 ---> إلى مدخل Sainsmart رقم 3

- مخرج Arduino رقم 5 ---> إلى مدخل Sainsmart رقم 4

- مخرج Arduino رقم 6 ---> إلى مدخل Sainsmart رقم 5

- مخرج Arduino رقم 7 ---> إلى مدخل Sainsmart رقم 6

- مخرج Arduino رقم 8 ---> إلى مدخل Sainsmart رقم 7

- مخرج Arduino رقم 10 ---> إلى مدخل Sainsmart رقم 8


أما بالنسبة للسيرفو

- مخرج Arduino رقم 9 ---> إلى سيرفو 1

- مخرج Arduino رقم 11 ---> إلى سيرفو 2


يجب أيضاً توصيل مغذي الطاقة من ال-Arduino الى ال-sainsmart، تحديداً من دبوس 5+ Arduino الى دبوس 5+ في ال-Sainsmart، أيضاً دبوس Grd في ال-Arduino دبوس Grd في ال-Sainsmart

بعد تحميل البرنامج على ال-arduino وتوصيلها بدائرة ال-Sainsmart، أصبح من الامكان الأن إجراء إختبار أولي، أي بأرسال رموز التحكم من الكمبيوتر، فمشاهدة مخارج ال-Sainsmart تعمل بالتوافق ، وسيكون ذلك واضحاً على أضواء ال-Led عند كل مخرج من مخارج ال-Sainsmart

قم بفتح برنامج ، Arduino IDE ، ثم وصل سلك USB mini بل كومبوتر و ال-arduino، تأكد من اختيارك دائرة Arduino الصحيحة من قائمة الدوائر Nano، ثم إضغط Tools > Serial monitor ، إختر سرعة نقل البيانات 9600. الآن إستخدم أي من الرموز من الجدول أعلاه في خانة "الارسال" ثم إضغط "Send". مع كل رمز يجب أن تنير/تطفئ ال-led المرادفة للرمز المرسل.

Testit.jpg


ملف:CODEArduino.txt.zip


الخطوة 3: بناء علبة الواجهة الالكترونية

بعد إنجاز الاختبار في الخطوة رقم 2, أصبح من الامكان الانتقال لصناعة العلبة التي ستحتوي جميع الالكترونيات (Arduino و ال-Sainsmart ومداخل مصابيح الانذار والسيرفو)

قم بإحضار علبة الكهرباء ذات ال-10 مداخل، ثبت 8 منفذ كهربائية في العلبة كما هو مبين في الشكل أدناه، ثم ثبت دائرة ال-arduino وال-Sainsmart داخل العلبة بشكل يسمح بإغلاقها أيضاً بتمرير الأسلاك بشكل آمن. إتبع التصميم العام في الخطوة رقم 1 من هذه الوصفة لتوصيل الأسلاك وخصوصاً أسلاك الكهرباء ذات التوتر الكهربائي 220 فولت


إنتبه: لا تقوم أبداً بالعمل على العلبة أثناء وصول الكهرباء إليها لتفادي خطر الصعق الكهربائي!


أدناه العلبة في مراحل متعددة من تركيبها تظهر جميع التوصيلات:




FAD2.jpg




FAD3.jpg




FAD4.jpg



الخطوة 4: كلمة أخيرة

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

تذكيراً، في الخطوة رقم 2, قمنا بإختبار الواجهة بإستعمال تطبيق Arduino IDE كي نستطيع إرسال الأوامر عبر منفذ ال-USB إلى ال-Arduino، للتأكد من صحة عمل الجهاز، ولكن بإمكانكم كتابه أي برنامج يرسل نفس الرموز مستخدمين اي لغه برمجة للتحكم بالواجهة، كما أنه يمكن تعديل الرموز لو احببتم بإدخال تعديلات على برنامج ال-Arduino المرفق في هذه الوصفة.


في تطبيقي مثلاً ، قمت بأستخدم لغه Java لبناء عقل يتحكم بالواجهة، حسب أهدافي العملية الآنيه، ولكن يمكنكم إستخدام نفس الواجهة الالكترونية في تطبيقات عديدة تناسب حاجاتكم، فقد كان هذا واحد من أهدافي في هذه الوصفة، أن أصمم واجهة متعددة الاستعمالات وبأقل تعديل ممكن كي يستفيد منها الغير.


اتمنى أن تكون قد وجدتم متعة وإفادة من هذه الوصفة، على أمل أن اتلقى تعليقاتكم، والإجابة عن أي سؤال إذا وجد.

فهد الرياشي - 2014 riachi@gmail.com