ما يجب القيام به في عطلة نهاية الأسبوع: نظام داخلي للتحكم عن بعد ، إعادة تعيين الميزانية بدون ميزانية ، المواجهة مع Onlaym



في بعض الأحيان ، يُعتبر الخيال يوم الجمعة مقبولًا هنا. اليوم ، بالطبع ، ليس يوم الجمعة ، لكنه ليس خياليًا تمامًا ، بل ثلاث روايات مصغرة لها علاقة بحياتي.

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

ولكن عن كل شيء (اردوينو ، قراصنة الحياة العادية ، الشجار الهاتف) بالترتيب.



سيم سيم ، افتح!


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

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

بالنسبة للناس العاديين ، يبدو الأمر غريبًا جدًا ، ولكن كما يقولون ، حسب كل إعلان.

وأردت حقًا أن استخدم بطريقة أو بأخرى مرحلتين في الحالة ، والتي كانت خاملة في وحدة التحكم المركزية منذ بداية عملها. في الواقع ، الوضع مثير للسخرية: في ذلك الوقت لم يكن هناك سوى كتلة لأربع مرحلات في متناول اليد ، منها اثنان فقط. ولم أكن أرغب في الانتظار لمدة شهر آخر لحظر التتابع ، لذلك جمعت من ما هو متاح وبدأت على الفور تقلق بشأن التكرار.

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

هذا هو أروع شيء رأيته في هذا الفصل.

ولكن قبل ذلك بكثير ، زوار RadioKota والعديد من المنتديات المواضيعية الأخرىاستمتع بأجهزة مثل "opener" - فتح الاتصال الداخلي فورًا على المكالمة.

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

وبطبيعة الحال ، بالنسبة لي ، وليس على الإطلاق. أي أنني لا أحب بشكل قاطع المخطط ، الذي يفتح الباب لأي شخص يطلب رقم شقة.

ومن هنا المتطلبات الأساسية لفتحتي:

1) استخدام وحدة تحكم مركزية للتحكم عبر الإنترنت والراديو
2) الحد الأدنى من الحماية ضد الوصول غير المصرح به
3) الحد الأدنى من التدخل في الداخل

ابدأ



لقد بدأت بتعريف نفسي بمبدأ تشغيل الاتصال الداخلي ، الذي استعرته هنا :

يعمل الأنبوب ببساطة شديدة: عندما يتم وضع الأنبوب ، يكون لديه مقاومة 50 أوم ، عندما تتم إزالة الأنبوب ، تكون المقاومة تقريبية. 400 أوم ، عند الضغط على زر تحرير القفل ، يتم قياس المقاومة بالكيلو أوم ... عندما لا يكون هناك مكالمة ، لا يوجد جهد في الخط. عندما تأتي مكالمة ويضع الهاتف تيارًا كبيرًا وتبين أن الجهد صغير 5-7 فولت ، عندما يكون الهاتف غائبًا ويتم استدعاء المقاومة إلى اللانهاية والجهد كحد أقصى. 15 فولت عندما يكون الهاتف متوقفًا عن الجهد حوالي 10 فولت. عند الضغط على زر الجهد ، يكون الحد الأقصى تقريبًا. 15V - الضغط على الزر يساوي فاصل الأسطر.


في حالة Digital ، هذا مختلف قليلاً ، لأن وثائق الهاتف ، لكني حصلت على KM-2NO (بالمناسبة ، أعبر عن امتناني لـ Digital لنشر المخطط) يشير إلى:

1. الاستهلاك الحالي في وضع "الحديث" 18-22 مللي أمبير
2. الجهد في الخط مع أنبوب مثبت على السكن 1.5-2.5 فولت
3. الجهد في الخط مع أنبوب مرتفع 5.8-6.5 فولت


لذلك ، تعرفت بمزيد من التفصيل على مخطط الدائرة للأنبوب الخاص بي:



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

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

وهي: صوت المكالمة ، LED "يضيء" ، يتم تشغيل optocoupler ، على دبوس التحكم لدينا تغيير في المستوى من الأعلى إلى الأقل.

لذلك ، بدلاً من LED ، قمت بتثبيت جهاز optocoupler 4N35 الخاص بي ، والذي أرسلته مباشرة إلى Arduino. وفقًا للمخطط القياسي من نفس الإنترنت:



وبما أنني كنت أرغب في الحصول على الحد الأدنى من التفاصيل وموارد التحكم المتاحة ، والتي كانت الدبابيس الرقمية هي الأكثر قيمة (لم يكن Uno كافياً بالنسبة لهم) ، بدلاً من المقاوم القابل للسحب 10K ، استخدمت المقاوم القابل للسحب Arduino المدمج.

