جدول المحتويات:

رابط متحكم عالمي بأقل من 20 دولارًا: 15 خطوة
رابط متحكم عالمي بأقل من 20 دولارًا: 15 خطوة

فيديو: رابط متحكم عالمي بأقل من 20 دولارًا: 15 خطوة

فيديو: رابط متحكم عالمي بأقل من 20 دولارًا: 15 خطوة
فيديو: تطبيق هتكسب منه 15$ دولار يوميا بدون خبره 💲 2024, يوليو
Anonim
رابط متحكم عالمي بأقل من 20 دولارًا
رابط متحكم عالمي بأقل من 20 دولارًا

تحكم في ترموستات منزلك من العمل. قم بتشغيل رشاش من أي مكان في العالم عن طريق النقر فوق مفتاح. يوضح هذا Instructable كيفية ربط اثنين أو أكثر من وحدات التحكم الدقيقة بقيمة 4 دولارات باستخدام العمود الفقري للإنترنت وبعض كود VB. Net البسيط ، وهذا يعتمد على Instructable سابقًا يوضح كيفية ربط متحكم دقيق بجهاز كمبيوتر واستخدام وعاء للتحكم في سيرفو https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ هذه المرة لدينا وحدة تحكم دقيقة تتحدث إلى برنامج VB. Net ثم إلى موقع ويب ftp ، ونعود إلى VB. Net آخر البرنامج ومن ثم متحكم ثانٍ في أي مكان في العالم ، مع أو بدون تدخل بشري. وإلا كيف يمكن للآلات في The Matrix أن تتولى زمام الأمور إذا لم يتمكنوا من التحدث مع بعضهم البعض؟

الخطوة 1: اجمع الأجزاء

اجمع الأجزاء
اجمع الأجزاء

العديد من الأجزاء هي نفسها الموجودة في تعليمات التحكم في جهاز الكمبيوتر https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ ويقترح إكمال ذلك أولاً قبل المحاولة لربط اثنين من ميكروكنترولر. في حين أنه من الممكن تمامًا استخدام وعاء للتحكم في المؤازرة ، إلا أننا في هذه المرة سنذهب لشيء أبسط - مفتاح يعمل على تشغيل الصمام. يمكن أن يكون المحول مستشعرًا لمستوى الخزان بسهولة ويمكن أن يكون المصباح عبارة عن مضخة لأسفل بالقرب من النهر ولكن دعنا نحصل على شيء بسيط يعمل أولاً. الأجزاء - شريحتان Picaxe 08M - متوفرة من العديد من المصادر بما في ذلك Rev Ed ed.co.uk/picaxe/ (المملكة المتحدة) ، PH Anderson https://www.phanderson.com/ (الولايات المتحدة الأمريكية) و Microzed https://www.microzed.com.au/ (أستراليا). هذه الرقائق أقل من 4 دولارات أمريكية. اثنان من: لوح بروتوبورد ، بطارية 9 فولت ومشابك بطارية ، مقاوم 10 كيلو ، مقاوم 22 كيلو ، مكثف 33 فائق التوهج 16 فولت ، مكثف 0.1 فائق التوهج ، منظم 7805 لتر منخفض الطاقة 5 فولت ، أسلاك (هاتف صلب / سلك بيانات مثل Cat5 / 6) ، LED ، مقاوم 1k. 1 من: D9 مقبس أنثى وغطاء و 2 متر من 3 (أو 4) سلك بيانات أساسي (للتنزيل) ومفتاح تبديل. جهازي كمبيوتر بهما 9 منافذ تسلسلية (يمكن تصحيح الأخطاء على كمبيوتر واحد) واتصال بالإنترنت. بالنسبة لأجهزة الكمبيوتر التي لا تحتوي على منفذ تسلسلي ، يوجد منفذ USB إلى جهاز تسلسلي https://www.rev-ed.co.uk/docs/axe027.pdf ومقبس استريو صغير.

الخطوة الثانية: تنزيل بعض البرامج وتثبيتها

قم بتنزيل وتثبيت بعض البرامج
قم بتنزيل وتثبيت بعض البرامج

