تصميم وبرمجة جهاز ذكي لإنترنت الأشياء - إنترنت الأشياء - ثاني ثانوي

صورة الدائرة الفعلية
عين 2023
02:17
(1) 1 التقييم التعليقات المشاركة

الدرس الثاني تصميم وبرمجة جهاز ذكي لإنترنت الأشيا: إدارة النفايات الذكية Smart Waste Management www.r.edu.sa نظرا للاكتظاظ السكاني قد لا تُجمع ولا تُعالج كميات كبيرة جدًا من النفايات والمخلفات بكفاءة، مما يتسبب في زيادة كمية النفايات في عدة أماكن وتحدث هذه المشكلة بسبب تجاوز سعة حاويات القمامة دون إزالتها في الوقت المناسب لكن باستخدام حاويات النفايات الذكية يمكن أن تُرسل رسائل تنبيهية لإعلام مركبات جميع النفايات بهذه الحاويات كذلك من خلال عمليات تحليل البيانات الملاءمة يمكن استنباط الأفكار حول كيفية تعبئة حاويات النفايات لتحسين العملية برمتها بشكل أكثر كفاءة رسالة EMQX شكل 78 مشروع إدارة التهابات البنكية بالأرمرير وبروتوكول MQTT EMQX رساله ستنشئ في هذا الدرس نموذجا أوليا لحاوية قمامة ذكية تحب متوسط عدد المرات المطلوبة لتصل إلى سعتها الكاملة، سترسل رسالة إلى وسيط (MQTT) كل مرة تستخدم فيها الحاوية. وعندما تمتلئ الحاوية ترسل رسالة أخرى إلى متحكم النظام الذي ينتج التقارير عن الحاوية. تستخدم في هذا المشروع (EMOX ) هو وسيط (MQTT) مفتوح المصدر عالي متحكم أردوينو يمثل حاوية ذكية. وستقوم ببرمجته باستخدام الأداء مع محرك المعالجة الرها بصورة الهوية بروتوكول (Firmata) وبايثون كما ستتخدم منصة (MQTT) يستخدم لدعم تدفق الأحداث بواسطة عدد كثير من حرارة التعليم التوزيع الرسائل أجهزة إنترنت الأشياء.

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

إدارة النفايات الذكية

شرح إدارة النفايات الذكية

274 مكونات وأدوات المشروع Components & Tools for Project الترانزستور الضوئي Phototransistor هو مكون كهربائي يعمل عند تعرضه للضوء، حيث تتدفق كمية متناسبة من التيار العكسي عند سقوط الضوء على المستشعر، وتستخدم أجهزة التراثر ستورات الضوئية على نطاق واسع لاكتشاف وتحويل نبضات الاضاءة إلى إشارات كهربائية. الرهم في المحاكي ومر تحطيطي ترات تور صوتی 79 لير تير مستشعر الإمالة Tilt Sensor يستخدم مستشعر الإمالة لقياس درجة الميل على عدة محاور وتقوم مستشعرات الإمالة بتقييم وضع الميل بالنسبة للجاذبية وتستخدم في تطبيقات مختلفة. حيث تجعل اكتشاف الميل أو الاتجاه أمرا ميسورا. مستنفر الإمالة الوهم في المحاكي رمز تخطيطي حي 710 مستمر الإمالة صرارة التعليم

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

الترانزستور الضوئي

شرح الترانزستور الضوئي

مستشعر الإمالة

شرح مستشعر الإمالة

النموذج الأولي باستخدام الأردوينو Arduino Prototype سيراقب متحكم الأردوينو حالة الحاوية، ويجمع بيانات الأحداث المختلفة ويرسلها من خلال بروتوكول (Firmata). سيستخدم مستشعر الإمالة لتسجيل استخدام الحاوية في كل مرة، ومحاكاة حركة غطاء الحاوية، وسيعمل الترانزستور الضوئي كمستشعر عند الوصول إلى حد معين مما يعني أن الحاوية مليئة بالنفايات. ستحتاج إلى المكونات الآتية: . لوحة أردوينو أونو Arduino Unia R3) R3). لوحة تجارب مصغرة Breadboard Small ) . • مستشعر ضوئي (Phototransistor) . مستشعر امالة (Tilt Sensor). • مقاومتان 1 كيلو أوم (12) Two resistors). المكونات المستخدمة في هذا المشروع مستشعر ضوئي مستشعر الإمالة مقاومات OO UND لوحة تحارب مصغرة أردوينو أوتو A3 مرارة التعليم لكل 711 مكونات مشروع المشايات الذكية 275

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

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