عند التوصيل بدبوس رقمي ، يبدو كما يلي:

#define ringPin _

pinMode(ringPin, INPUT_PULLUP);


عند التوصيل بدبوس تناظري:

#define ringPin _

pinMode(ringPin, INPUT);
digitalWrite(ringPin, HIGH);


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

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

تخلص مني!


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

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

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

إلى متى ، لفترة وجيزة ، قرروا أن الأمر كان في الباب نفسه ، حيث تم قفل القفل. في رأيي ، اقترحوا أنه عندما تم تثبيته ، تمسكوا في المحرك ، والذي ، بدوره ، كان مؤرضًا ، مما أدى إلى تأثيرات غير متوقعة على القفل (والتي ربما كان لها قفل تحكم في الحالة).

بشكل عام ، قاموا بفرزها لفترة طويلة ومملة. وأنا لا أريد أن أكرر نفس الشيء في المنزل.

لذلك ، لم أحفظ الأسلاك وقمت بتوصيل جهات اتصال الترحيل بأبسط طريقة:

1) إغلاق التتابع عادة - في سلسلة مع الزر لأعلى SW1 (لأن هذا الزر مغلق في الحالة الطبيعية)
2) فتح التتابع عادة - بالتوازي مع زر فتح باب SB1 ( لأن هذا الزر مفتوح عادة)

اتصالات التحكم في التتابع ، بالطبع ، متصلة بالدبابيس الرقمية المجانية (لا تزال ، كانت لا تزال) من وحدة التحكم الدقيقة.

في المجموع ، من السهل أن نتخيل أنها استغرقت ستة أسلاك: اثنان لل optocoupler وأربعة أخرى للتتابع.

أعتذر عن بدائية الرسم التوضيحي:

من الاتصال الداخلي




من اردوينو




يتم عرض المرحلات هنا بشكل حصري. منذ ذلك الحين ، أكرر ، استخدمت وحدات ترحيل جاهزة مع حشو كامل - optocouplers ، الترانزستورات ، الثنائيات ، وما إلى ذلك. أوصي بشدة بعدم ربط المرحلات العارية بـ Arduino.

... ولا تتصل بي بعد الآن!


بالفعل في هذه المرحلة ، تمكنت من فتح هاتف

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

على سبيل المثال لفترة أطول ، ليس هناك معنى في البقاء مفتوحًا مشروطًا.

2) عند استلام أمر مفتوح عبر الإنترنت (HTTP POST) ، تقوم وحدة التحكم بتبديل التتابع بالتتابع. أولاً ، يفتح تتابع الأنبوب ، والذي يحاكي صعوده. ثم ، بعد توقف قصير ، يتم إغلاق مرحل زر الفتح ، وبالتالي محاكاة الضغط. بعد - "تحرير" الزر و "تعليق" الهاتف.

كان منضدة الاختبار بدائية للغاية:



سيكون من الممكن التوقف عن هذا إذا لم أكن ، بصفتي المالك الفخور لـ KTsDV-12-2 ، على دراية بمدى الإزعاج - للتجول حول جهاز التحكم عن بعد أو الهاتف في كل مرة تحتاج فيها إلى تشغيل / إيقاف شيء ما.

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



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

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

1) افتح القفل

2) ارفع السماعة وببطء (وفقًا للوثائق ، تستمر المحادثة 1.5 دقيقة مقابل 40 ثانية من المكالمة) ، وانتقل إلى الاتصال الداخلي ، وأجب وحدد ما إذا كنت ستفتح أم لا

3) الرد على المكالمة (تلتقط وحدة التحكم وعلى الفور "Hangs up")

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

بالمناسبة ، لا تبدو الواجهة الجديدة مثل HAL على الإطلاق. الآن ، كل شيء ملون للغاية ومضحك بحيث عليك فقط أن تضحك. وترى ، تفهم: لم أشرب العصائر ، لم يعجبني محبو موسيقى الهيب ، لم تكن هناك حمالات في الأسرة ، والمواد تسحبني كما لم يحدث من قبل في حياتي:



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

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

القلعة على اليسار هي افتتاح القلعة. الهاتف على اليمين - التقاط السماعة لمحاكاة بداية المحادثة.

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

الخوارزميات


كما ذكرت ، في البداية كنت متواضعة وأردت شيئًا واحدًا فقط: فتح الاتصال الداخلي عند الطلب من الهاتف ، وفي وقت المكالمة.

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

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

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

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

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

لذلك ، الوضع واحد والأمر واحد ، وهناك معالجان:

1) إذا رنين الاتصال الداخلي ، تسمح وحدة التحكم بالفتح خلال 40 ثانية من بدء المكالمة

