قم بإنشاء موقع ويب ESP8266 للتحكم في ما يصل إلى 8 مرحلات على جهاز تحكم ترحيل القناة XC4418 8

استخدم المرحلات دون عناء مع هذا الإعداد البسيط المكون من جزأين! ما عليك سوى توصيل أي جهاز تريد اختباره أو تنشيطه بوحدة الترحيل ؛ ثم استخدم تطبيق الهاتف المبني للسيطرة عليها وقتما تشاء. قم بتعيين التبادل للتبديل أو المؤقت أو التنشيط لحظة ؛ وحتى وضعهم يذهب في أوقات معينة في اليوم. رائع لمجموعات سقي النباتات التلقائية ، وأجهزة اختبار ، أو أضواء التحكم أو أي حمل آخر يصل إلى 10 أمبير.
| كتي | شفرة | وصف |
|---|---|---|
| 1 | XC4418 | 8 وحدة تحكم ترحيل القناة |
| 1 | XC4411 | UNO مع wifi |
كما هو الحال دائمًا ، يجب أن تكون مكتبة ESP8266 مثبتة في أداة Arduino IDE ، إلى جانب المكون الإضافي ESP8266 Data-Upload. إذا لم يكن الأمر كذلك ، يمكنك الحصول على أي واحد من الأسفل:
هذا النظام هو إعداد بسيط جدا. كما نعلم ، فإن XC4411 عبارة عن UNO و ESP مجتمعة في إعداد لوحة واحدة. سيتعامل جزء ESP مع تشغيل برنامج "تطبيق ويب" بسيط ، والذي سيتواصل بعد ذلك مع UNO.

سيكون الجزء UNO من الكود مسؤولاً ببساطة عن تنشيط المرحلات والتحكم فيها بمجرد استلام الأمر.
يربط XC4411 كلاً من UNO و ESP معًا من خلال المنفذ التسلسلي ، مما يعني أنه سيتعين علينا ببساطة القيام ببعض Serial.read() و Serial.write() للتواصل بين اثنين منهما. لإبقاء الأمور بسيطة ، سنبقي تدفق البيانات في اتجاه واحد ، وبالتالي فإن ESP لن تعرف أبدًا كيف تبدو المرحلات ، مما يعني أن تطبيق الويب لن يتمكن من إظهار شكل المرحلات الفعلية ، لكن يمكننا تقديم تخمينات بسيطة.
هذا بناء بسيط من وحدة واحدة ، وذلك بفضل بساطة لوحة XC4411.

ما عليك سوى توصيل 5V و GND بأعلى دبابيس من لوحة الترحيل ، (يجب أن تجد أنه تم تسمية VCC و GND ). ثم قم بتوصيل جميع الأخرى IN# بالدبابيس الرقمية لـ UNO. لإبقاء الأمور بسيطة ، نحتفظ بالدبابيس بالترتيب ، بدءًا من Pin 2 والانتقال إلى Pin 9 - سيتطابق هذا مع ما هو موجود على لوحة الترحيل ، بدءًا من الجانب السفلي.
إنها فكرة معقولة للحفاظ على علامة التبويب الخضراء بين دبابيس COM و GND على لوحة الترحيل أيضًا.
على XC4411 ، يجب أن تجد صفًا من تبديل DIP. يتم استخدام هذا لتعيين الوضع الذي يوجد فيه الجهاز.

(لنا قذرة بعض الشيء بسبب عدد المرات التي نستخدمها).
بالنسبة لهذا القسم ، سنرغب في برمجة الجانب UNO للأشياء ، لذا استخدم قلمًا أو غير ذلك لضبط أدوات التبديل على هذا النحو:
| دبوس | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| ولاية | عن | عن | على | على | عن | عن | عن | عن |
ثم افتح الجزء uno/uno.ino من الكود في محرر Arduino IDE ، وتحميله كالمعتاد.
يجب أن تكون قادرًا على اختبار هذا الجانب من الأشياء ، عن طريق فتح Serial Monitor ووضع الخيارات على:
115200 باودثم اكتب أمرًا مثل:
>4a
إذا كنت ترغب حقًا في تصحيح الرمز ، فيجب أن تجد بعض التعريفات على السطر 10 و 11 من رمز UNO. واحد على السطر 10 سوف يخرج النص المشابه أدناه.

لن يفعل الآخر (على السطر 11) شيئًا ، وسيقوم ببساطة بتشغيل الترحيل. تريد تحديد السطر 11 عند الانتهاء من المشروع.
اضبط أدوات الانخفاض على النحو التالي.
| دبوس | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| ولاية | عن | عن | عن | عن | على | على | على | عن |
بالنسبة لهذا الجزء ، تحتاج إلى فتح رمز ESP/ESP.IN في Arduino IDE ، وتغيير نوع اللوحة إلى لوحة Generic ESP8266 .
قم بتغيير "حجم الفلاش" للبرنامج ليكون 4M (3M SPIFFS) - سيؤدي هذا إلى إخراج جزء من الكود حتى نتمكن من وضع data/ مجلدنا. ستجد رمز موقع الويب الخاص بنا في مجلد البيانات ، والذي نريد وضعه على كل شيء على ESP. فيما يلي لقطة شاشة لإعداداتنا.

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