شرح النموذج الأولي باستخدام الأردوينو

1 الاتصال بوسيط EMO العام Connecting to the EMQX Public Broker سنحتاج أولا إلى تثبيت التطبيق المكتبي MQTTX client . ثم اختبار الاتصال مع وسيط (EMOX) العام. لتثبيت تطبيق Agent MQTTX قم بزيارة موقع الويب /https://mattx.app وقم بتنزيل أحدث إصدار قم بتشغيل المثبت لإكمال عملية التثبيت. ستقوم الآن بفتح البرنامج العميل، وإنشاء اتصال جديد مع وسيط (EMOX) التكوين الاتصال بوسيط EMQX مع MaITX اضغط على در البحث في نظام تشغيل ويندور. وأكت MQTTx 1 افتح تطبيق MQTTx dient اضغط على New Connection اتصال حديد )، لإنشاء اتصال حديد. اكتب اسما للاتصال. على سبيل المثال desktop_connection اضغط على زر Connect / الاتصال . 2 Campe 4 3 وزارة التعليم شار 712 اعداد الاتصال بوسط MOX مع MOTTX 5 276

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

الاتصال بوسيط EMQX العام

شرح الاتصال بوسيط EMQX العام

دائرة الأردوينو Arduino Circuit ستبدأ في إنشاء دائرة الأردوينو عن طريق إضافة المكونات المطلوبة داخل مساحة عمل دوائر تفكر كاد. التثبيت المكونات: ابحث عن Arduino Uno RS | لوحة ردولو اوتو من مكتبة Components (المكونات) واسحبها وأجلتها في مساحة العمل 1 ابحت عن Breadboard Small ) لوحة توصيل الدوائر الصغيرة من مكتبة Components المكونات) واسحبها وأطلتها في مساحة العمل 0 ابحث عن Phototransistor (مستشعر الإضاءة الترانزستور الضوني). من مكتبة Components | المكونات ) واسبه وأفلته في مساحة العمل. ابحث عن Tilt Sensor pin (مستشعر الإمالة بأربعة أطراف ) من مكتبة Components (الكونات)، وأسحبه وأطلته في مساحة العمل. ابحث عن Resistor ( المقاومة ) من مكتبة Components ( المكونات ) واسحب الملكين منها وأفلتهما في مساحة العمل 4 2 1 5 3 مراية التعليم لم 713 تنيت مكانات الدائرة

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

دائرة الأردوينو

شرح دائرة الأردوينو

OO LIND DO UND 1 3 شكل 714 توصيل المتر الوستي العراق مرارة الي الإمالة 2 اشر 7.45 توصيل ما 5 2 3 التوصيل الترانزستور الضوئي قم بتحصيل طرف Emitter ( الباعث الخاص بالترانزستور الضوني بالطرف التناظري AD في الأردوينو، وغير لون السلك إلى yellow الأصفر) 1 قم بتوصيل الطرف الثاني للمقاومة الواحدة مع العم نفسه الذي تم توصيل باعث الترانزستور الصوتي به، ثم وصل الطرف الأول من المقاومة بالعمود السالب من لوحة الدوائر الصغيرة 2 قم بتوصيل طرف 5 (5 هولت ) للوحة الأردوينو ونو R3 بالعمود الموحد من لوحة التحارب وغير لون السلك إلى Red (الأحمر). 3 قم بتحصيل GND ( الطرف الأرضي ) للوحة الأردوينو أرنو بالعمود السالب للوحة التجارب وغير لون السلك إلى Black | الأسود ) 0 قم بتوصيل طرف المجمع الخاص بالترانزستور الصوتي بالعمود الموجب في لوحة التوصيل المصغرة . التوصيل مستشعر الإمالة: قم بتوصيل الطرف الثاني للمقاومة الأخرى بالطرف الثاني مستشعر الإمالة. قم توصيل الطرف الثاني من مستشعر الامانة بالطرف الرقمي 3 للوحة الأردوينو. وغير لون الا إلى Green ( الأعض) قم بتوصيل الطرف الرابع من مستشعر الإسالة بالعمود الموجب من لوحة الدوائر الصغيرة وغير لون السللد إلى Red الأحمر) . قم بتوصيل الطرف الأولى من المقاومة بالعمود السالب من لوحة الدوائر الصغيرة وغير لون البيلك إلى Black ( الأسود) 9 278

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

