جدول المحتويات:
- الخطوة 1: قم بتحميل Pi مع Rasbian Stretch
- الخطوة 2: تحديث وإضافة ميزات إلى Node-Red
- الخطوة 3: تثبيت Mosquitto MQTT
- الخطوة 4: إعداد واجهة Node Red
- الخطوة 5: إعداد نظام Arduino لإعادة برمجة أجهزة Sonoff
- الخطوة 6: إعادة برمجة مفتاح Sonoff
- الخطوة 7: الأمان
- الخطوة الثامنة: الخطوات الأولية للتوسع
- الخطوة 9: الملحق - التحميل من Raspbian Stretch Lite
فيديو: نظام أتمتة منزلي قوي ومستقل - Pi و Sonoff و ESP8266 و Node-Red: 9 خطوات (مع صور)
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
يجب أن يوصلك هذا الدليل إلى القاعدة الأولى حيث يمكنك تشغيل / إيقاف تشغيل ضوء أو جهاز عبر أي جهاز يمكنه الاتصال بشبكتك المحلية ، وبواجهة ويب رائعة قابلة للتخصيص. إن نطاق ميزات التمديد / الإضافة واسع ، بما في ذلك إرسال رسائل البريد الإلكتروني ورسائل Twitter ومستشعرات القراءة (مثل درجة الحرارة). يمكنك بسهولة وضع القواعد على سبيل المثال - إذا كانت درجة الحرارة أقل من 15 درجة مئوية عند الساعة 11 مساءً ، قم بتشغيل البطانية الكهربائية لمدة 30 دقيقة. يستخدم النظام بروتوكول MQTT مع بروتوكول التحكم في الإرسال (TCP) الذي يعد أكثر موثوقية بشكل كبير من بروتوكول UDP - والذي يتم استخدامه بشكل مفاجئ بواسطة بعض أجهزة أتمتة المنازل التجارية. بمجرد الانتهاء من العمل الشاق لإعداد النظام ، الموصوف هنا ، يمكن أن تبدأ المتعة. يوفر Node Red واجهة مستخدم رائعة سهلة الاستخدام وسريعة وسهلة الإعداد ، وتوفر إمكانات مذهلة.
والنتيجة هي نظام أتمتة منزلي قوي يخضع بالكامل لسيطرة الفرد وهو متصل بالكامل بشبكة محلية. تعمل العديد من الأنظمة المعروضة في Instructables مع الخوادم المستندة إلى السحابة ، وبالتالي فهي تشكل مخاطرة أمنية ويمكن أن تتطلب الاشتراك. هذه أسهل في الإعداد ولكنها تنطوي على مخاطر أمنية أكبر وتكلفة أعلى. يجب أن أضيف أنه يمكن للمرء إعداد VPN (شبكة افتراضية خاصة) إلى Pi لتمكين الاتصال الآمن بالشبكة / النظام المنزلي إذا كان الوصول من الخارج مفيدًا (Google Pi OpenVPN للحصول على الإرشادات).
يتطلب هذا النظام إعادة برمجة أجهزة Sonoff باستخدام نظام مفتوح المصدر رائع يسمى Sonoff-Tasmoda. يمكن القيام بذلك باستخدام إعداد Arduino خاص ومحول USB إلى تسلسلي. تستخدم أجهزة Sonoff شريحة ESP8266 Wi-Fi بحيث يمكنك أيضًا إنشاء أجهزتك الخاصة باستخدام وحدات ESP8266 أو ملاءمتها لعناصر أخرى لتوفير اتصال لاسلكي.
أكبر مهمة هي إعداد Raspberry Pi كمحور. يؤدي هذا إلى تشغيل وسيط MQTT (أو الخادم) الذي يدير الاتصال بالأجهزة المتصلة. يدير Pi أيضًا نظامًا يسمى Node-Red يمكنه اعتراض الرسائل والبيانات وأوامر الإخراج - مثل وقت تشغيل البطانية الكهربائية. يوفر Node-Red أيضًا واجهة لخدمة صفحة الويب التي يمكنك تسجيل الدخول إليها عبر الهاتف الذكي / الجهاز اللوحي / الكمبيوتر الشخصي / الكمبيوتر المحمول ، لمعرفة ما يجري وتمكين التبديل اليدوي للأضواء وما إلى ذلك.
هدفي من هذا الدليل هو إعطاء كل خطوة بتفاصيل كافية حتى يتمكن المبتدئ من تشغيل النظام.
الخطوات هي:
- قم بتحميل Pi مع Rasbian Stretch
- تحديث وإضافة ميزات إلى Node-Red
- قم بتثبيت وسيط Mosquitto MQTT
- قم بإعداد بيئة Arduino لتحميل البرامج الثابتة Sonoff-Tasmota
- أعد برمجة مفتاح Sonoff
- قم بإعداد واجهة Node-Red
- اختبر كل شيء يعمل.
الأجهزة التي ستحتاجها:
- Raspberry Pi ومصدر الطاقة (ولوحة المفاتيح وشاشة للإعداد الأولي) (نموذج B مستخدم هنا)
- تبديل سونوف
- محول USB التسلسلي
- اختياري - لوحة تطوير ESP مثل NodeMCU.
تجربتي مع Raspberry Pi هي أن إعداد أي شيء يبدو أنه ينطوي على قدر أكبر من الألم أكثر مما يمكن للمرء أن يتخيله ممكنًا مع عدم عمل الأشياء أو التعثر في بعض الخطوات التافهة حيث كان من الممكن أن يكون التفسير أفضل. لا تحصل المنتديات دائمًا على نصيحة تعمل! لقد وجدت عدة طرق لم تعمل لسبب أو لآخر. هذا يكلف 3 أيام! ثم مسحت كل شيء وبدأت من جديد وانتهيت في أقل من يوم (طويل). لكن هذا استخدم Raspian Jessie الأقدم. بعد ذلك وجدت طريقة لاستخدام الإصدار الحالي والذي تم إصداره مؤخرًا (Stretch) وفعلته مرة أخرى. يتيح هذا الدليل نسخ ولصق التعليمات في Pi. لذلك يجب أن تنتهي في غضون ساعات قليلة. على أي حال ، آمل أن يؤدي هذا إلى تسريع منحنى التعلم وبألم أقل بكثير. صدقني أنه يستحق كل هذا العناء للنتيجة النهائية.
الخطوة 1: قم بتحميل Pi مع Rasbian Stretch
يجب أن يكون هذا واضحًا جدًا. ابدأ ببطاقة SD 8 جيجا بايت أو 16 جيجا بايت. قم بتنزيل أحدث إصدار من:
www.raspberrypi.org/downloads/
يفترض الخيط الرئيسي هنا أنه تم تحميل النسخة الكاملة. ومع ذلك ، يمكنك استخدام الإصدار البسيط لتوفير مساحة. إذا كنت تستخدم Raspbian Stretch Lite ، فتابع من خلال هذه الخطوة ثم انتقل إلى الخطوة 9 في النهاية.
يؤدي فك ضغط الملف الذي تم تنزيله إلى ظهور مجلد به ملف.img. يوصى باستخدام 7Zip لنظام التشغيل Windows (و Unarchiver Mac). يجب نسخ الصورة على بطاقة SD - ولكن يجب استخدام برنامج خاص لأن نظام الملفات غير متوافق مع Windows. يُطلق على البرنامج الموصى به اسم Etcher ويمكن تنزيله من:
etcher.io/
التعليمات الخاصة بـ Etcher موجودة على موقع الويب الخاص بهم ويمكن بالكاد أن تكون أبسط. حدد الصورة ومحرك الأقراص وانقر فوق Flash.
الآن مع بطاقة SD الوامضة الخاصة بنا ، يمكنك تشغيل Pi.
إذا كنت تعرف عنوان IP الذي يستخدمه Pi أو يسعدك العثور عليه عن طريق تسجيل الدخول إلى جهاز التوجيه الخاص بك ، فيمكنك تجنب الحاجة إلى لوحة المفاتيح والشاشة واستخدام SSH على الفور. ما عليك سوى إضافة ملف فارغ باسم SSH إلى بطاقة SD ، وإدخاله ، والاتصال بشبكة Ethernet وتشغيله. خلاف ذلك اتبع الدليل أدناه.
قم بتوصيل Pi بالإنترنت والشاشة والماوس ولوحة المفاتيح والاتصال بالطاقة. أول شيء سنفعله هو تمكين SSH حتى نتمكن من القيام بمعظم الإعداد من الراحة على جهاز كمبيوتر. يمكن بالطبع أن يتم ذلك بشكل مباشر ولكنه يساعد كثيرًا في أن تكون قادرًا على اتباع هذا الدليل على نفس الجهاز الذي يستخدمه الشخص الذي يقود Pi واستخدام النسخ واللصق لمعظم التعليمات. أيضًا في حالتي ، تكون محطة عمل جهاز الكمبيوتر الخاص بي لطيفة ومريحة ولكنها ليست كبيرة بما يكفي لـ pi أيضًا.
يوجد دليل لجزء كبير من العمل على مقطع فيديو على YouTube. هذا هو المكان الذي بدأت فيه. يمكنك تشغيل الفيديو جنبًا إلى جنب مع اتباع هذه التعليمات. ومع ذلك ، عندما كنت أجري العملية مرة أخرى أثناء كتابة هذا ، وجدت أنه من الأسهل فقط اتباع التعليمات هنا. هناك بعض الانحرافات الهامة. هناك أيضًا بعض الأقسام التي نصحت فيها باتباع الفيديو بدلاً من سرد الخطوات هنا. ومع ذلك ، أوصي بالنظر إليه لفهم MQTT و Node-Red وعملية الإعداد الواسعة. يبلغ طول الفيديو 38 دقيقة لذا اجعل نفسك مرتاحًا. يبدأ الفيديو بإظهار ما يمكن أن يفعله Node Red ، ثم يغطي تثبيت Pi وإعداده ، متبوعًا بترقية Node Red وتثبيت Mosquitto أخيرًا. التوقيتات الرئيسية في حال كنت ترغب في العودة إلى القسم:
00:00 مقدمة عن الفيديو
03:00 عرض Node Red
14:14 استيراد عناصر لوحة القيادة إلى Node Red
21:05 الإعداد الأولي Pi ، بما في ذلك SSH
23:35 تثبيت كود دعم Node Red
27:00 مقدمة إلى MQTT
29:12 تركيب Mosquitto (MQTT) (ملاحظة تعمل فقط مع Raspian Jessie)
33:00 أمثلة Node Red
سأدرج الأوامر بخط مائل غامق (بدلاً من استخدام ""). يتم تجاهل هذا التنسيق عند نسخها ولصقها في Pi.
ستمنحك مقدمة Node Red فكرة عما يمكن أن يفعله النظام وتوفر صورة عن المكان الذي سننتهي إليه.
فيديو يوتيوب موجود على:
اتبع إجراءات التثبيت من 21:05 إلى 23:35. لاحظ أن تسجيل الدخول الافتراضي هو user: pi وكلمة المرور: raspberry. قبل إعادة التشغيل ، ابحث عن عنوان IP الخاص بـ pi. إما أن تنقر فوق رمز "سهم لأعلى + لأسفل" في الشريط العلوي لسطح المكتب أو أدخل التعليمات التالية في نافذة المحطة / المحطة الطرفية:
sudo ifconfig العنوان
ثم لاحظ عنوان IP بعد: inet addr:. سيكون بالشكل 192.168.x.y
لاحظ هذا العنوان وأعد التشغيل (أدخل: sudo shutdown –r now)
المفتاح في هذه المرحلة هو أنه تم تمكين SSH ويمكن للمرء إعداد رابط إلى Pi من جهاز كمبيوتر (يتضمن Mac و Linux واجهات SSH). برنامج جيد للقيام بذلك هو تنزيل مجاني يسمى PuTTY والذي يمكن استخدامه أيضًا كواجهة تسلسلية ويمكنه عمل Telnet. المعجون متوفر من:
www.chiark.greenend.org.uk/~sgtatham/putty…
قم بتنزيل وتثبيت PuTTY.
الآن ، مع إعادة تشغيل Pi ، ابدأ PuTTY وأدخل عنوان IP المذكور سابقًا. انظر المثال أدناه:
الآن انقر فوق فتح
بعد تسجيل الدخول باسم: أدخل pi
ثم أدخل كلمة المرور الخاصة بك.
الآن اتبع التعليمات الموجودة هنا وابدأ تشغيل الفيديو اختياريًا من الساعة 23:35. يمكنك في معظم الحالات النسخ واللصق. قم بتمييز النص واستخدم ctrl + C للنسخ. ثم انقر بزر الماوس الأيمن في PuTTY للصق. في بعض الأحيان لا يظهر النص على الفور ، لذا انتظر بضع ثوان. إذا قمت بإدخال مرتين ، استخدم مسافة للخلف لحذف الإدخال الثاني. اضغط على Enter لتنفيذ كل تعليمات.
sudo raspi-update
حصلت على أمر غير موجود وتجاهلت هذا وتعليمات إيقاف التشغيل / إعادة التشغيل التالية:
sudo الاغلاق -r الآن
sudo apt-get -y update
sudo apt-get -y Upgrade
هذا يستغرق بعض الوقت …
sudo apt-get autoremove
sudo apt-get -y update
sudo الاغلاق -r الآن
في هذه المرحلة ، تم تحميل نظام التشغيل Pi وتحديثه ، وهو جاهز للخطوة التالية.
الخطوة 2: تحديث وإضافة ميزات إلى Node-Red
سيتم فقد اتصال PuTTY عند إعادة التشغيل في نهاية الخطوة السابقة. لذا أغلق PuTTY وبعد انتظار Pi للتمهيد ، قم بتسجيل الدخول مرة أخرى كما كان من قبل.
لقد انتقلت إلى طريقة أبسط وأكثر موثوقية لتحميل Node-Red - باتباع النهج الموجود على https://nodered.org/docs/hardware/raspberrypi. يستخدم هذا برنامجًا نصيًا وسيقوم بتثبيت أو ترقية Node-Red - لذا فإن الأسلوب هو نفسه العمل من الإصدارات الكاملة أو الخفيفة من Raspbian Stretch. لذا أدخل:
bash <(curl -sL
أدخل Y عند المطالبة (مرتين). يقوم هذا البرنامج النصي أيضًا بتحميل الملفات المطلوبة لتمكين بدء التشغيل التلقائي لـ Node-Red.
لذلك في هذه المرحلة ، قمنا بتحميل وتحديث pi مع التحديثات اللازمة لـ Node Red. لا ضرر من القيام بإعادة التشغيل قبل المرحلة التالية.
sudo الاغلاق -r الآن
الخطوة 3: تثبيت Mosquitto MQTT
إذا لم تكن قد قمت بذلك بالفعل ، فمن المفيد مشاهدة مقدمة الفيديو إلى MQTT على الفيديو من الساعة 27:00.
هذا هو المكان الذي نحتاج فيه إلى اتخاذ مسار مختلف. الإجراء الموضح في الفيديو يعمل فقط مع إصدار Jessie الأقدم من Raspian. هناك نقاش حول موقع البعوض ولكن لم تظهر نتيجة واضحة وبالتالي ستتمسك بمسار أبسط وأكثر أمانًا.
لذا قم بتسجيل الدخول باستخدام PuTTY وأدخل ما يلي:
sudo apt-get update
سودو apt-get install mosquitto mosquitto-customers
ص
sudo /etc/init.d/mosquitto stop
sudo /etc/init.d/mosquitto للبدء
يتوقف الأمران الأخيران ويبدآن البعوض ويظهران أن وسيطنا MQTT يعمل.
لإجراء اختبار سريع ، افتح جلستين أخريين من PuTTY وقم بتسجيل الدخول إلى كل منهما.
ستعرف الآن أن MQTT يعمل بواسطة الجهاز يحتاج إلى بيانات الاشتراك في "موضوع". سيقوم الوسيط بإرسال أي بيانات بنفس "الموضوع". ثم يقوم الجهاز الذي يريد إرسال البيانات / التعليمات بنشر هذا إلى الوسيط باستخدام نفس "الموضوع".
لذلك في جلسة PuTTY واحدة أدخل:
mosquitto_sub -d -t مرحبا / العالم
هذه تعليمات للاشتراك في الموضوع: مرحبًا / العالم.
في الدخول الآخر:
mosquitto_pub -d -t hello / world -m "مرحبًا من النافذة الطرفية 2!"
هذه تعليمات نشر مع نفس الموضوع مع رسالة. النص: "مرحبًا من نافذة Terminal 2!" يجب أن تظهر الآن في المحطة الأخرى.
أحسنت الوصول إلى هذا الحد. لدينا الآن Pi محملة ومحدثة بالتحديثات اللازمة لـ Node-Red ومع وسيط البعوض MQTT مثبتًا ومختبرًا. من الآن فصاعدًا ، تصبح الحياة أسهل وأكثر متعة. أغلق جلستي PuTTY المستخدمتين في اختبار MQTT.
الخطوة 4: إعداد واجهة Node Red
نحتاج أولاً إلى بدء Node Red. أدخل التعليمات:
node-red-pi - الحد الأقصى لحجم الفضاء القديم = 256
انتظر حتى يتم تشغيله وسترى النص "تدفقات بدأت".
افتح الآن متصفحًا ، وأستخدم Chrome ، وأدخل عنوان pi IP المذكور سابقًا متبوعًا بـ: 1880 ، أي شيء مثل 192.168.0.8:1880
يجب أن يكون لديك الآن صفحة برمجة Node Red في العرض على النحو التالي:
يمكنك الآن اتباع أمثلة Node Red بدءًا من الساعة 33:00 أو الانتقال مباشرة إلى قدر ضئيل من الإعداد الإضافي وتحميل التدفق الأول الذي سيُظهر الرابط إلى MQTT ويكون جاهزًا لقيادة مفتاحنا.
الإعداد الإضافي المطلوب هو إضافة عناصر لوحة المعلومات التي تمكّن واجهة الويب.
هذه معروضة على الفيديو الساعة 14:14.
اتبع التعليمات لتحميل node-red-dashboard.
الآن يمكننا الحصول على القليل من اللعب وإظهار عمل MQTT وقيادته بواسطة Node-Red. هذا ليس موجودًا في الفيديو ولكنه مفتاح هذا المشروع. يمكنك إما اتباع تعليماتي و / أو استيراد التدفقات من ملف NRtest1.txt المرفق.
قم أولاً بإضافة عقدة إدخال إدخال وعقدة إخراج mqtt واربطها معًا.
انقر نقرًا مزدوجًا فوق عقدة الحقن (التي تمت تسميتها في البداية بالطابع الزمني). في قسم Payload ، استخدم twiddly للتغيير إلى السلسلة وأدخل: Hello from me. اترك الموضوع فارغًا حيث يمكننا إدخال هذا في عقدة MQTT. انقر فوق تم
الآن انقر نقرًا مزدوجًا فوق عقدة MQTT. انقر فوق رمز القلم الرصاص على يمين قسم الخادم. هذا يفتح مربع حوار جديد. أدخل: localhost في قسم الخادم. انقر فوق إضافة. الآن ، بالعودة إلى عقدة تحرير mqtt ، أدخل موضوعنا في قسم الموضوع: مرحبًا / العالم. اضبط جودة الخدمة على 1. انقر فوق تم. الآن انقر فوق نشر. يجب أن ترى نقطة خضراء و "متصلة" أسفل عقدة mqtt.
أضف الآن عقدتين أخريين - إدخال mqtt وتصحيح الإخراج ، وقم بتوصيلهما معًا. الآن انقر نقرًا مزدوجًا فوق عقدة إدخال mqtt وأدخل hello / world في قسم الموضوع. يجب أن يعرض الخادم المضيف المحلي: 1883. اضبط جودة الخدمة على 1. انقر فوق تم. ثم انقر فوق "نشر" وانقر فوق علامة التبويب "تصحيح الأخطاء" في الجزء الأيمن. انقر الآن على المربع الرمادي على يسار عقدة الحقن "مرحبًا مني". هذا يرسل حمولة النص إلى وسيط MQTT بالموضوع hello / world. يعرف الوسيط أن عقدة الإدخال mqtt قد اشتركت في نفس الموضوع وبالتالي تقوم بإعادة توجيه الحمولة. ثم ترسل عقدة الإدخال mqtt هذا إلى علامة تبويب التصحيح (RHS) ويجب أن يظهر النص "مرحبًا مني".
هذا يشير إلى مربع آخر حيث لدينا Node Red يتحدث إلى وسيط MQTT الخاص بنا. لاحظ أن Node Red هو مجرد عميل للوسيط - مثل أجهزة Sonoff التي سنتصل بها لاحقًا. ومع ذلك ، فإنه يتيح أتمتة متطورة ويوفر واجهة مستخدم رائعة.
يمكننا الآن إجراء بعض التغييرات الصغيرة وإعداد التدفقات لمفتاح Sonoff الخاص بنا.
لذا احذف عقدة إدخال الإدخال (انقر للتمييز واضغط على مفتاح الحذف). أضف الآن مفتاحًا من قسم لوحة القيادة وقم بتوصيله بإخراج mqtt. انقر نقرا مزدوجا فوق التبديل. انقر فوق القلم الرصاص على يمين المجموعة. أدخل في الاسم: Light. ثم انقر فوق القلم الرصاص على يمين علامة التبويب وادخل إلى قسم الاسم: صالة. انقر فوق إضافة / تحديث وإضافة / تحديث مرة أخرى. الآن ، مرة أخرى في عقدة تبديل التحرير ، قم بتعيين تشغيل وإيقاف تشغيل الحمولات. استخدم twidlys لتحديد السلسلة وأدخل ON للحمولة الصافية On و OFF لحمولة OFF. انقر فوق تم
انتقل الآن إلى كل عقد من عقد mqtt وقم بتغيير الموضوع إلى cmnd / sonoff / POWER. في حالة النسخ واللصق ، تحقق من عدم تضمين مسافة في النهاية. هذا موضوع مختلف ولن يعمل مع Sonoff. يمكن أن يستغرق العثور على مساحة ضالة ساعة أو نحو ذلك - صدقني! ذهبت أيضًا إلى لوحة القيادة> الموضوع واخترت: داكن. انقر فوق نشر وحدد علامة التبويب تصحيح.
افتح الآن جلسة متصفح جديدة في نافذة جديدة وحجمها مثل الهاتف المحمول على جلسة Node Red. أدخل العنوان: عنوان Pi IP الخاص بك: 1880 / ui / # / 0 ، أي شيء مثل 192.168.0.8:1880/ui/#/0. يجب أن تشاهد شاشة بها Lounge and Light والتبديل. انقر فوق مفتاح التشغيل ثم إيقاف التشغيل. يجب أن تعرض نافذة التصحيح حمولات التشغيل والإيقاف. الآن إذا كنت ترغب أيضًا في تسجيل الدخول عبر الهاتف المحمول أيضًا. لاحظ أن موضع التبديل متزامن. لا يهم أن Sonoff لدينا غير متصل بعد. عندما يكون الأمر كذلك ، من خلال الاشتراك في الموضوع ، فسوف يلتقط الرسالة / الحمولة ويعمل على أساسها.
تتمثل الخطوة الأخيرة الصغيرة في جعل Node Red يبدأ تلقائيًا بعد تشغيل Pi.
لدى Node Red دليل على:
ومع ذلك ، تم تحميل الملفات المطلوبة بالفعل لذلك لا يلزم التثبيت.
لتمكين Node-RED بعد ذلك من التشغيل تلقائيًا عند كل تمهيد وعند حدوث أعطال ، أدخل (افتح جلسة PuTTY):
يسمح sudo systemctl بتمكين خدمة nodered
إذا احتجت في أي وقت إلى تعطيل هذا الإدخال:
sudo systemctl تعطيل nodered.service
الآن قم بإغلاق pi مع sudo إيقاف التشغيل الآن وإزالة الطاقة.
لقد تم الآن قفل Pi الخاص بنا وتحميله جاهزًا للعمل. لدينا جهاز الكمبيوتر / الهاتف المحمول الخاص بنا متصلاً بـ Node Red وهذا يتحدث إلى خادم MQTT الخاص بنا. لقد كانت هذه رحلة طويلة وتستحق تربيتة كبيرة على الظهر. أحسنت. لقد وجدت الجزء التالي ، اردوينو ، صفقة جيدة أسهل!
الخطوة 5: إعداد نظام Arduino لإعادة برمجة أجهزة Sonoff
كل المعلومات للقيام بذلك موجودة في Sonoff-Tasmota GitHub. كان الجزء الوحيد الذي واجهت صعوبة في التعامل معه هو نص الموضوع - لكنني دفعتك بذكاء إلى إدخال هذا بالفعل!
انتقل إلى
ستجد إرشادات الإعداد في علامة تبويب Wiki في قسم أدوات التحميل:
بدلاً من متابعة كل خطوة ، سأذكر فقط الجوانب الرئيسية التي شعرت أنها مهمة أو علقت فيها.
التعليمات جيدة ولكنها تحتاج إلى عناية فائقة بالتفاصيل. لقد تعثرت بسبب وجود حاجة لمجلد ESP8266 داخل مجلد كان داخل مجلد آخر يسمى ESP8266 وبالتالي فقد مستويين.
لقد اتبعت التوصية الخاصة بإعداد Arduino منفصل تمامًا. لقد أنشأت مجلدًا جديدًا يسمى "ArduinoSonoff" منفصل عن مجلد Arduino الحالي. الإعداد متقدم جدًا ، وبالتالي فإن إبقائه منفصلاً يعد فكرة جيدة جدًا. إذا كان هذا هو إعداد Arduino الأول الخاص بك ، فتأكد من تثبيته مرة أخرى في "Arduino" أو مجلد آخر لأي عمل Arduino آخر ، بما في ذلك العمل على ESP8266s.
قم بتنزيل أحدث إصدار من Arduino IDE من https://www.arduino.cc/en/Main/Software. قم بفك ضغط الملف في مجلدك الجديد.
تتضمن التعليمات تنزيل نظام Sonoff-Tasmoda من https://github.com/arendst/Sonoff-Tasmota الصفحة الرئيسية عبر: Clone or Download> Download ZIP. قم بفك ضغط الملف في مجلدك الجديد.
اتبع التعليمات بعناية. لم أفعل الخيار الاختياري: التحضير لقسم تحميل OTA. سنترك هذا ليوم آخر.
الآن ابدأ Arduino IDE (انقر نقرًا مزدوجًا فوق arduino.exe). قم بتحميل رسم Sonoff-Tasmota عبر ملف> كراسة الرسم> سونوف. ليست هناك حاجة لعمل أي تعديلات. تتم جميع الإعدادات عبر اتصال تسلسلي بعد تحميل البرنامج الثابت. يتم تخزين هذه في EEPROM. ومن ثم يمكن تحديث البرنامج الثابت والاحتفاظ بجميع الإعدادات. هذه أشياء ذكية جدا. ومع ذلك ، يمكنك تجنب الحاجة إلى بضع خطوات هنا بالانتقال إلى ملف user-config.h وإدخال SSID الخاص بشبكة wifi وكلمة المرور و MQTT_HOST (استبدل المرجع "domus1" - الثاني ، بعنوان Pi IP الخاص بك).قد ترغب لاحقًا في إدخال مستخدم وكلمة مرور MQTT أيضًا. قبل التنزيل ، تحقق من إعدادات اللوحة ضمن الأدوات. ستحتاج هذه بعض التغييرات لمطابقة المتطلبات المنصوص عليها في Wiki. الآن انقر فوق ترجمة (رمز التجزئة). يجب أن يتم تجميع موافق. إذا لم يكن كذلك أو إذا كانت إعدادات اللوحة المطلوبة غير متوفرة ، فارجع وتحقق من كل خطوة من خطوات الإعداد.
الخطوة 6: إعادة برمجة مفتاح Sonoff
نحن الآن جاهزون للتنزيل. في هذه المرحلة ، يمكن للمرء إما المضي قدمًا مباشرة وفلاش مفتاح Sonoff أو يمكن للمرء أولاً وميض وحدة ESP8266. لقد فعلت هذا الأخير ، جزئيًا لأن مفاتيح التبديل الخاصة بي لم تصل بعد (وصلت للتو وأنا أكتب هذا!) ولكن أيضًا كإجراء احترازي لأن وميض مفتاح Sonoff هو خطوة في اتجاه واحد لأن البرنامج الثابت الأصلي غير متاح للجمهور بقدر ما انا على درايه. لدي زوجان من لوحات NodeMCU. هذه سهلة التوصيل ، مع وجود محول USB على متنها إلى محول تسلسلي. ومع ذلك ، فإن طريقة إعادة تعيين nodemcu لا تعمل مع هذا النظام. لذا اترك Tools> Reset Method مضبوطة على "ck". قم بإعداد الفلاش اليدوي العادي بالضغط على زر الفلاش (GPIO 0 على الأرض) أثناء الضغط وتحرير إعادة التعيين (إعادة التعيين إلى الأرض). لست متأكدًا مما إذا كان هذا يحتوي على مهلة أو ربما لم أحمل GPIO 0 منخفضًا لفترة كافية ولكنني كنت بحاجة إلى عدة محاولات ، بما في ذلك القيام بذلك أثناء تجميع Arduino IDE!
إذا كنت ترغب في التحقق من الاستجابات - يكون إخراج الترحيل هو D6 على لوحات NodeMCU. في ESP12 ، هذا هو GPIO 12. ناتج LED هو D7 (NodeMCU) أو GPIO 13 (ESP12's).
مفتاح Sonoff.
تحذير: يجب أن أقول "لا تتصل بالتيار الكهربائي تحت أي ظرف من الظروف حيث يكون الغلاف مفتوحًا". لاحظ أن ثنائي الفينيل متعدد الكلور (على الأقل على Sonoff Basic (مفتاح في الخط) لديه مسافات "عزل واحد" فقط بين قسم الجهد المنخفض والتيار الكهربائي. لذلك يجب على المرء أن يعامل أي جزء من دائرة Sonoff كجهد رئيسي. يُظهر Tasmota GitHub اتصال مستشعر درجة الحرارة والرطوبة بـ Sonoff S20. لن أفعل ذلك بسبب مخاوف العزلة. - لذلك إذا كنت تريد القيام بذلك ، فاحصل على وحدة ESP12 أو NodeMCU وقم بإعداد هذا بشكل منفصل مع عزل مزدوج مناسب أو مصدر طاقة مؤرض.
يعد مفتاح المكون الإضافي Sonoff S20 نقطة انطلاق جيدة لأنه لا يحتاج إلى أي أسلاك رئيسية. يمكن فتح هذا عن طريق إزالة برغي واحد (تحت ختم الأمان) وفتح العلبة. الصورة أدناه توضح مكان العلامات. يساعد الضغط على العلبة في هذه النقاط.
محول تسلسلي USB
المحول المفضل لدي هو إصدار FTDI. ومع ذلك ، فإن هذا لا يحتوي على القدرة الكافية لتزويد احتياجات Sonoff 3.3v. تشير مواصفات FTDI إلى 50ma كحد أقصى. البديل الأفضل التالي هو البديل الذي يستخدم شريحة CP2102. ومع ذلك ، فإن هذا له حد 100ma لا يزال غير كافٍ. من الواضح أن الكثيرين يستخدمون هذا المحول مباشرة ولكن هناك أيضًا تقارير عن فشل التحميل. أود تحديد الوقت الذي يتم توصيله فيه لأنه سوف يسخن تحت الحمل. أفعل هذا على مسؤوليتك. الحل المثالي هو أن يكون لديك منظم 3.3 فولت أيضًا ، على سبيل المثال AMS1117 3.3. لقد صنعت ثنائي الفينيل متعدد الكلور صغيرًا لتمكين ذلك. انظر مبرمج لأجهزة Sonoff.
تسلسلي للبرمجة هو كما يلي:
افتح Arduino IDE.
ضمن أدوات ، تحقق من الإعدادات كما هي في Wiki.
قم بإجراء أي تعديلات مطلوبة على user_config.h. قمت بتعيين Wifi SSID وكلمة المرور وعنوان وسيط MQTT وتفاصيل التوقيت / التوقيت الصيفي.
انقر فوق "تحقق" للتحقق من أنه يجمع "موافق".
قم بتوصيل محول USB التسلسلي (من تلقاء نفسه) بجهاز الكمبيوتر. لاحظ رقم المنفذ.
الآن افصل سلك USB التسلسلي من جهاز الكمبيوتر وقم بتوصيله بمفتاح Sonoff. تحقق من الأرض وأن اتصالات 3v3 هي الطريقة الصحيحة حول (الأرض متصلة بالمستوى الأرضي على Sonoff PCB).
امسك المبرمج بحيث تكون جهات الاتصال آمنة أثناء الضغط أيضًا على الزر.
الآن قم بتوصيل سلك USB بجهاز الكمبيوتر ، وتحقق من صحة رقم المنفذ (في الأدوات) ، ثم انقر فوق تنزيل.
أستمر في الضغط على الزر طوال فترة البرمجة لأنني لا أريد إزعاج الاتصالات.
عند الانتهاء سترى شاشة على النحو التالي:
يحتاج Sonoff إلى بضع أجزاء من المعلومات للاتصال بنظامنا: شبكة wifi المحلية SSID وكلمة المرور ، وعنوان Pi IP. هناك عدة طرق للقيام بذلك ، إحداها هي تعديل ملف config.ino كما هو مذكور سابقًا. إذا كان لديك هاتف ذكي ، يمكنك (بعد إعادة تجميع المفتاح) الضغط على زر Sonoff 4 مرات بسرعة كبيرة لوضعه في وضع خادم الويب. سيومض مؤشر LED. اضطررت إلى المحاولة عدة مرات للحصول على هذا العمل. بعد ذلك ، ابحث على هاتفك الذكي عن شبكة Sonoff الجديدة واتصل بها. ستظهر صفحة ويب حيث يمكنك تعيين البيانات المطلوبة. ينتقل عنوان Pi IP إلى اسم المضيف. لقد غيرت أيضًا SSID الثاني وكلمة المرور إلى شيء طويل وغير قابل للاستخدام بشكل أساسي.
بدلاً من ذلك ، يمكن إعداده عبر الاتصال التسلسلي بعد التحميل مباشرة. افتح Arduino Serial Monitor (تحت الأدوات).
أوامر للدخول:
عرّف SSI الخاص بك على WiFiSSID
كلمة السر yourWiFiPassword
MqttHost 192.168.x.y (عنوان PI IP)
يمكنك أيضًا إدخال SSId1 و Password1 متبوعين بشيء طويل وغير قابل للاستخدام لتعطيل هذا بشكل فعال.
يمكنك الآن تعبئة مفتاح Sonoff ، وفتح Node-Red ولوحة القيادة Node-red والنقر فوق زر التبديل وإلقاء نظرة على علامة تبويب التصحيح التي يجب أن تتضمن الآن الاستجابات من Sonoff. لذلك ، حققنا خطوة رئيسية أخرى - أول مفتاح لدينا يتم تشغيله من جهاز كمبيوتر / هاتف ذكي.
حتى الآن لم نذكر الأمن. هناك إمكانية لاستخدام الاتصالات المشفرة. هذا أمر معقد للغاية من حيث الإعداد وربما يكون أكثر ملاءمة عند استخدام وسيط قائم على السحابة. هناك أيضًا خيار إضافة أسماء مستخدمين وكلمات مرور لجميع الأجهزة المتصلة وعدم السماح للمستخدمين المجهولين. هذا سهل الإعداد. وحتى الآن إلى الأمن.
الخطوة 7: الأمان
يسمح MQTT بأسماء المستخدمين وكلمات المرور لكل عميل. هذا سهل الإعداد. ربما يكون من الأسهل أولاً إعادة تسمية كل جهاز ثم تعيين أسماء المستخدمين وكلمات المرور الخاصة بهم. يمكن القيام بذلك عبر أوامر MQTT ، وربما تكون Node-Red هي أسهل طريقة لإرسالها. حدد أولاً اصطلاح التسمية. أحد الخيارات هو تأسيس الأسماء على الموقع والوظيفة. ثم سترغب في تسجيل اسم المستخدم وكلمة المرور للاسم (الموضوع) جنبًا إلى جنب مع الموضوع الاحتياطي. لاحظ أن هناك أيضًا "خيار إعادة تعيين" لإعادة تعيين إعدادات Sonoff إلى التنزيل الأصلي (راجع استخدام Wiki> وظيفة الزر).
قم بتشغيل pi وبعد بضع ثوانٍ افتح متصفحًا لـ Node-Red (عنوان IP: 1880).
في Node-Red ، قم بإعداد عقدة حقن واربطها بإخراج mqtt وقم بتعيين خادم mqtt إلى المضيف المحلي. اترك الموضوع والمستخدم وكلمة المرور فارغة لأننا سنقوم بتعيينها في عقدة الحقن. قم أيضًا بإعداد عقدة إدخال mqtt وقم بتوصيلها بعقدة تصحيح الأخطاء حتى نتمكن من رؤية الردود. عيّن ملاحظة إدخال mqtt على المضيف المحلي (يجب أن يكون قد تم تعيينه بالفعل) وأدخل + / + / + للموضوع حتى يلتقط كل حركة المرور.
أدخل التسلسل التالي من الإعدادات في عقدة الحقن.
تحقق أولاً من الاتصال بـ
الموضوع: cmnd / sonoff / Status
الرسالة: 6
انقر فوق "الإدخال مرة واحدة عند البدء". نشر. يجب أن نرى تصحيح الأخطاء بما في ذلك 7 أسطر من البيانات من stat / sonoff / STATUS6
أدخل الموضوع: cmnd / sonoff / الموضوع والرسالة: loungelight. نشر. هذا يغير اسم التبديل من sonoff إلى loungelight
يجب أن تُظهر علامة تبويب التصحيح إعادة تشغيل الجهاز باسمه / موضوعه الجديد
الموضوع: cmnd / loungelight / MqttUser
الرسالة: loungelight
انقر فوق نشر. يجب رؤية تصحيح الأخطاء من stat / loungelight / RESULT مع {“MtqqUser”: “loungelight”}
الموضوع: cmnd / loungelight / MqttPassword
الرسالة: loungelightPW (لاحظ أن تكون أكثر إبداعًا من هذا!)
امسح علامة تبويب التصحيح ثم قم بالنشر.
يجب مشاهدة الرد من stat / loungelight / RESULT مع {"MqttPassword": "loungelightPW"}
أدخل الآن NodeRed و NodeRedPW كاسم مستخدم وكلمة مرور في عقدة mqtt out. هذا عبر أيقونة قلم الخادم وعلامة تبويب الأمان في النافذة التي تفتح. يتم نسخ هذا تلقائيًا إلى عقد MQTT الأخرى.
تحقق مرة أخرى مع
الموضوع: cmnd / loungelight / الحالة والرسالة: 6. نشر.
وأن يتم إرسال الرد.
لذا في هذه المرحلة ، قمنا بإعادة تسمية جهاز Sonof الخاص بنا بحيث يستمع إلى مواضيع cmnd / loungelight / …… وسيسجل الدخول إلى خادم MQTT باستخدام اسم المستخدم loungelight وكلمة المرور loungelightPW. لقد قمنا أيضًا بتعيين اسم مستخدم وكلمة مرور لـ Node-Red.
بعد ذلك ، يتعين علينا إخبار خادم MQTT من البعوض بقبول العملاء الذين لديهم أسماء مستخدمين فقط وإدراج أسماء المستخدمين وكلمات المرور المراد قبولها.
الإجراء هو:
- أوقف البعوض
- قم بإنشاء ملف التكوين الخاص
- تحرير ملف التكوين
- إنشاء ملف كلمة المرور
- أضف مستخدمين / كلمات مرور.
لذا قم بتسجيل الدخول بجلسة PuTTY جديدة وقم بتشغيل الأوامر التالية:
sudo /etc/init.d/mosquitto stop
cd /etc/mosquitto/conf.d/
sudo nano mosquitto.conf يؤدي هذا إلى تشغيل المحرر.
إضافة سطور:
allow_anonymous false
password_file /etc/mosquitto/conf.d/passwd
تتطلب_certificate كاذبة
احفظ واخرج (Ctrl + X) ، Y ، أدخل.
sudo touch passwd يؤدي هذا إلى إنشاء ملف كلمة مرور وتضيف الإرشادات التالية أسماء وكلمات مرور.
sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd loungelight loungelightPW
sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd NodeRed NodeRedPW
sudo /etc/init.d/mosquitto لإعادة التشغيل
لاحظ عند إضافة جهاز جديد ، سيتعين عليك إما إدخال المستخدم وكلمة المرور عبر المنفذ التسلسلي وإضافتهما إلى ملف كلمة المرور أو تغيير ملف تهيئة البعوض مؤقتًا والتعليق (إضافة # في بداية السطر) السطور "allow_anonymous false "و" password_file /etc/mosquitto/conf.d/passwd "ثم أعد تعيينهما عند إرسال التفاصيل إلى الجهاز وإضافتها إلى ملف كلمة المرور على النحو الوارد أعلاه.
لقد قمنا بتغيير اسم Sonoff إلى loungelight ولذا قمنا بتحديث عقدة الإخراج mqtt (المتصلة بالمحول) لاستخدام الموضوع cmnd / loungelight / POWER.
انقر فوق نشر وتحقق من عرض عقد mqtt "متصل".
بعد ذلك ، جرب زر التبديل وابحث عن التصحيح الذي يظهر استجابة Sonoff التبديل. ستلاحظ أن الجهاز يعرض التغيير بموضوع: stat / loungelight / POWER. لذا الآن قم بتغيير عقدة الإدخال التي تم تعيينها على cmnd / sonoff / POWER إلى stat / loungelight / POWER. يمكننا استخدام هذا غطاء فجوة في وظائفنا. ستتم مزامنة النظام كما تم إعداده مبدئيًا مع جميع المستخدمين المسجلين ولكن لن تتم مزامنته مع تغييرات التبديل التي تم إجراؤها عن طريق الضغط على الزر الموجود على مفتاح Sonoff. لذا الآن قم بتوصيل إخراج عقدة الإدخال stat / loungelight / POWER mqtt بإدخال المفتاح (LHS). الآن انقر نقرًا مزدوجًا فوق المفتاح وقم بإلغاء تحديد "إذا وصلت الرسالة إلى الإدخال ، فمرر إلى الإخراج". يؤدي ذلك إلى ظهور بعض الخيارات الجديدة - حدد "رمز التبديل يظهر حالة الإدخال". نشر. حتى الآن لدينا حلقة ردود فعل جيدة. سيتغير موضع مفتاح لوحة القيادة دائمًا عندما يتغير مفتاح Sonoff ، بغض النظر عن مكان بدء التغيير.
لذلك لدينا الآن نظام أتمتة منزلي آمن ومستقل جاهز للعمل وجاهز للتوسع إلى ما تريد القيام به. في القسم التالي ، سأغطي بعض تجاربي حتى الآن والتحديات التي أخطط لمواجهتها.
الخطوة الثامنة: الخطوات الأولية للتوسع
لديّ مجلس تطوير آخر من Sonoff-Tasmota Sensors LEDs للتشغيل الآلي للمنزل يُظهر بعض الإمكانات الإضافية للبرامج الثابتة Sonoff-Tasmota:
قياس درجة الحرارة والرطوبة
كشف الدخيل (مفتاح الإدخال)
جهاز التحكم عن بعد بالأشعة تحت الحمراء (لأجهزة التلفزيون وغيرها)
سلاسل LED - كل من RGB و NeoPixel (يمكن توجيههما بشكل فردي)
مجسات I2C
لما سبق أنا أستخدم ESP12F وثنائي الفينيل متعدد الكلور مخصص. يمكن استخدام NodeMCU واللوح على حد سواء. يتيح ذلك هذه الوظائف الإضافية دون توصيل أسلاك بجهاز Sonoff ، وبالتالي فهو نهج أكثر أمانًا. بفضل مدخلات درجة الحرارة ، تمكنت من إكمال أتمتة البطانية الكهربائية.
يمكن إضافة الموسيقى وراديو الإنترنت بسهولة. يفتح هذا خيارات للحصول على محطات أو ألبومات معينة تأتي في أوقات محددة أو ربما استجابةً لاكتشاف زائر (هاتف). هذا التوجيه المرتبط موجود في مشغل الموسيقى عالي الجودة وراديو الإنترنت مع التحكم في الهاتف الذكي. نظرًا لأن هذا مدفوع أيضًا بواسطة Node-RED ، فمن الممكن أن يكون لديك أكثر من نظام صوتي واستخدام اتصال MQTT لقيادتها.
لقد كنت أستكشف أيضًا Node-Red ، بما في ذلك إرسال رسائل البريد الإلكتروني وإجراء التنبيهات الصوتية. هناك أيضًا احتمال أن يكتشف النظام وقت دخولك / خروجك - عن طريق اختبار اتصال عنوان IP الخاص بهاتفك المحمول. يمكن لـ Node-Red أيضًا الوصول إلى الطقس والأخبار - بحيث يمكن للمرء إضافة معلومات وكذلك القيام بالأتمتة.
هناك بعض الحيل التي يجب تعلمها - لكنها تصبح ميتة بسهولة في المرة الثانية.
طريقة أخرى هي إضافة عرض إلى pi لإظهار لوحة القيادة. هذا "عمل مستمر" - أو بعبارة أخرى لست سعيدًا جدًا. من الصعب تدوير الشاشة التي حصلت عليها في الوضع الرأسي ومتصفح Chromium بطيء بشكل مؤلم. سيكون البديل هو التقاط جهاز لوحي قديم على موقع ئي باي واستخدامه. قد أحاول استخدام Pi 2 ومعرفة ما إذا كان ذلك يوفر قدرًا كافيًا من التحسين (النموذج B المستخدم لهذا التطوير).
آمل أن يكون هذا هو البداية ويكون خيالك يطن. النطاق المحتمل ضخم. يمكن للمرء حتى تعديل كود Sonoff لأجهزة الاستشعار الأخرى إذا لزم الأمر.
بشكل عام ، لقد اندهشت مما يمكن أن يفعله هذا النظام. كان هدفي الأصلي هو مجرد تشغيل مفتاح من الهاتف الذكي بطريقة موثوقة عبر نظام مستقل. كانت لدي رؤى حول الحاجة إلى إدارة الخوادم والعملاء وكتابة لغة تأشير النص الفائق لواجهة مستخدم. حيث انتهى الأمر قبل ذلك بكثير ، مع أمان أكبر وموثوقية ممتازة وواجهة مستخدم رائعة وبرمجة السحب والإفلات وإمكانات هائلة للتوسع. وكل هذا بجهد أقل بكثير.
مايك
الخطوة 9: الملحق - التحميل من Raspbian Stretch Lite
يتجنب هذا الخيار برامج bloatware التي تأتي مع إصدار Raspbian Stretch الكامل. لن تكون هناك حاجة إلى معظم هذا عند استخدام Pi لأتمتة المنزل. ومع ذلك ، يجب تثبيت Node-Red.
تابع كما في الخطوة 1 ولكن باستخدام Raspbian Stretch Lite بدلاً من Raspbian Stretch.
بدلاً من الخطوة 2 ، قم بما يلي:
sudo apt -y install npm
يجب أن تعود npm -v: 1.4.21 أو أحدث
تثبيت sudo npm -g n
sudo ن 8.9.0
يمكننا الآن استخدام مدير حزم العقدة لتثبيت Node-Red:
تثبيت sudo npm node-red-global-unsafe-perm
سيعطي هذا بضع رسائل خطأ بسبب عنوان غير صحيح. ومع ذلك ، يقوم النظام "بترجمة المصدر" لتصحيح هذه المشكلة. إذا كررت التعليمات أعلاه (ليس ضروريًا) فلن تحدث الأخطاء.
لدينا الآن Node-Red وحزمه الداعمة مثبتة ويمكننا الانتقال إلى الخطوة 3 ، تحميل البعوض.
الوصيف في مسابقة اللاسلكي