هذا يعني فقط أن IDE تنتظر إعادة تشغيل ESP. اضغط على زر RESET على اللوحة عندما ترى IDE تظهر هذه الرسالة. يجب تحميله بدون عقبة.
بمجرد الانتهاء من الرمز ، استخدم ESP Data Upload Tool (كما هو موضح في الصورة أعلاه) لتحميل موقعنا على موقع ESP. سوف تضطر إلى الضغط على زر إعادة الضبط مماثلة من قبل. بمجرد برمجته ، يمكنك إيقاف تشغيل Switch 7 وفتح الشاشة التسلسلية لمعرفة ما هو المخرج الذي يتمتع به ESP عند الاتصال بنقطة Hotspot "Relay Controller" وانتقل إلى http://192.168.4.1 - أو تستمر فقط.
على غرار رمز UNO ، لدينا مجموعة أخرى من التعريفات لتصحيح الأخطاء. يمكنك تمكين أو تعطيل رسائل التصحيح بهذه الطريقة.
بعض الأشياء المهمة التي يجب تذكرها ، عند تغيير الكود:
Flash size كما هو. إذا قمت بتغييره ، فسيتعين عليك إعادة تحميل كل من الرمز والموقع.بمجرد برمجة النصفين ، قم أخيرًا بتبديل مفاتيح DIP إلى ما أدناه.
| دبوس | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| ولاية | على | على | عن | عن | عن | عن | عن | عن |
سيؤدي هذا إلى ربط مسلسل ESP بسلسلة UNO. الآن يتم تشغيله فقط بواسطة USB ولن يتم توصيل الشاشة التسلسلية بأي شيء.
افتح شبكة WiFi الخاصة بهاتفك وأعد تشغيل XC4411 - يجب أن تجد أن هناك شبكة لاسلكية جديدة تسمى "Relay Controller". اتصل به ، ثم افتح المتصفح وانتقل إلى: http://192.168.4.1

موقع الويب ليس كثيرًا للنظر إليه ، لكنه يعمل. يجب أن تكون قادرًا على الضغط على الأزرار والعثور على المرحلات التي تم تشغيلها وإيقافها. إذا كنت تعرف كيفية جعل موقع ويب يبدو جيدًا وترغب في الحصول على لقطة لجعل هذا يبدو أفضل ، فاحصل على تطوير data/ مجلد جديد وإرساله في علامة التبويب GitHub Commise ، أو تافز الريبو وتقديم طلب سحب.
إذا وجدت بعض الأشياء التي لا تعمل ، قم بتوصيل جهاز الكمبيوتر الخاص بك بالشبكة (بدلاً من ذلك ، قم بتوصيل ESP بشبكتك الرئيسية) وافتح موقع الويب على جهاز الكمبيوتر الخاص بك. يجب أن تكون قادرًا على فتح "أداة مفتش Chrome" والعثور على وحدة تحكم ستخرج الرسائل.
ومع ذلك ، تتمثل إحدى الطرق المؤكدة لاختبار ما يحدث ، في توصيل الشاشة التسلسلية بالجهاز (مع تبديل DIP المقابل للقسم الذي تختبره) واختبار كل جزء من الكود كما تحتاج.
>3a على الترحيل 3 ، و >3d إيقاف التتابع 3.>1a على الشاشة التسلسلية. من الواضح أن موقع الويب يحتاج إلى عمل ، ولكن يمكن أن يحدث أي عدد من التغييرات لهذا المشروع. لا يزال يجب أن يكون لديك بعض المسامير مجانية وكل ما عليك فعله لإضافة شيء ما هو:
فيما يلي بعض قطاعات الرمز لشرح.
على موقع الويب هو زر نستخدمه لتشغيل الترحيل ، إنه عنصر بسيط <button id='3' class='relay'></button> يحتوي على معرف ما هو عليه (ليس تمامًا ، ولكنه قريب بما يكفي لهذا المثال).
ثم لدينا بعض رمز JavaScript (مبسط):
$ ( "button.relay" ) . on ( "click" , function ( ) {
//do this when a button with the class 'relay' is clicked
} ) ; في هذه الوظيفة ، نقوم fetch() صفحة ويب جديدة ، والتي تشير إلى /relay ، وإذا كانت حالة الإرجاع على ما يرام ، فإننا نضيف الفئة "ison" إلى الزر:
fetch ( "relay?relay=3&mode=activate" ) . then ( response => {
if ( response . status == 200 ) {
button . addClass ( "isOn" ) ;
}
} ) ; هذا يعني أن موقع الويب سيحاول الوصول إلى صفحة ويب جديدة على http://192.168.4.1/relay مع معلمات ?relay=3&mode=activate . دعنا نتحقق من رمز ESP:
// firstly, set the handler function in the setup():
server.on( " /relay " , handleRelayCommand);
// ... later ...
void handleRelayCommand (){
String relayNumber = server. arg ( " relay " );
String mode = server. arg ( " mode " );
// ...
} command server.arg("relay"); ببساطة يحصل على كل ما تم تعيين حجة "التتابع". في طلبنا الأصلي: ?relay=3&mode=activate هذا سيكون السلسلة "3" . وبالمثل ، يتم تعيين وسيطة الوضع على سلسلة "activate"
نحن ببساطة نقوم ببعض الاختبارات ، والعثور على ما يتوافق مع "3" وما إذا كان "activate" يعني أننا ندير التتابع ، ونرسل ذلك كأمر إلى UNO:
Serial.write( ' > ' ); // start of command
Serial.write( ' 3 ' ); // relay 3
Serial.write( ' a ' ); // activate, or turn onسيتم تفسير ذلك من قبل UNO ، والذي سيقوم بعد ذلك بتشغيل الترحيل:
في uno.ino (مرة أخرى ، مبسطة):
while (Serial.read() != ' > ' ) // do nothing until we get '>'
continue ;
char relay = Serial.read(); // next character is relay;
char mode = Serial.read(); // next character is mode;
// ... do some checks, turn char into int, see if it's valid, etc.
digitalWrite (theRelay, theMode); شيء واحد يجب ملاحظته هو أن تدفق البيانات هو اتجاه واحد فقط في هذا الرمز ، لا يوجد Serial.write() على UNO ليكون Serial.read() بواسطة ESP.