سنحتاج إلى برنامج VB. Net المجاني وبرنامج وحدة التحكم picaxe ، وإذا كنت قد انتهيت من استخدام وحدة تحكم الكمبيوتر الشخصي Instructable ، فستتوفر لديك بالفعل. VB. Net (Visual Basic Express) متاح من https://msdn2.microsoft.com/en -us / express / aa718406.aspx برنامج picaxe متاح من https://www.rev-ed.co.uk/picaxe/ ستحتاج إلى التسجيل مع Microsoft للحصول على التنزيل - إذا كانت هذه مشكلة ، استخدم بريدًا إلكترونيًا مزيفًا أو شيء ما. لقد وجدت أنه من المفيد بالفعل إرسال بريدي الإلكتروني الحقيقي أثناء إرسالهم تحديثات من حين لآخر ، وسأذكر أيضًا منتدى picaxe https://www.picaxeforum.co.uk/ لأن هذا هو نوع المنتدى الذي يعمل به المعلمون والمعلمون و حيث يمكن للطلاب عادةً الحصول على إجابات للأسئلة في غضون ساعات قليلة. المنتدى يتفهم حتى أبسط الأسئلة حيث أن بعض الطلاب ما زالوا في مستوى المدرسة الابتدائية. من فضلك لا تخف من طلب المساعدة!

الخطوة 3: إنشاء دائرة تنزيل

إنشاء دائرة تنزيل
إنشاء دائرة تنزيل

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

قد أضيف أيضًا أن picaxes تعمل بسعادة على 3 بطاريات AA. يعد العرض المنظم 5 فولت مفيدًا لتشغيل المدخلات التناظرية حيث لا تتغير الفولتية المرجعية ، ولكن بالنسبة لدارات التشغيل / الإيقاف البسيطة ، لا يلزم توفير إمداد منظم. يمكن ترك 5V reg خارجًا في هذه المواقف.

الخطوة 4: برمجة الرقائق

برمجة الرقائق
برمجة الرقائق

سوف نسمي برنامج واحد Tx وآخر Rx. Tx هي شريحة التحكم ولها مفتاح ومصباح. يحتوي Rx أيضًا على مؤشر LED. عندما يغير المفتاح تنتقل الإشارة من Tx إلى Rx ، يغير المصباح ويغير أيضًا متغيرًا ثانيًا يعود بعد ذلك إلى Tx. لذا ، انقر فوق المفتاح وفي أقل من دقيقة يتغير الصمام على كلا الدائرتين مشيرًا إلى أن الرسالة وصلت إلى هناك وأن Rx يعمل على موضع التبديل الجديد. في أبسط مستوى ، يحتوي picaxe على 14 سجلًا أحادي البايت. عندما يتم إنشاء شبكة افتراضية ، فإننا نربط جميع هذه السجلات معًا ، لذلك إذا تغير البايت في بيككس واحد ، فإنه يتغير في جميع البيككس. من الواضح أنه إذا كانت هناك قطعتان تحاولان تغيير نفس البايت ، فسيكون الأمر محيرًا للغاية ، لكن إذا غيرت كل بيكاكس بايت واحد فقط ، فيمكن لجميع البيككسات الأخرى رؤية هذا التغيير ويمكنها التصرف بناءً عليه. يمكن إعادة إرسال الرسائل البسيطة وإعادة توجيهها إذا تم تغيير بايت معين ببيكاكسي واحد فقط. يمكن للوعاء أن يغير القيمة في السجل ويمكن لواحدة أو أكثر من البيككس أن تشعر بهذا التغيير وتحرك مؤازرة أو أي شيء آخر وتشغيل السخان. يمكن أن يرسل السجل الثاني درجة الحرارة في الغرفة. انسخ والصق البرامج بدورها في مبرمج picaxe وقم بتنزيلها على كل شريحة منها باستخدام سهم التنزيل الأزرق من داخل مبرمج picaxe. Tx: main: serin 3، N2400، ("Data")، b0، b1، b2، b3، b4، b5، b6، b7، b8، b9، b10، b11، b12، b13 'احصل على حزمة من الكمبيوتر إذا كان pin2 = 0 ثم 'اختبر المفتاح وقم بتعيين السجل b0 اعتمادًا على الحالة b0 = 0 else b0 = 1 endif إذا كانت b1 = 0 ثم' مجموعات picaxe الأخرى b1 اعتمادًا على b0 low 1 'أدت إلى إيقاف آخر مرتفع 1' على endif serout 0 ، N2400 ، ("البيانات" ، b0 ، b1 ، b2 ، b3 ، b4 ، b5 ، b6 ، b7 ، b8 ، b9 ، b10 ، b11 ، b12 ، b13) 'أرسل مرة أخرى إلى الكمبيوتر goo main و Rx: main: serin 3، N2400، ("البيانات") ، b0 ، b1 ، b2 ، b3 ، b4 ، b5 ، b6 ، b7 ، b8 ، b9 ، b10 ، b11 ، b12 ، b13 'الحصول على حزمة من الكمبيوتر b1 = b0' قم بتغيير السجل b1 لتساوي التسجيل b0 إذا كان b1 = 0 ثم منخفض 1 'أدى إيقاف آخر مرتفع 1' على endif serout 0 ، N2400 ، ("البيانات" ، b0 ، b1 ، b2 ، b3 ، b4 ، b5 ، b6 ، b7 ، b8 ، b9 ، b10 ، b11 ، b12 ، b13) "أرسل مرة أخرى إلى الكمبيوتر الانتقال إلى main