2) إذا تم استلام أمر الفتح أولاً ، فإن وحدة التحكم تسمح بالفتح وتنتظر مكالمة في غضون N دقيقة من لحظة استلام الأمر (هذا لإعداد الاتصال الداخلي لفتح في الطريق إلى المنزل)

يمكن أن يكون هناك مصدران لأمر الفتح:

1) HTTP POST- طلب من خلال شبكة محلية أو الإنترنت (على سبيل المثال: myserver.com/؟sim-sim-openup ) ، أي يمكنك فتح على الأقل من كوالالمبور

2) أمر الراديو من لوحات أو أزرار المنزل (في التنفيذ الخاص بي ، من خلال مكتبة RC-Switch )

وبما أن الهيكل بأكمله متصل بالهاتف دون التأثير على أدائه ، يمكن الاستمرار في استخدام الاتصال الداخلي بالطريقة المعتادة (زر الجرس - hi-hi-button) ، أي المحلية ، غير قادرة على تقدير مزايا التقدم التكنولوجي ، وغير مطلوبة للخوض في التفاصيل.

مكافآت مفاجئة


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

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

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

والمناظر الطبيعية


نظرًا لأنني ناضلت للحصول على الحد الأدنى من التداخل في الداخل ، كان عليّ اتخاذ قرار حول كيفية الاتصال بوحدة التحكم المركزية ، على أساس أن وحدة التحكم وهاتف الباب كانتا على جوانب مختلفة من الباب ، وأن وحدة التحكم بها كهرباء ، ولكن هاتف الباب لم يكن كذلك.



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



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

إعادة تعيين التالي


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

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

تعمل هذه الحيلة بشكل غير مستقر وليس دائمًا ، ولكن غالبًا ما يكفي حتى أتمكن من تحملها ، مع التفكير في طلب شاشة جديدة.

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

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

لذا ، اكتشفت ذلك ، غيرت حجم الأزرار قليلاً ، ولفتت دائرة تحكم افتراضية جديدة في رأسي وفويلا! لقد قمنا تقريبًا باستعادة وظيفة شاشة معطلة جزئيًا.

كان:



أصبح:



على الرغم من ذلك ، كان عليّ أن أقتل شخصًا مثاليًا في نفسي وأعيد شاشة التحكم في هاتف الدخول الأصلي إلى شاشة تعمل بأقل قدر ممكن:



عيش




عندما لا يكون الدعم الفني مزر


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

أي أن جميع الأوامر عملت بشكل لا تشوبه شائبة عند الاتصال بالإنترنت من خلال الشبكة المنزلية والعناوين الخارجية (وليس وفقًا للنوع الداخلي 192.xxx.xxx.xxx) ، لكنهم رفضوا بشكل متساوٍ التنفيذ من شبكات المشغلين الآخرين (جربت اثنين).

يجب أن تفهم على الفور أن الأوامر يتم إرسالها عبر طلب HTTP إلى منفذ خارجي معين للموجه ، ومن هناك تتم إعادة توجيهها بالفعل إلى IP والمنفذ الداخليين الضروريين.

وقد نجح هذا المخطط دون أدنى مشاكل منذ إطلاقه في عام 2013 حتى حدث كسر في المرحلة الحالية. وما زلت متأكدًا أن هذا ليس خطئي. لكني لا أعرف كيف أتحقق.

في الواقع ، في البداية أردت أن أقسم بـ Beeline ، لأنني اعتقدت في البداية أن المشكلة كانت في الإنترنت عبر الهاتف المحمول. ولكن بعد ذلك جمعت نفسي معًا ، وجدت مزودًا آخر ، جربته واكتشفت أنه من خلاله نفس المشكلة.

ثم اتصلت بـ Onlaym ، وكما استطعت شرح جوهر المطالبات. وردًا على ذلك ، أوضحوا لي بشكلٍ شعبي أنه:

:
TCP/25 – -;
TCP/135-139, TCP/445 UDP/135-139 – , MS Windows;
TCP/23, TCP/161, UDP/69 UDP/161– .

, , .


أصررت بدورها على أن المنفذ الخاص بي أ) لا يقع في هذا النطاق ، ب) لا يعمل ، كما هو متوقع و ج) لم أغير أي شيء.

ماذا عن جدار البازلاء.

حسنًا ، ماذا يجب أن أفعل ، ثم شرحت بأدب أنه على الرغم من أنني أفهم أن بلدي المؤسف 450 روبل في الشهر لن يؤدي إلى الطقس بالنسبة لهم ، ولكن من هذا النوع من الهراء ، سأبحث عن نفس هذا الهراء ، ولكن على الأقل العمل.

