إدارة Arduino عبر الإنترنت باستخدام جهاز كمبيوتر - تجربة مبتدئ

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

بدلاً من الانضمام


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

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

ما بني النظام بأكمله وكيف يتم تنفيذه في الأجهزة


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

ملاحظة. حول جانب الخادم موصوف أدناه.

في هذه المقالة سوف أتحكم في Arduino MEGA 2560 (النظير الصيني) ، ولكن خلف الكواليس عملت الدائرة بسلاسة مع PIC16F877A ، الشيء الوحيد الذي كان عليّ استخدامه هو محول USB-TTL:



من الواضح أن برنامج PIC يختلف قليلاً عن برنامج Arduino ، بسبب اختلاف أنواع MK ، ولكن المبدأ هو نفسه:

نتلقى البيانات من خلال منفذ COM ، ونقارنها بجدول الأوامر الداخلي وننفذ الإجراء المقابل.

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

تمت كتابة البرنامج على VB6. لقراءة الملف من الخادم ، يتم استخدام مكون VB6: Microsoft Internet Transfer Control 6.0. بمساعدته ، يتم قراءة ملف نصي على الخادم ببساطة إلى متغير سلسلة. بعد قراءة هذا الخط ، يتم إرساله إلى منفذ COM باستخدام مكون VB6: Microsoft Comm Control 6.0. تتم قراءة العملية الكاملة لقراءة ملف وإرسال خط في حلقة باستخدام جهاز ضبط الوقت. يمكن تغيير الفاصل الزمني للمؤقت في تكوين البرنامج ، أو مباشرة أثناء التشغيل. بالإضافة إلى ذلك ، يمكنك تحديد وضع تشغيل المنفذ ورقمه ووضع تشغيل اتصال الإنترنت ورابط إلى الملف القابل للقراءة.

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

نقطة مهمة. لا يمكن لبرنامج في MK تحليل البيانات ، يمكنه قراءة الحرف الذي تم إرساله فقط إلى الإدخال عبر المنفذ التسلسلي. بدون أخطاء ، تمكنت من قبول الأبجدية اللاتينية (26 حرفًا AZ و 10 أرقام 0-9). ما مجموعه 36 فريقًا ، إذا تم الانتهاء من الخوارزمية وتم إدخال تحليل البيانات في MK ، فيمكن نقل أي بيانات. هناك أيضًا إمكانية لبرمجيات "المنشطات" لتبادل البيانات في اتجاهين.

اختيار الخادم وجانب الخادم


بالنسبة للخادم ، أي خادم يدعم PHP ، حتى إذا كان يعمل على جهاز كمبيوتر شخصي ، هو مجرد عنوان IP ثابت ، لكني شخصياً أستخدم Jino المستأجرة. يتكون جزء الخادم في المثال الخاص بي من ملفين: صفحات HTML مع نموذج بأزرار تشغيل / إيقاف لمصباح LED ونص PHP يغير محتويات ملف TXT الذي يقرأ منه برنامج يعمل على جهاز كمبيوتر البيانات.

البرمجيات


كود HTML شكل مع زرين ، مؤشر LED للتشغيل / الإيقاف على السبورة:

<html>
<head>
<title> </title>
</head>  
<body>
<form action="work.php" method="post">
:
<p>
<input type="submit" name="sv" value="On" />
<input type="submit" name="sv" value="Off" />
<p>
</form>    
</body>    
</html>

كود PHP ، هنا نكتب الأمر A إلى الملف ، إذا كان يجب تشغيل LED ، و B إذا كان يجب أن يخرج:

<?php
$cm = fopen("command.txt", "w");
switch ($_POST['sv']) {
case "On":
fwrite($cm,"a");    
    break;   
case "Off":
fwrite($cm,"b");    
    break;  
}
fclose($cm); 
?>

الآن الرمز الفعلي لـ Arduino:

int val; //      
void setup() {
Serial.begin(9600); //   
pinMode(13, OUTPUT); //   13  
}
void loop() {
// ,   - 
if (Serial.available()) {
val = Serial.read(); //  val   
if (val == 'a') {digitalWrite(13, HIGH);} //  a  
if (val == 'b') {digitalWrite(13, LOW);} //  b  
}}

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

نتائج العمل



بدلا من الاستنتاج


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

All Articles