الخطوة الخامسة: بناء دائرة Tx

قم ببناء دائرة Tx
قم ببناء دائرة Tx

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

ومن الجدير بالذكر أيضًا تسمية picaxe التي تستدعي الدبوس المادي والساق والدبوس الافتراضي دبوسًا. وبالتالي ، فإن الإخراج على الدبوس 2 في الكود هو في الواقع ناتج على الساق المادية 5. قد يبدو هذا غريبًا ولكنه يعني أنه يمكن نقل الكود إلى صور أكبر مثل إصدارات 28 و 40 دبوسًا ولا يزال يعمل.

الخطوة 6: بناء دائرة Rx

قم ببناء حلبة Rx
قم ببناء حلبة Rx

هذه الدائرة هي نفسها جهاز الإرسال تقريبًا - ليس لديها مفتاح تبديل.

الخطوة 7: اكتب بعض كود VB. Net

اكتب بعض كود VB. Net
اكتب بعض كود VB. Net

كان بإمكاني تجميع الكود وجعل هذا البرنامج متاحًا كملف exe. مترجم ولكن تعلم بعض VB. Net مفيد للغاية لدرجة أنه يستحق المرور فيه خطوة بخطوة. إذا كنت تقوم بتشغيل هذا على جهازي كمبيوتر مختلفين ، فيمكنك إنشاء البرنامج في ملف exe. والذي يقوم بإنشاء برنامج إعداد صغير يمكن تثبيته على الكمبيوتر الثاني. أو يمكنك وضع VB. Net على كلا الجهازين وتشغيل البرامج من داخل VB. Net لنفترض أنك تعرف كيفية فتح مشروع VB.net جديد من الخطوتين 7 و 8 من https://www.instructables.com/id/S1MMU2XF82EU2GT / في النموذج الفارغ ، دعنا نضيف المكونات التالية من شريط الأدوات ونضعها في النموذج في المواقع كما هو موضح. بالنسبة للتسميات ومربعات النص ، قم بتغيير خاصية النص (الموجودة في الجزء السفلي الأيمن) إلى ما هو مطلوب. لا تقلق بشأن إعدادات المؤقت - سنقوم بتغييرها في الكود ولكن تأكد من وضع مؤقت. يمكنك تحريك الأشياء ولا توجد قواعد حقيقية بشأن الموقع. مربع النص الكبير هو RichTextBox والأصغر الثلاثة عبارة عن مربعات نص عادية. من حيث الترتيب ، نبدأ من أعلى النموذج ونتحرك لأسفل. إذا تركت شيئًا ما ، فسيكون هناك خطأ في الكود الذي يجب أن يعطي نوعًا من الدليل. يرجى اختيار اسم ملف عشوائي لـ Textbox3 - هذا هو اسم مجموعتك الفريدة من picaxes على خادم ftp ومن الواضح إذا استخدمنا جميعًا نفس الاسم ، فسيتم تشويش البيانات بالكامل! نأسف على الشرطات في هذا الجدول - وضع مسافات يفقد التنسيق في الجدول. كائن Toolbox ------- نص ----------- ------------------------------ NotesLabel1 ------------------ Picaxe CommunicationsLabel2 ------------------ FTP StatusLabel3 ------------------ StatusLabel4 ---------- -------- Picaxe RegistersLabel5 ------------------ تسجيل 0-13Label6 ------------------ القيمة 0-255Label7 ------------------ اسم ملف ارتباط FTPTextbox1 ---------------- 0 -------- -------------------------------------- 0 هو صفر وليس OTextbox2 ----- ----------- 0Textbox3 ---------------- Myfilename --------------------- ---------- تغيير بحيث لا توجد اشتباكات! Button1 ------------------ ModifyRichtextbox1 Picturebox1 Picturebox2 Timer1