رداً على ذلك ، تمتموا مرة أخرى أنهم كانوا يوفرون لي IP ، ثم كل مشاكلي. حسنا ، قررت ، ثم لي. وبقرار قوي الإرادة ، راجعت أولاً تشغيل النظام على منفذ آخر (تحول إلى وحدة) - يعمل. ثم قام بعمل تكوين مرن لرقم المنفذ في تاسكر ، والذي من خلاله تكون عجلة القيادة أوتوماتيكية.

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

خارج الشاشة


في الختام ، الذي استخدمته لبناء القرن:

1) KTSDV-12-2 - 1 pc.
2) سماعة هاتف رقمي KM-2NO - 1 جهاز كمبيوتر.
3) Optocoupler 4N35-1 جهاز كمبيوتر.
4) كابل مسطح 10 نوى (يستخدم ستة ، ولكن ضع كل شيء - فقط في حالة) - 3 م
.5) موصلات للكابل - 2 قطعة. الآباء والأمهات
6) عرض طقس محلي الصنع مع شاشة لمس Nextion - 1 جهاز كمبيوتر.
7) جهاز إرسال 433 MHz ( من مجموعة كهذه ) لتعديل عرض الطقس - 1 جهاز كمبيوتر.
8) 1 كيلو أوم المقاوم لل optocoupler - 1 جهاز كمبيوتر.

الخيارات:

واجهة محدثة لـ Nextion

كود الاختبار (قبل الدمج مع KTSDV-12-2 وباقة كاملة من وظائف الخدمة ، لفهم قطار التفكير فقط)
#include <RCSwitch.h> //   http://code.google.com/p/rc-switch/


#define ringTimeOut 40000 //       2094
#define openTimeOut 300000 //    allowOpen        
#define handsetPin A3 //    0
#define openPin A4 //    (1)
#define ringPin 7 //   (3)
#define ringCode 360500 //        
#define doorBell 3395840 //       
#define openCode 255899 //     
#define openDelay 1500 //    
#define handsetDelay 2500 //    
#define txPin 8

unsigned long ringTime, openTime; //    
boolean ring = false;
boolean ringRepeat = false; //       
boolean allowOpen = false; //     

RCSwitch mySwitch = RCSwitch();

//  
void openDoor() {
    
    digitalWrite(handsetPin, LOW);
    delay(handsetDelay);
    digitalWrite(openPin, LOW);
    delay(openDelay);
    digitalWrite(openPin, HIGH);
    digitalWrite(handsetPin, HIGH);
    ring = false; //   
    allowOpen = false; //      
    // sendMail(37); //           
}


void setup() {
  Serial.begin(9600);
  mySwitch.enableTransmit(txPin); //  
  mySwitch.enableReceive(0); //  
  pinMode(handsetPin, OUTPUT); //    
  pinMode(openPin, OUTPUT);
  pinMode(ringPin, INPUT_PULLUP  );
  digitalWrite(handsetPin, HIGH); //  
  digitalWrite(openPin, HIGH);
  Serial.println("Ready");
}

void loop() {
  
  if (digitalRead(ringPin) == LOW && ring == false) { //            
    ring = true; //    
    ringTime = millis();
    // sendMail(36); //     
    mySwitch.send(ringCode, 24);
    Serial.println("Sent ringCode");
    if (ringRepeat == true) { //      
      mySwitch.send(doorBell, 24);
      Serial.println("DoorBell repeat");
    }
    Serial.println("Ring-ring!");
  }

if ((millis() - ringTime) > ringTimeOut && ring == true) { //   40  (   )    
  ring = false; //   
  Serial.println("Ring reset");
  // sendMail(38); //      
}

//   
if (ring == true && allowOpen == true) {
  openDoor(); //  
  Serial.println("Door opened via net");
}

if (ring == false && allowOpen == true) { //  ""   
  if ((millis() - openTime) > openTimeOut) { //       
   allowOpen = false; 
   // sendMail(39); //     
  }
  
}

//   

if (mySwitch.available()) { //
    int value = mySwitch.getReceivedValue();
    if (value != 0) {
      Serial.println(mySwitch.getReceivedValue());
      switch (mySwitch.getReceivedValue()) {
        
        case openCode: //   
          if (ring == true) {
            mySwitch.disableReceive();
            openDoor(); //  
            Serial.println("Door opened via radio");
            mySwitch.enableReceive(0); //   
          }
          break;
    }
    mySwitch.resetAvailable();
  }

//   
}

}






لقد التقطت الصور للواجهة على موقع Pixabay الرائع .

Source: https://habr.com/ru/post/ar400367/


All Articles