الإعلانات
لقد تحدثنا عن المزايا النسبية لـ Arduino و Raspberry Pi من قبل - لكل منهما نقاط قوته. لا يجب أن يكونا خيارين أو خيارين - اجمعهما للحصول على أفضل ما في العالمين. التشغيل الآلي للمنزل هو المرشح المثالي لذلك. إن سوق التشغيل الآلي للمنزل مليء بأنظمة استهلاكية باهظة الثمن ، غير متوافقة مع بعضها البعض ومكلفة للتثبيت. إذا كان لديك راسبيري باي Raspberry Pi: البرنامج التعليمي غير الرسميسواء كنت مالك Pi الحالي وتريد معرفة المزيد أو مالك محتمل لهذا الجهاز بحجم بطاقة الائتمان ، فهذا ليس دليلاً تريد تفويته. اقرأ أكثر و Arduino ، يمكنك بشكل أساسي تحقيق نفس الشيء بجزء بسيط من السعر ، بافتراض أنك على استعداد لوضع الوقت والجهد.
تحديث: منذ كتابة هذا المقال ، اكتشفت OpenHAB ، وهو عبارة عن منصة أتمتة منزلية مجانية ومفتوحة المصدر الذي يعمل على Raspberry Pi ويمكن دمجه مع مجموعة كبيرة من أدوات المنزل الذكي الجاهزة اردوينو. تحقق من الفيديو أدناه للحصول على ذروة التسلل ، ثم توجه إلى موقعنا ابدأ مع OpenHAB على Raspberry Pi ابدأ مع OpenHAB Home Automation على Raspberry PiOpenHAB عبارة عن منصة أتمتة منزلية ناضجة ومفتوحة المصدر تعمل على مجموعة متنوعة من الأجهزة لا يعرف البروتوكول ، مما يعني أنه يمكن الاتصال بأي أجهزة أتمتة منزلية تقريبًا في السوق اليوم. اقرأ أكثر دليل لمعرفة المزيد.
Heimcontrol.js هو تطبيق Node.js مصمم للتشغيل على Raspberry Pi. إلى جانب Arduino وبعض مقابس التحكم عن بعد الجاهزة ، يجعل التحكم في أجهزة التكييف أمرًا سهلاً. يمكنك إضافة مستشعرات درجة الحرارة ، وحتى التحكم في التلفزيون - ولكننا سنحافظ على الأمور الأساسية اليوم ونوسع المشروع في برنامج تعليمي لاحق.
إليك تفاصيل المشروع:
- سيكون Raspberry Pi بمثابة العقول وبوابة العمليات - سيقوم بتشغيل تطبيق Node ، مرتبط بقاعدة بيانات Mongo ، وسيخدم الواجهة الأمامية لأي متصفح ويب.
- وسيعمل أردوينو ، المدعوم من Pi ، على التفاعل بين الإلكترونيات - مفاتيح التحكم في الراديو ، في الوقت الحالي.
للقيام بذلك ، ستحتاج إلى:
- اردوينو وتوت العليق Pi
- بعض المقابس وجهاز التحكم عن بعد (كنت تستخدم هؤلاء)
- لوحة وصل USB بالطاقة
قبل أن نبدأ ، إليك مقطع فيديو توضيحي من منشئ المشروع نفسه.
بدأ من الصفر
سنستخدم Raspian في هذا المشروع 11 أنظمة تشغيل تعمل على التوت الخاص بكمهما كان مشروع Raspberry Pi الخاص بك ، فهناك نظام تشغيل له. نحن نساعدك في العثور على أفضل نظام تشغيل Raspberry Pi لاحتياجاتك. اقرأ أكثر ، وأقترح بشدة البدء من تثبيت جديد إذا كنت قد أجريت من قبل عمليات اختراق أخرى وما شابه. تنزيل الأحدث صورة Raspianانسخه إلى بطاقة SD الخاصة بك ، وتأكد من توسيع نظام الملفات وتمكين SSH. يفترض باقي هذا الدليل أنك قمت بذلك ، وأنك تقوم بالاتصال عبر SSH باستخدام المستخدم الافتراضي.
إذا لم تكن قد فعلت ذلك من قبل ، يشرح هذا الفيديو عملية إعداد بطاقة SD الخاصة بك في OS X:
وهذا لمستخدمي Windows:
تجهيز
عملية التثبيت شاقة للغاية ، ومشتقة من التعليمات هنا. لسوء الحظ ، كانت هذه قديمة أو غير مصممة ل Raspian ، لذلك قمت بتعديلها بشكل كبير أدناه. يمكن لصق الرموز أدناه في الغالب في كتل - لا تحتاج إلى لصق واحد تلو الآخر. نظرًا لأننا نقوم بتجميع بعض الأشياء على Pi نفسها ، فكن حذرًا من أن هذه العملية بأكملها ستستغرق وقتًا طويلاً. أود أن أذهب لتصنع لنفسك كوبًا من الشاي - ولكن عندما أقول "وقت طويل" ، أعني الجزء الأفضل من اليوم - لذا سيكون 178 كوبًا أكثر ملاءمة.
يجب كتابة جميع الأوامر في Terminal ، وقد تحتاج إلى الضغط على Enter في بعض النقاط. ستقوم هذه الأوامر القليلة الأولى بتحديث النظام وتثبيت المتطلبات المسبقة:
sudo apt-get update تحديث sudo apt-get. sudo apt-get install git-core git scons scons-basic scons libpcre ++ - dev xulrunner-dev libboost-dev libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev.
بعد ذلك نحتاج إلى تثبيت العقدة:
sudo mkdir / opt / node. wget http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gz. tar xvzf node-v0.10.2-linux-arm-pi.tar.gz. sudo cp -r node-v0.10.2-linux-arm-pi / * / opt / node. sudo ln -s / opt / node / bin / node / usr / local / bin / node. sudo ln -s / opt / node / bin / npm / usr / local / bin / npm.
أضف متغير PATH إلى ملفك الشخصي حتى يعرف نظام التشغيل مكان العقدة. استخدم محرر النصوص نانو على النحو التالي:
sudo nano / etc / profile.
حدد السطر الذي يقول تصدير PATH واستبدالها بـ:
NODE_JS_HOME = "/ opt / node" PATH = "$ PATH: $ NODE_JS_HOME / bin" تصدير PATH.
اضغط على Ctrl-X للخروج ، و Y للحفظ.
قد تحتاج إلى تسجيل الخروج والدخول مرة أخرى حتى تصبح تغييرات المسار نافذة المفعول ، ولكن يمكنك الاختبار باستخدام الأمر:
أي العقدة.
إذا لم تحصل على أي إخراج يشير إلى ثنائي العقدة ، حدث خطأ ما.
مونغو
المهمة التالية هي التثبيت مونغو. Mongo هي قاعدة بيانات No-SQL المستندة إلى المستندات ، والتي تستخدمها تطبيقات الويب بشكل متزايد. لسوء الحظ ، سيستغرق هذا التثبيت إلى الأبد حيث يتعين علينا تجميعه. أثناء تشغيل الأوامر التالية ، ستحصل على الكثير من الأخطاء مثل:
{الإدخال القياسي}: 13085: تحذير: تم إيقاف استخدام swp {b} لهذه البنية.
لا تقلق بشأن ذلك. لذا ، قم بتشغيل هذه الأوامر لتثبيت Mongo:
git clone git: //github.com/RickP/mongopi.git. مؤتمر نزع السلاح مونجوبي. سكونز. sudo scons --prefix = / opt / mongo install scons -c.
عند الانتهاء ، نحتاج إلى المزيد من الإعداد أولاً لإصلاح مشكلات الأذونات والتأكد من تشغيلها عند بدء التشغيل.
sudo useradd mongodb. sudo mkdir / data / dbb. sudo chown $ USER / data / db. cd /etc/init.d. sudo wget -O mongodb https://gist.github.com/ni-c/fd4df404bda6e87fb718/raw/36d45897cd943fbd6d071c096eb4b71b37d0fcbb/mongodb.sh. sudo chmod + x mongodb. افتراضيات sudo update-rc.d mongodb. النمس
سيؤدي هذا الأمر الأخير إلى تشغيل خادم Mongo ، وستحتاج إلى فتح Terminal جديد للمتابعة مع الأوامر الأخرى. لست واثقًا تمامًا من هذه الخطوة ، لذلك إذا كان بإمكان أي شخص تصحيح ذلك في التعليقات حول كيفية تشغيل mongod تلقائيًا عند بدء التشغيل ، فسيكون ذلك محل تقدير كبير. في الوقت الحالي ، يعمل بشكل غير أنيق.
إيقاف sudo -r الآن
أخيرًا ، حان الوقت لتثبيت تطبيق Heimcontrol.js Node.
مؤتمر نزع السلاح ~ بي. git clone git: //github.com/ni-c/heimcontrol.js.git. cd heimcontrol.js. تثبيت npm.
يمكنك بدء تشغيل التطبيق بكتابة
عقدة heimcontrol.js.
عند هذه النقطة ، يجب أن تكون قادرًا على الوصول إلى واجهة التحكم باستخدام http://localhost: 8080 من Pi ، أو استبدل localhost بعنوان IP إذا كنت تدخل إليه من جهاز كمبيوتر مختلف (ويمكنك أيضًا إعداد إعادة توجيه المنفذ ما هو ميناء الشحن وكيف يمكن أن يساعدني؟ [MakeUseOf يوضح]هل تبكي قليلًا عندما يخبرك أحدهم أن هناك مشكلة في إعادة توجيه المنفذ ، ولهذا السبب لن يعمل تطبيقك الجديد اللامع؟ جهاز Xbox الخاص بك لن يسمح لك بلعب الألعاب ، وترفض تنزيلات التورنت الخاصة بك ... اقرأ أكثر للوصول إليها من أي مكان في العالم) ، لذا أود أن أشجعك على التجول والتحقق من أن كل شيء يعمل مع قاعدة البيانات قبل إرفاق Arduino.
المعدات
في النهاية ، أود الحصول على تتابع سلكي ، ولكن في الوقت الحالي سأستخدم الخيار الأكثر أمانًا للمفاتيح التي يتم التحكم فيها عن طريق الراديو.
لقد استخدمت بعض مجموعات 20 جنيهًا إسترلينيًا رخيصة الثمن بشكل معقول من Maplin والتي تأتي مع 3 مآخذ ، وفتحت جهاز التحكم عن بُعد حتى أتمكن من التفاعل مباشرة مع شريحة 433 MHz في الداخل. لقد وجدت التعليمات الخاصة بذلك هنا.
يمكنك أيضًا شراء أجهزة إرسال فردية 433 ميجاهرتز جاهزة للاستخدام على موقع eBay أو من موردي إلكترونيات الهوايات. كل ما تحتاجه هو توصيل VCC بـ 5 V على Arduino و GNDs ودبوس تحكم واحد - تذكر أيهما استخدمته. (تخطيطي بواسطة ويلي تيل)
يعمل المكوِّن الإضافي عن طريق إرسال "رموز ثلاثية" ، ولكنها تختلف باختلاف الشركة المصنعة. راجع وثائق RCSwitch للعثور على الرموز الخاصة بك بالضبط. هذه دليل الويكي قد يساعد أيضًا.
يتم التواصل مع Arduino باستخدام مكتبة عقدة تسمى دوينو. أوقف تطبيق Heimcontrol إذا كان قيد التشغيل وقم بتثبيت جسر Arduino باستخدام الأمر التالي.
npm تثبيت duino.
يجب أن يكون اردوينو تم تحميل هذا الرمز - أقترح عليك النسخ واللصق لتثبيت هذا من جهاز كمبيوتر مختلف. إنه في الأساس برنامج مستمع يستجيب للأوامر التسلسلية من Pi ، ولكن لا يوجد شيء يمنعك من تمديده بميزاتك الخاصة.
مع إطلاق تطبيق الويب ، انتقل إلى الإعدادات القائمة> اردوينو.
من هناك يمكنك إضافة عنصر جديد ، واختيار طريقة RCSwitch ، ودبوس جهاز الإرسال ، ورمز عنوان ثلاثي. تذكر الحفظ ، ثم عد إلى شاشة الشاشة الرئيسية للزر الجديد.
البق:
بعد عدة ساعات من تصحيح الرمز ، وجدت أن أرقام رقم التعريف الشخصي المكونة من رقم واحد لا تعمل - تأكد من وضع جهاز الإرسال على رقم التعريف الشخصي 10 لكى تتأكد.
ووجدت أيضًا أن المكوّن الإضافي Arduino تم تشفيره باستخدام وحدات بت نهائية غير صحيحة لرموز التريستات التي احتاجتها أجهزة الاستقبال. شرح صغير أولاً: تتكون رموز التريستات من 3 بايت من المعلومات. الأول يحدد لنا رقم الشبكة (1-4) ، والثاني يوفر عنوان جهاز الإرسال والاستقبال (مرة أخرى ، 1-4 ، ينتج بحد أقصى 16 مآخذ قابلة للعنونة). تتكون البايتة النهائية من بتين من الحشو ، بالإضافة إلى بتتين للتشغيل / الإيقاف. لسوء الحظ ، البايت النهائي مشفر في البرنامج المساعد Arduino - وفي حالتي ، كود التشغيل / الإيقاف غير صحيح.
اضطررت إلى تحرير ملف الإضافات / arduino / index.js لاستخدام الرموز الصحيحة. إذا كنت تستخدم نفس مقابس جهاز التحكم عن بُعد التي أستخدمها ، فغيّر الخطوط 80 فصاعدًا إلى:
// إرسال رمز RC. if (item.value) {return that.pins [item.pin] .triState (item.code + "FFFF")؛ // change from FF0F. } آخر {return that.pins [item.pin] .triState (item.code + "FFF0")؛ // change from FF00. }
إليك مقطع فيديو تجريبي لكل شيء يعمل:
سأترك الأمر هنا في هذه المرحلة ، ولكن قراءات أجهزة الاستشعار وأجهزة التحكم عن بعد بالأشعة تحت الحمراء مدعوم أيضا. ربما سأعيد النظر في هذه في وقت لاحق مع مزيد من التحسينات. إذا كان كل هذا معقدًا بعض الشيء بالنسبة لك ، فربما تحقق منه مشاريع اردوينو صديقة للمبتدئين 15 مشروع اردوينو عظيم للمبتدئينهل أنت مهتم بمشاريع Arduino ولكنك لست متأكدًا من أين تبدأ؟ ستعلمك هذه المشاريع للمبتدئين كيفية البدء. اقرأ أكثر .
يحمل جيمس درجة البكالوريوس في الذكاء الاصطناعي ، وهو حاصل على شهادة CompTIA A + و Network +. وهو المطور الرئيسي لـ MakeUseOf ، ويقضي وقت فراغه في لعب كرة الطلاء VR وألعاب الطاولة. لقد كان يبني أجهزة الكمبيوتر منذ أن كان طفلاً.