الخطوة 8: أضف بعض التعليمات البرمجية

أضف بعض التعليمات البرمجية
أضف بعض التعليمات البرمجية

راجع الخطوة 12 من التعليمات الأخرى لمعرفة موقع الزر الذي ينقلب بين عرض النموذج وعرض التعليمات البرمجية. قم بالتبديل إلى عرض الكود والصق الكود التالي فيه. يجب أن تظهر جميع الألوان مرة أخرى كما في لقطة الشاشة. إذا لم يتم نسخ سطر بشكل صحيح بسبب مشكلة التفاف الكلمات ، فاحذف المسافات حتى تختفي رسالة الخطأ. لقد حاولت التعليق على معظم السطور حتى يكون الرمز منطقيًا على الأقل. احذف بت الفصل العام بحيث يكون النص فارغًا قبل لصق هذا - هذا الرمز يحتوي بالفعل على فئة عامة. إذا لم يتم وضع كائن مثل مربع نص في النموذج أو كان له اسم خاطئ ، فسيظهر في رمز النص بخط أزرق متعرج تحته. أشياء مثل اليسار (واليمين (لـ stringsPublic Class Form1 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) 'لبيانات السكون Dim WithEvents serialPort As New IO. Ports. SerialPort' المنفذ التسلسلي يعلن Dim PicaxeRegisters (0 إلى 13) نظرًا لأن بايت يسجل b0 إلى b13 Dim ModifyFlag باعتباره Boolean Private Sub Form1_Load (ByVal sender As Object ، ByVal e As System. EventArgs) Handles Me. Timer1. Enabled = True 'ضع هذا في التعليمات البرمجية كإعدادات افتراضية للخطأ عند إنشاء Timer1. Interval = 20000' كل 20 ثانية PictureBox1. BackColor = Color. Gray 'تبدأ بمربعات Comms باللون الرمادي PictureBox2. BackColor = Color. Gray ModifyFlag = False' إذا قمت بتعديل قيمة يدويًا ، فحينئذٍ s kip تنزيل RichTextBox1. Multiline = True 'بحيث يمكن عرض أكثر من سطر Call DisplayPicaxeRegisters ()' عرض 14 تسجيلاً Call ReadFTPFilename () 'قراءة اسم الملف خارج القرص (يُعاد حفظه كل 20 ثانية) End Sub Sub SerialTxRx () Dim DataPacket () من 0 إلى 17) كحزمة بيانات كاملة للبايت "البيانات" +14 بايت ، يكون Dim i As Integer 'i مفيدًا دائمًا للحلقات وما إلى ذلك بالنسبة لـ i = 0 إلى 3 DataPacket (i) = Asc (Mid ("Data" ، i + 1 ، 1)) 'أضف الكلمة "Data" إلى الحزمة Next For i = 0 إلى 13 DataPacket (i + 4) = PicaxeRegisters (i)' أضف جميع البايتات إلى الحزمة Next If serialPort. IsOpen ثم serialPort. Close () 'فقط في حالة فتحها بالفعل End If Try With serialPort. PortName = "COM1"' معظم أجهزة الكمبيوتر الجديدة تكون افتراضيًا على com1 ولكن أي كمبيوتر سابق لعام 1999 به ماوس تسلسلي من المحتمل أن يكون افتراضيًا com2. BaudRate = 2400 '2400 هي أقصى سرعة لـ وحدات البكسل الصغيرة. Parity = IO. Ports. Parity. None 'لا يوجد تكافؤ. DataBits = 8' 8 بت. StopBits = IO. Ports. StopBits. One 'بت توقف واحد. ReadTimeout = 1000' مللي ثانية ds so time out in 1 second if no response. افتح () 'افتح المنفذ التسلسلي. DiscardInBuffer ()' امسح مخزن الإدخال المؤقت. اكتب (DataPacket، 0، 18) 'أرسل مصفوفة مجموعة البيانات Call Sleep (300)' 100 مللي ثانية الحد الأدنى لانتظار عودة البيانات والمزيد إذا كان دفق البيانات أطول. اقرأ (DataPacket ، 0 ، 18) 'اقرأ مرة أخرى في صفيف حزم البيانات. (i - 4) = DataPacket (i) 'انقل حزمة البيانات الجديدة إلى مصفوفة التسجيل Next PictureBox1. BackColor = Color. GreenYellow' يعمل Catch ex كاستثناء PictureBox1. BackColor = Color. Red 'لا يعمل النهاية حاول إنهاء Sub FTPUpload (ByVal Filename As String) Dim localFile As String 'مكان لتخزين البيانات Dim remoteFile As String' اسم الملف حساس لحالة الأحرف ، هذا مهم حقًا لمضيف Const As String = "ftp://ftp.0catch.com" 'لاحظ أن الرقم 0 هو صفر ليس حرفًا O Const اسم المستخدم على هيئة سلسلة = "picaxe.0catch.com" Const password as String = "picaxetester" Dim URI as String localFile = قد لا تكون هناك حاجة إلى اسم الملف 'ولكن إذا حددت موقعًا ، على سبيل المثال c: / mydirectory يمكن أن تضيف بسهولة بهذه الطريقة remoteFile = "/" + Filename' file على احتياجات خادم ftp "/" المضافة في واجهة URI الأمامية = host + remoteFile جرب Dim ftp As System. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI)، System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential (اسم المستخدم ، كلمة المرور) 'تسجيل الدخول ftp. KeepAlive = False' سيكون قطع الاتصال بمجرد الانتهاء من ftp. UseBinary = True 'استخدم comms binary ftp. Timeout = 9000' مهلة بعد 9 ثوانٍ - مفيد جدًا لأن بروتوكول نقل الملفات أحيانًا يموت مهلة (وتكرار الساعة 20 ثانية) قد يكون أبطأ لاتصالات الطلب الهاتفي بروتوكول نقل الملفات. الطريقة = System. Net. WebRequestMethods. Ftp. UploadFile 'بدء إرسال ملف Dim fs كـ New FileStream (ملف محلي ، FileMode. Open)' فتح ملف محلي باهت محتويات (fs. Length) كـ بايت 'قراءة في الذاكرة fs. Read (محتويات الملف ، 0، fs. Length) fs. Close () 'أغلق الملف Dim requestStream As Stream = ftp. GetRequestStream ()' بدء طلب رابط ftpSt ream. Write (filecontents، 0، filecontents. Length) 'أرسلها requestStream. Close ()' أغلق الرابط PictureBox2. BackColor = Color. GreenYellow 'قم بتغيير المربع إلى اللون الأخضر ليقول أنه تم العمل بشكل جيد Label2. Text = "FTP متصل" " نص يقول أنه متصل Catch 'لا يمكن توصيل مربع PictureBox2. BackColor = Color. Red' باللون الأحمر لأنه لا يوجد اتصال Label2. Text = نص "فشل تحميل FTP" "يشير إلى فشل الاتصال End Try End Sub Sub FTPDownload (ByVal Filename As String) "تنزيل ملف بعيد إلى ملف محلي Dim localFile As String" مكان لتخزين البيانات Dim remoteFile As String "اسم الملف حساس لحالة الأحرف ، وهذا مهم حقًا لمضيف Const As String =" ftp://ftp.0catch.com "Const username As String =" picaxe.0catch.com "Const password As String =" picaxetester "Dim URI As String 'localFile =" C: / "+ Filename' مخزن في الدليل الجذر ولكن يمكن تغيير هذا localFile = Filename 'لذا يمكن إضافة c: / إذا لزم الأمر الموقع الفعلي remoteFile = "/" + Filename 'مضاف إلى موقع ftp البعيد URI = host + remoteFile' make up العنوان الكامل جرّب Dim ftp كـ System. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI)، System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential (اسم المستخدم ، كلمة المرور) 'سجل في ftp. KeepAlive = False 'سيتم قطع الاتصال بعد الانتهاء من ftp. UseBinary = True' binary mode ftp. Timeout = 9000 'timeout بعد 9 ثوان ftp. Method = System. Net. WebRequestMethods. Ftp. DownloadFile' تنزيل ملف 'قراءة في أجزاء كـ لا تعرف حجم الملف الذي يستخدم الاستجابة كـ System. Net. FtpWebResponse = CType (ftp. GetResponse، System. Net. FtpWebResponse) استخدام responseStream كـ IO. Stream = response. GetResponseStream باستخدام fs كـ New IO. FileStream (localFile، IO. FileMode. Create) عازلة باهتة (2047) حيث قراءة البايت كعدد صحيح = 0 قراءة = تدفق الاستجابة. اكتب إلى ملف Loop حتى القراءة = 0 'حتى لا مزيد من الاستجابة. Stream. Close ()' أغلق ملف ftp fs. Flush () 'flush clear fs. e file End using responseStream. Close () 'أغلقه حتى إذا لم يكن هناك شيء قم بإنهاء استخدام الاستجابة. تم الانتهاء من استخدام Catch 'ضع أكواد الخطأ هنا PictureBox2. BackColor = Color. Red' مربع أحمر لأنه لم يعمل Label2. Text = "فشل تنزيل FTP" ورسالة تقول هذا End حاول إنهاء Sub Private Sub Timer1_Tick (ByVal sender كـ System. Object ، ByVal e As System. EventArgs) يعالج Timer1. Tick If ModifyFlag = False ثم "إذا قام المستخدم بتغيير البايت ، فلا تقم بتنزيل Label3. Text =" Downloading "System. Windows. Forms. Application. DoEvents () يعرض نص التسمية الجديد Call FTPDownload (TextBox3. Text) 'تنزيل ملف بعيد Label3. Text = "تم تنزيله" System. Windows. Forms. Application. DoEvents () استدعاء ReadRemoteFileToRegisters ()' حفظ أرقام الملفات في صفيف التسجيل Label3. Text = "التحدث إلى picaxe" System. Windows. Forms. Application. DoEvents () Else ModifyFlag = False 'إعادة تعيين العلامة End If Call SerialTxRx () 'أرسل إلى picaxe وقراءته مرة أخرى Label3. Text = "تم الإرسال والاستلام من picaxe" System. Windows. Forms. Application. DoEvents () استدعاء DisplayPicaxeRegisters () استدعاء SaveRegistersToLocalFile ()' حفظ الأرقام في الملف Label3. Text = "تحميل" System. Windows. Forms. Application. DoEvents () استدعاء FTPUpload (TextBox3. Text) 'أرسل احتياطيًا إلى موقع بروتوكول نقل الملفات المسمى باسمي Label3. Text = "Resting" Call SaveFTPFilename ()' لذا يقرأ عند إعادة تشغيل End Sub registernumber = Trim (Str (i)) 'اقتطاع المسافات البادئة إذا كان i <10 ثم registernumber = "0" + registernumber' أضف 0 إلى الأرقام الموجودة تحت 10 End If RichTextBox1. AppendText (registernumber + "=" + Str (PicaxeRegisters (i)) + Chr (13)) التالي 'chr (13) هو حرف إرجاع لذا السطر الجديد End Sub Private Sub Button1_Click (ByVal sender ككائن System. Object ، ByVal e باسم System. EventArgs) يعالج Button1. انقر فوق Dim i As Integer 'سحب خارج النطاق أولاً i = Val (TextBox1. Text) إذا كان i <0 أو i> 13 ثم TextBox1. Text = 0 End If i = Val (TextBox2. Text) إذا كان i <0 أو i> 255 ثم TextBox2. Text = 0 End If PicaxeRegisters (Val (TextBox1. Text)) = Val (TextBox2. Text) 'غيّر القيمة Call DisplayPicaxeRegisters ()' و قم بتحديث العرض ModifyFlag = True 'والرابط التالي ftp تخطي تنزيل End Sub Sub SaveRegistersToLocalFile ()' حفظ صفيف التسجيل في ملف نصي محلي Dim i As Integer FileOpen (1، TextBox3. Text، OpenMode. Output) 'افتح الملف النصي المسمى في مربع النص بالنسبة لـ i = 0 إلى 13 PrintLine (1، Str (PicaxeRegisters (i))) 'حفظ 14 قيمة Next FileClose (1)' أغلق الملف End Sub ReadRemoteFileToRegisters () 'قراءة الملف النصي المحلي في مجموعة التسجيل Dim i As Integer Dim LineOfText as String حاول FileOpen (1، TextBox3. Text، OpenMode. Input) 'اقرأ اسم الملف البعيد لـ i = 0 إلى 13 LineOfText = LineInput (1)' اقرأ في 14 لين es PicaxeRegisters (i) = Val (LineOfText) 'تحويل النص إلى قيم Next FileClose (1) Catch ex As Exception FileClose (1)' file غير موجود ، لذا لا تفعل شيئًا End Try End Sub ReadFTPFilename () 'لذا فإن اسم ملف ftp البعيد هو نفسه في المرة التالية التي يتم فيها تشغيل هذا البرنامج Dim LineOfText As String حاول FileOpen (1 ، "FTPFilename.txt" ، OpenMode. Input) 'افتح الملف LineOfText = LineInput (1) TextBox3. Text = LineOfText' اقرأ الاسم إغلاق الملف (1) الالتقاط السابق كاستثناء ملف إغلاق (1) إنهاء حاول إنهاء فرعي SaveFTPFilename () FileOpen (1 ، "FTPFilename.txt" ، OpenMode. Output) "احفظ اسم ملف ftp البعيد PrintLine (1 ، TextBox3. Text) FileClose (1) فئة End SubEnd