توصيل الترانزستور الضوئي

شرح توصيل الترانزستور الضوئي

توصيل مستشعر الإمالة

شرح توصيل مستشعر الإمالة

الدائرة بشكلها النهائي Complete Circuit الممكن 716، الدائرة بصورتها النهائية في تلكر كال صورة الدائرة الفعلية Physical Circuit تمثل هذه الصورة الشكل الذي ستبدو عليه الدائرة. تتصل المكونات بالأطراف الآتية: AO شكل 717 صورة الدالمرة D3 شن 718 توصيل الأطارات بالقصات وزارة التعليم 279

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

الدائرة بشكلها النهائي

شرح الدائرة بشكلها النهائي

صورة الدائرة الفعلية

شرح صورة الدائرة الفعلية

برمجة الأردوينو Programming the Arduino ستبدأ بتحميل بروتوكول StandardFirmata من خلال بيئة عمل Arduino IDE لإعداد قناة اتصال بين الأردوينو والبرنامج الذي ستقوم بكتابته بلغة البرمجة بايثون Python افتح PyCharm وقم بتثبيت حزمة paho matt من خلال نظام إدارة الحزم (pip). في PyCharm. افتح الواجهة الطرفية (Terminal) في مجلد عملك. واكتب الأمر الآتي: pip install paho-matt قم بإنشاء ملف باينون جديد باسم matt_arduino.py. ثم في بداية مقطعك البرمجي . ثم قم باستيراد الحزم الآتية: . datetime إنشاء طوابع زمنية للرسائل التي ترسلها . . time التحكم في سير البرنامج. json العمل مع : كاتشات JSON. pyfirmata: التواصل مع لوحة الأردوينو من خلال بروتوكول Firmata • paho.mgtt.client إنشاء عملاء للتواصل مع وسطاء MQTT from datetime import datetime import time import json import pytirmata import paho.mqtt.client as mq أنشئ المتغيرات الآنية التي ستستخدم لعميل MQTT الذي ستنشته، سيكون اسم العميل CLIENT ID. أما MQTT_BROKER فهو عنوان الوسيط العام الذي توفره EMOX الذي ستتصل به ويشير TOPIC إلى اسم الموضوع الذي يشترك فيه العميل يشير PORT إلى منفذ الخادم الافتراضي للاتصال بالوسيط، وختاما فان FLAG_CONNECTED سيستخدم كمتغير إشارة في دالة معالج الأحداث لاحقا # Variables to setup MQTT client CLIENT_ID = "PUBLISHER_01" MQTT_BROKER = "broker.emqx.20" TOPIC = "waste/drops" PORT = 1033 FLAG_CONNECTED = False # ID of the client : Address of the broker # Topic to subscribe to # Default server port # Connection flag 280

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

برمجة الأردوينو

شرح برمجة الأردوينو

جدول 3.3 متغيرات الاتصال بوسيط MQTT CLIENT_ID MQTT BROKER TOPIC PORT FLAG CONNECTED اسم صل MaTT الوصف عنوان وسيط MOTT المستهدف. الموضوع الذي يشترك اليه العميل نفط الخاتم المراد الاتصال به. متعبر إشارة المتحقق من اتصال الخادم. أضف الأسطر الأتية، والتي مهمتها تهيئة الاتصال بالأردوينو باستخدام بروتوكول ( Firmata) وكذلك تكوين الأطراف الخاصة بمستشعر الإضاءة ومستشعر الإمالة المستخدمين للحصول على البيانات. board pyfirmata. Arduino( COM4") # Specify communication port = it pyfirmata.util.Iterator(board) # Select the board to connect it.start() #Connect to board # Selecting the sensor pins Light_sensor_pin = board.get_pin( 'a:0:1') tilt_sensor_pan = board.get pin('d:3:1') أنشئ المتغيرات الأتية بالأسماء الآتية: can full وهو وسم يحدد ما إذا كانت حاوية القمامة قد ملئت أم لا. و garbage_drops وهو عداد المتبع عدد مرات الاستخدام التعبئة الحاوية بالكامل. can_full : false # Flag to indicate whether the can is full garbage drops = 0 # Counter for the garbage drops قم بإنشاء الدالة الاتية التي تعيد تعيين متغيري .can_full و garbage_drops في كل مرة تكون فيها الحاوية ممتلئة. وترسل رسالة إلى العميل حول هذا الموضوع. def reset_can( ) : global garbage_drops # Access the garbage_drops variable global can_full garbage drops = 0 can Tull False # Access the can_full variable # Reset the counter to 0 # Clear the can حرارة التعليم 781

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

متغيرات الاتصال بوسيط MQTT المتغير

شرح متغيرات الاتصال بوسيط MQTT المتغير

قم بإنشاء الدالة الأتية لإرسال رسالة للعميل تفيد بأنه تم استخدام الحاوية. ستقوم أولا بإنشاء متغير باسم timestamp التسجيل الوقت وإنشاء كائن قاموس Dictionary بالخصائص timestamp و garbage_drops و can_full. ستقوم بتحويل هذا القاموس إلى كائن JSON ، لم تشره إلى موضوع المشترك "waste/drops" من خلال العميل def publish_message(); global garbage drops # Access garbage drops variable # Access can full variable global can_full # Create a custom format for the timestamp timestamp str(datetime.now().strftime("%H:%M:%S")) msg_dictionary = ۱۱۹۱ # Creating the JSON object "timestamp": timestamp, "garbage_drops": garbage_drops, "can_Fult ": can_full k النساء تنسيق هاب مع بيانات الوقت. انشاء كائن قاموس ISON لإرال البيانات msg= try: json.dumps(msg_dictionary) # Convert dictionary to 3SON result = client.publish(TOPIC, msg) # Publish message except: print("There was an error while publishing the message") time.sleep(2) قم بإنشاء دالة معالج الأحداث الآتية والتي ستطبع رسالة تأكيد إلى الواجهة الطرقية Terminal حول نجاح الاتصال بالعميل أو فشله، وسيطات الدالة هي وسيطات افتراضية تستخدم تربط هذه الدالة بمعالج الأحداث المناسب الذي توفره مكتبة paho.mattclient def on_connect(client, userdata, Flags, rc): global FLAG CONNECTED # Access the FLAG CONNECTED variable if rt == 0; درات التصليح # If rc is the client comected successfully FLAG_CONNECTED = True print("Connected to MQTT Broker!") else; print("Failed to connect to MQTT Broker!") هذا المتفير برا من خلال مكتبة paha ليظهر حالة الاتصال 282

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

إنشاء دالة رسالة للعميل ودالة معالج الأحداث

شرح إنشاء دالة رسالة للعميل ودالة معالج الأحداث

ستقوم في الجزء الرئيس من البرنامج بتهيئة عميل . وربط معالج الأحداث on_connect بالدالة المذكورة أعلاه. ثم الاتصال بوسيط MOTT المحدد والاشراك في الموضوع المحدد. client = Ing.Client(CLIENT_ID) client.on_connect on connect # Initialize an MQTT client # Bind the on connect event handler client.connect (MQTT BROKER, PORT) # Connect to the specified. MQTT broker client.subscribe(TOPIC, 0) # Subscribe to the specified topic قم بإنشاء التكرار الرئيس للبرنامج. إذا كانت قيمة light_value أقل من 0.200 فستعد الحاوية ممثلة. while True: # Get sensor values = light value light sensor pin.read() tilt_value = tilt sensor pin.read() if (light value is not None) and (tilt_value is not None): print("Light levels : + + str(light_value)) str(tilt_value)) print("Tile levels : print("Garbage drops: + str(garbage drops)) سيبدا في شر البيانات عدما تعنى حاوية القمامة التي يكتب عنها في ظروف الإصابة الملحمية # If there is a tilt, add to the counter if (tilt_value == True): garbage drops = 1 # If there is a cilt and the can is full #publish a message and reset the can if (light_value = 0.200); can_full = True publish_message() reset_can publish_message() Ine sleep(1) حرارة التعليم

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

إنشاء الجزء الرئيس من البرنامج

شرح إنشاء الجزء الرئيس من البرنامج

from datetime import datetime import time import json import pyfirmata import pano.mott.client as mq البرنامج بشكله النهائي Complete Code # Variables to setup MQTT client CLIENT ID="PUBLISHER_01" MOTT BROKER = "broker emqx.io" TOPIC = "waste/drops" PORT = 1883 FLAG CONNECTED - False # ID of the client # Address of the broker # Topic to subscribe to # Default server port # Connection flag board pyfirmata. Arduino( *COM4") # Specify communication port = it pyfirmata.util. Iterator(board) # Select the board to connect # Connect to board it.start() # Selecting the sensor pins Light sensor pin tilt sensor pin board.get_pin( 'a:8:1') board.get_pin('d:3:1') can full =False = #Flag to indicate whether the can is full garbage drops #Counter for the garbage drops def reset_can(): global garbage drops global can full garbage drops = 0 can full False # Access garbage drops variable # Access can full variable # Reset the counter to # Clear the can مراة التعليم 284

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

البرنامج بشكله النهائي

شرح البرنامج بشكله النهائي

def publish_message(): global garbage_drops: # Access garbage_drops variable global can_full # Access can full variable # Create a custom format for the timestamp timestamp = str( datetime.now().strftime("%Y-%m-%d %H:%M:%S")) # Creating the dictionary object msg dictionary ( "timestamp": timestamp, "garbage drops: garbage drops.. "can full" can_full } msg = json.dumps (msg dictionary) # Convert dictionary to JSON try: result client.publish(TOPIC, msg) #Publish message except: print("There was an error while publishing the message") time.sleep(2) print("Message sent to the MQTT broker") def on_connect(client, userdata, flags, re): global FLAG CONNECTED # Access the FLAG CONNECTED variable if rc : else: # If rc is 0 the client connected successfully FLAG CONNECTED = True print("Connected to MQTT Broker!") of int "Failed to connect to MQTT Broker!") درات البشم 286

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

البرنامج بشكله النهائي2

client = mq.Client(CLIENT_ID) client.on connect on connect #Initialize an MQTT client # Bind the on-connect event handler client.connect(MQTT BROKER, PORT) # Connect to the specified MQTT broker client.subscribe (TOPIC, 0) # Subscribe to the specified topic while True: # Get sensor values Light_value = Light sensor pin.read() tilt_value = tilt sensor pin.read(). if (light value is not None) and (tilt_value is not None): print("Light levels: " print("Tilt levels : print("Garbage drops : + + str(light value)) str(tilt_value)) + str(garbage drops)) مرارة التعليم # If there is a tilt, add 1 to the counter if (tilt_value == True): garbage drops -= 1 # If there is a tilt and the can is filled # publish a message and reset the can if (light value <= 0.200): can full = True publish_message() reset_can() publish_message() time.sleep(1) 286

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

البرنامج بشكله النهائي3

اختبار الوسيط Testing the Broker تعد EMQX وسيط MQIT عام لاختيار وتطوير تطبيقات MQTT . تساعد EMOX في تطوير النماذج الأولية لتطبيقات إنترنت الأشياء دون الحاجة إلى وضع البنى التحتية وتطوير الوسيط، ستستخدم عميل MQTTX client للتحقق من نشر الرسائل، ثم ستشى مقطعا برمجيا آخر في بايثون يستقبل الرسائل المنشورة، وينشئ تقارير عن الحاوية، ويحلل البيانات الموجودة في تلك التقارير بعد تحميل مخطط Standard Firmata إلى الأردوينو، نقد تعليمات بايثون وحرك لوحة التجارب لتفعيل مستشعر الإمالة في كل مرة يفعل بها المستشعر، ستزاد عداد النفايات والذي يشير إلى عدد المرات التي تم بها فتح الحاوية افتراضيا لوضع القمامة وعند تفعيل مستشعر الإمالة مع تغطية مستشعر الإضاءة، سينشر البرنامج رسالة مفادها أن الحاوية ممثلثة، ويعيد ضبط عداد النفايات، ستقوم في الدرس الثاني بتحليل البيانات بناء على الرسائل المنشورة لاختبار نشر رسائلك بصورة صحيحة، ستستخدم العميل المكتبي MOTT Agent قبل تنفيد مقاطع بايثون البرمجية ستستخدم عميل MQTTX للاشتراك في موضوع "waste/drops"، سينتظر العميل الآن استلام الرسائل التي تنفر من خلال برنامج بايثون وتوزع من خلال وسيط EMOX العام لاستخدام MQTTX للاشتراك في موضوع المحدد. في قائمة Connections | اتصالات) في تسوية desktop connection (سطح المكتب)، اضغط على زر New Subscription (اشتراك جديد). ے مربع نص Topic الموضوع . أكت " waste/drops 3 اضغط على زر Confirm تأكيدا 1 2 شکل 719 استخدام MQTTX للاعتر الملالي موضوع من براري السليم 3

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

اختبار الوسيط

شرح اختبار الوسيط

288 عرض الرسائل من خلال عميل MQTTX Viewing Messages through the MQTTX Client بعد تنفيذ المقاطع البرمجية في بايثون، وبدء نشر الرسائل، سيتم استقبال الرسائل من خلال العميل المكتبي MQTTX كما يظهر أدناه شكل 7:20 عرض الرسائل من خلال عميل MQFTX

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

عرض الرسائل من خلال عميل MQTT

شرح عرض الرسائل من خلال عميل MQTT

1 2 تمرينات أنسى مخططا لشبكة MQTT مع لوحة أردوينو واحدة تعمل كناشر. والنتان تعملات کمسقبلات قدم وصفا الترانزستور الضوئي ومكونات مستمر الامالة وحالات استخدامهما. جراره المـ

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

أنشئ مخططا لشبكة MQTT مع لوحة أردوينو واحدة تعمل كناشر

حل أنشئ مخططا لشبكة MQTT مع لوحة أردوينو واحدة تعمل كناشر

قدم وصفا للترانزستور الضوئي ومكونات مستشعر الإمالة وحالات استخدامهما

حل قدم وصفا للترانزستور الضوئي ومكونات مستشعر الإمالة وحالات استخدامهما

290 3 قم بتحليل ماهية وسيط EMOX العام ومدى مساهمته لا تطوير تطبيقات النماذج الأولية لانترنت الأشياء. 4 قم بتحديث معالج الحدث لحديث on connect الذي يطيع معلومات التكوين الى وحدة التحكم المقدمة إلى عميل Mart 5 قم بتحديث الدالة (publish message نشر رسالة زمنية timestamp تعرض التاريخ والوقت با كه اسماء وخاصية جديدة تحتوي على معرف العديل. وزارة البيل

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

قم بتحليل ماهية وسيط EMQX العام

حل قم بتحليل ماهية وسيط EMQX العام

قم بتحديث معالج الحدث

حل قم بتحديث معالج الحدث

قم بتحديث الدالة

حل قم بتحديث الدالة

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

الدرس الثاني: تصميم وبرمجة جهاز ذكي لإنترنت الأشياء

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

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

الرجاء تسجيل الدخول لكتابة تعليق