الخطوة 9: قم بتشغيل البرنامج على كلا الجهازين

قم بتشغيل البرنامج على كلا الجهازين
قم بتشغيل البرنامج على كلا الجهازين

ابدأ تشغيل البرنامج بالنقر فوق المثلث الأخضر في أعلى منتصف الشاشة - زر "بدء التصحيح". لن يحدث شيء لمدة 20 ثانية ثم سيحاول البرنامج الاتصال بخادم بروتوكول نقل الملفات وسيحاول الاتصال بـ picaxe. ستتحول مربعات الصور إلى اللون الأحمر أو الأخضر. موقع ftp هو موقع ويب مجاني ويمكن لأي شخص استخدام هذا ولكن تحتاج إلى استخدام اسم ملف عمل ftp مختلف (لي هو DoctorAcula1) وإلا فقد ينتهي بنا المطاف ببيانات بعضنا البعض إذا استخدمنا نفس اسم الملف! إذا كنت ترغب في ذلك ، يمكنك في النهاية الحصول على موقع بروتوكول نقل الملفات الخاص بك - فقط قم بتغيير موقع بروتوكول نقل الملفات واسم المستخدم وكلمة المرور في مكانين في الرمز من موقع الويب الخاص بي 0Catch. تسمح معظم مواقع الويب باستخدام بروتوكول نقل الملفات. يمكن لأجهزة الكمبيوتر المتعددة الوصول إلى نفس ملف ftp - يقوم خادم الملفات ftp بفرز ترتيب حدوث ذلك. من حين لآخر ، هناك تضارب في البيانات أو توقف ويبدو أن هذه تحدث كل 20 قراءة ملف.هناك مهلة في الكود إذا حدث ذلك ، لذا فهو لا يُرجع أي بيانات بدلاً من البيانات التالفة. استخدام اتصال واسع النطاق بسرعة تحميل تصل إلى 128 كيلوبت في الثانية يعني أن تحميل الملف يستغرق حوالي 3 ثوانٍ ولكن في بعض الأحيان يصل إلى 8 ثوانٍ ، يتم استهلاك معظمها في المصافحة بدلاً من نقل البيانات. هذا يضبط وقت المؤقت 1 بحد أدنى حوالي 20 ثانية مع مراعاة التنزيل والتحميل والدردشة مع picaxe. مع النطاق العريض السريع جدًا ، قد تتمكن من تقصير وقت الدورة. يمكنك تغيير التسجيل يدويًا داخل برنامج VB. إذا قمت بذلك ، فإن دورة المؤقت التالية تتخطى التنزيل من موقع بروتوكول نقل الملفات (ftp) وترسل البيانات الجديدة إلى picaxe ثم تقرأها مرة أخرى وتحميلها. وهكذا تجد البيانات الجديدة طريقها إلى جميع الصور المرتبطة بهذه المجموعة. هذا مفيد لتصحيح الأخطاء و / أو لربط برامج الكمبيوتر في حلقة أجهزة وحدة التحكم الدقيقة. يمكن لمواقع الويب أيضًا الوصول إلى حلقة الأجهزة باستخدام نص برمجي PERL أو ما شابه ذلك لكتابة ملف جديد إلى موقع ftp. تم التقاط لقطة الشاشة هذه بتشغيل شريحة Tx ، وكان المفتاح في وضع التشغيل وتم إرسال السجل b0 = إلى 1 إلى شريحة Rx التي ثم قام بتغيير السجل b1 إلى 1 أيضًا. وهكذا أضاء المصباح على كلا اللوحين. هذا تطبيق تافه ولكن من السهل تشغيل مضخة 3.6Kw بدلاً من الصمام. توجد بعض الأفكار الأخرى في https://drvernacula.topcities.com/ بما في ذلك ربط picaxes عبر روابط راديو تعمل بالطاقة الشمسية. من خلال روابط الراديو بالإضافة إلى الإنترنت ، يمكن لـ "الآلات" الوصول إلى العديد من أنحاء العالم. هناك بعض الأفكار حول منتدى picaxe حول المضي قدمًا في هذه الفكرة واستبدال جهاز الكمبيوتر وموقع بروتوكول نقل الملفات بشرائح خادم ويب مخصصة يتم توصيلها مباشرة بجهاز التوجيه. من الواضح أن هذا من شأنه أن يقلل من استهلاك الطاقة للارتباط. إذا كنت مهتمًا بمزيد من المناقشات ، فيرجى النشر على التعليقات Intstructable و / أو على منتدى picaxe الدكتور جيمس موكسهام أديلايد ، جنوب أستراليا

الخطوة 10: لقطات من التعليمات البرمجية

لقطات من الكود
لقطات من الكود

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

الخطوة 11: لقطة الشاشة 2

لقطة شاشة 2
لقطة شاشة 2

لقطة الشاشة 2

الخطوة 12: لقطة الشاشة 3

لقطة الشاشة 3
لقطة الشاشة 3

لقطة الشاشة 3

الخطوة 13: لقطة الشاشة 4

لقطة الشاشة 4
لقطة الشاشة 4

لقطة الشاشة 4

الخطوة 14: لقطة الشاشة 5

لقطة الشاشة 5
لقطة الشاشة 5

لقطة الشاشة 5

الخطوة 15: لقطة الشاشة 6

لقطة 6
لقطة 6

لقطة 6

موصى به: