قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 12-06-2016, 10:44 AM المشاركة 1   
x4 كيفيه تحكم بعدد كبير من الأجهزة باستخدام راسبيري باي و MQTTو ESP8266 Twitter FaceBook Google+



السلام عليكم ورحمه الله وبركاته
كل عام وانتم بالف خير
رمضان كريم عليكم جميعا

في هذا موضوع سأشرح لكم ان شاء الله المواضيع التاليه
1- تنصيب نظام Raspbian في راسبيري
2- التحكم بأعدادت الراسبيري
3- الدخول على راسبيري عبر حاسبه (( اي تحكم براسبيري عن بعد ))
4- شرح بعض الاوامر المهمه
5- شرح سيرفر mosquitto وكيف نستفاد منه في تحكم بعدد كبير من الاجهزه
6-تنصيب مكتبه mosquitto في راسبيري باي
7- تنصيب phpmyadmin , php, sqlserver في حاسبه وراسبيري باي
8- بعض معلومات عن ESP8266 وكيفيه برمجتها بدون البيك
8-تنصيب مكتبه mosquitto clientفي ESP8266 وبتالي تستطيع اتصال مع سيرفر
ومواضيع اخرى .........

احصائية الشكر والاعجاب - 2 شكراً, 0 عدم اعجاب, 2 اعجاب
شكراً abu-thabit, عبدالله حجازى ( شكر العضو على هذه المشاركة )
اعجاب abu-thabit, عبدالله حجازى ( أعجبته المشاركة )
اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 12-06-2016, 12:58 PM المشاركة 2   
افتراضي تنصيب نظام Raspbian في راسبيري


نقوم بتحميل Raspbian
من موقع الرسمي

https://www.raspberrypi.org/downloads/raspbian/

طبعا توجد نسختين الاولى مكتوبه Raspbian Jessie و الثانيه Raspbian Jessie Lite
طبعا الاولى نسخه كامله اي تحتوي على سطح مكتب وبتالي يمكنك دخول على راسبيري
اما الثانيه فلاتحتوي على سطح مكتب ولذلك لاتستطيع دخول على راسبيري وبالطبع هذه نسخه اخف من الاولى

طبعا انتم نزلو نسخه كامله وبعدذلك قرار لكم فيما يتم تنصيب اي نسخه

احيانا انا لااريد ان يتم دخول على راسبيري بشكل مباشره ولااريد فيه البرنامج عندها ننصب نسخه الثانيه

بعد أكمال تنزيل نحتاج الى تنصيبه على رام

قبل ذلك مواصفات مطلوبه لراسبيري هي في هذا رابط

1- راسبيري باي 3
2- مشتتات حراره عدد 2
3- غلاف للحمايه راسبيري من رطوبه
4- محوله 5 فولت ديسي لاتقل عن 2.5 امبير

https://www.amazon.com/Vilros-Raspbe...?ie=UTF8&psc=1

نسخه 3 يحتوي على واي فاي والبلوتوث داخلي
عكس نسخه الثانيه التي لاتحتوي على واي فاي والبلوتوث

نسخه الاولى تم الالغاءها

اقل سرعه مطلوبه لرام يجب ان تكون اكثر من calss4 وسعه تخزينيه 8 او اكثر

ملاحظه مهمه//يجب فرمته رام قبل تنصيب برنامج عن طريق هذا البرنامج

http://www.mediafire.com/download/93...rv4%282%29.zip






==================================================
بعد ذلك نقوم بتنزيل برنامج Win32DiskImager-0.9.5-install

https://sourceforge.net/projects/win32diskimager/



ثم نضغط على write

وانتظر لحين حرق برنامج على بطاقه الذاكره
ثم نقوم بوضع بطاقه براسبيري ونقوم بتشغيل راسبيري

حيث نربطه على شاشه مع كيبورد وماوس


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 12-06-2016 الساعة 01:39 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

somood
:: مهندس جيد ::
تاريخ التسجيل: Jan 2011
الدولة: نابلس
المشاركات: 222
نشاط [ somood ]
قوة السمعة:0
قديم 12-06-2016, 01:33 PM المشاركة 3   
افتراضي


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


بالتوفيق يا أخي في هذا الموضوع المميز

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً حسن هادي محمود ( شكر العضو على هذه المشاركة )
اعجاب حسن هادي محمود ( أعجبته المشاركة )

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 12-06-2016, 03:12 PM المشاركة 4   
افتراضي


بعد تشغيل راسبيري

نتظره قليلا لتخرج لنا سطح مكتب
وبتم تعامل معه كما في حاسوب ولكن هناك بعض قيود التي سوف نناقشها فيما بعد



التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 12-06-2016 الساعة 03:17 PM
احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 2 اعجاب
شكراً عبدالله حجازى ( شكر العضو على هذه المشاركة )
اعجاب وليد K, عبدالله حجازى ( أعجبته المشاركة )

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 13-06-2016, 09:30 AM المشاركة 5   
افتراضي الدخول على راسبيري عبر حاسبه (( اي تحكم براسبيري عن بعد ))


السلام عليكم ورحمه الله وبركاته

سنركز اليوم على نقطتين
2- التحكم بأعدادت الراسبيري
3- الدخول على راسبيري عبر حاسبه (( اي تحكم براسبيري عن بعد ))

نحتاج الى برنامج اسمه putty وهو يعمل بدون تنصيب
لتحميل البرنامج
http://www.putty.org/

ومن ثم Download PuTTY

طريقه اتصال مع راسبيري
نقوم بأدخال ايبي راسبيري في مربع host name or IP address

ومن ثم open



وبعد ذلك تفتح لنا شاشه اوامر تطلب منك تسجيل الدخول
username : pi
pass: raspberry




ملاحظه// عندما تكتب الباسورد فانك لاتشاهدها تكتب على شاشه اي تكون غير مرئيه

=================================
لغرض دخول على الاعدادات الراسبيري نكتب

sudo raspi-config

عندها تظهر لنا هذه شاشه



نختار الاول لغرض عمل expanded للذاكره لان الذاكره تكون مقفوله على حجم 2GB
لذا هذه خطوه تحرر الذاكره لتستغل حجمها الكامل


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 13-06-2016 الساعة 09:35 AM

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 15-06-2016, 10:32 AM المشاركة 6   
افتراضي 4- شرح بعض الاوامر المهمه


السلام عليكم ورحمه الله وبركاته

شرح بعض اوامر مهمه في راسبيري
اذا انت دخلت على راسبيري ومن ثم حاولت أضافه مجلد كما في حاسبه فأن النظام سوف لن يسمح لك ذلك اي ان نظام محمي والسبب في ذلك انت دخلت بأسم مستخدم pi بينما اسم مستخدم root له صلاحيه كامله

وبالطبع انت راح تدخل بأسم مستخدم pi وهناك اومر تتيح لك انشاء مجلدات وملفات بكل سهوله وايضا يمكنك ايضا اضافه مجلد او بيانات لراسبيري بعد رفع حمايه من ملف مراد تعديل عليه

هنا شرح لبعض اوامر

http://randomnerdtutorials.com/learn...i-cheat-sheet/

نبدأ اولا بأمر

sudo raspi-config

هذا الامر يدخلك على أعدادات الرسبيري ومنه يمكنك توسيع بطاقه الذاكره وهذه اهم خطوه وكذلك يمكنك تغير الباسورد من raspberry الى اي شفره تريدها
=========================================
الامر
mkdir NewFolder

لغرض انشاء مجلد اسمه newfolder
=======================================
الامر
cd


هذا امر مهم يقوم بتوجيهك الى مسار معين يعني مثلا انت تريد بحاسبه تدخل على هارد D لكي تصل الى D لابد من وجود مسار وكذلك حال براسبيري نستخدم cd
مثلا اريد اوصل لمجلد اسمه html هذا موجود في مجلد اسمه www وهذا اخير موجود في مجلد اسمه var لذلك لكي نصل لمجلد html نكتب
cd /var/www/html
لرجوع الى مجلد الرئيسي نكتب فقط cd
======================================
الامر تحديث
sudo apt-get update
وترقيه
sudo apt-get upgrade

وهذه من اوامر مهمه جدا والتي نقوم بتنفيذها عند تنصيب النظام وبعد ما
نقوم بعمل expand للبطاقه الذاكره
===========================================
الامر انشاء ملف
sudo nano namefile

مثال
sudo nano test.php

or

sudo nano test.txt
========================================
الامر حذف
sudo rm namefile

الامر حذف مثلا اريد حذف ملف text.txt

sudo rm txt

هل يمكن كتابه عدت اوامر معا الجواب نعم مثال

sudo rm text.txt & sudo nano text.txt


اخبرته احذف ملف
text.txt وقم بأنشاءه من جديد الغايه من ذلك حتى امسح بيانات ملف واعيد وضع بيانات جديده

ملاحظه // لغرض انشاء ملف في مجلد html عليك اولا الذهاب الى مسار html وبعدها تنشأ ملف
مثلا اريد انشاء ملف اسمه index.php في مجلد html

اولا نكتب
sudo cd /var/www/html ومن ثم نضغط انتر
بعدها نكتب sudo nano index.php
========================
هناك امر مهم وهو يسمح لك بأضافه ملفات بشكل مباشر داخل راسبيري مثلا اريد اضافه ملفات سيرفر الى ملف html مره واحده
بالطبع اذا وضعت فلاش براسبيري واخذت منه ملفات وقمت بعمليه نسخ وذهبت الى ملف html وقمت هناك بعمليه لصق فأن نظام لن يسمح لي ذلك
لهذا عليه فتح الحمايه عن هذا ملف عن طريق هذا الامر
sudo chown pi:root html
===========================
لعمل shutdown

sudo poweroff

لعمل ريستارتsudo reboot


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 15-06-2016 الساعة 11:06 AM

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 16-06-2016, 12:30 PM المشاركة 7   
افتراضي 5- شرح سيرفر mosquitto وكيف نستفاد منه في تحكم بعدد كبير من الاجهزه


السلام عليكم ورحمه الله وبركاته

نشرح اليوم ان شاء الله أهم موضوع وهو
5- شرح سيرفر mosquitto وكيف نستفاد منه في تحكم بعدد كبير من الاجهزه

انظر الصوره التاليه



انت اذا كان لديك 10 esp8266 او 10 الاردينو وتريد تربطها معا اي يتم تبادل البيانات فيما بينهما او لكل واحده منها مرتبط بعدد من الاجهزه وتريد تتحكم بها في وقت واحد

بوضع الطبيعي اذا عملت تطبيق اندرويد مثلا فأنك تستطيع أتصال بأحد هذه قطع فقط عن طريق ايبي ولكن كيف اتصل للبقيه لازم تغير ايبي ومن تتصل بقطع اخرى
لذا نحتاج الى وسيله تجعلنه نصل الى هذه القطعه والتحكم بها او اخذ البيانات منها بكل سهوله لذا نحتاج مايسمى MQTT Broker

هنا كل قطع ( ESP8266 او الاردينو ) سوف تتصل بسيرفر اسمه mqtt broker وهذا سيرفر سوف يقرر لمن يرسل البيانات وفق مايسمى بالعنوان TOPIC

دعونا نختصر موضوع
كل مانحتاجه هو 3 اشياء ضروريه وهي TOPIC وPUBLISH , SUBSCRIBE
احنا قلنه لكل قطع esp8266 او الاردينو متصله مع mqtt broker لذا كيف سيتعامل معها هذا سيرفر وذلك عن طريق مايسمى عنوان لكل قطعه TOPIC

كيف نكتب العنوان كتالي
Home
او
Home/Room1
او
Home/room1/dev1

اذا كنت تريد كتابه اكثر من مستوى لازم تضع / بين مستوى واخر

ماهو SUBSCRIBE وهو من نخبر كلاينت ((ESP8266 او الاردينو)) قم بأستقبال البيانات القادمه من عنوان معين

ماهو PUBLISH وهو من نخبر كلاينت ((ESP8266 او الاردينو)) قم بارسال البيانات الى عنوان معين

ايضا يوجد مصطلح اخر وهو
UNSUBSCRIBE

ماهو UNSUBSCRIBE وهو من نخبر كلاينت ((ESP8266 او الاردينو)) توقف عن أستقبال البيانات القادمه من عنوان معين

===============================
لنضرب مثال لنفترض عن 2 كلاينت اي 2 من ESP8266 اريد من ارسل من كلاينت اول كلمه my name hasan وارسلها الى كلاينت الثاني ليقوم هو برد علي ويقول مثلا hello hasan

طبعا هذا مثال توضيحي وانت بالطبع يمكنك ارسال ماتشاء من البيانات وفق للنظام الذي تريده

هسى اشلون راح ارتب مثال
لنعطي عنوان الى كلاينت الاول ونسميه مثلا
TOPIC==>
ESP1
لنعطي عنوان الى كلاينت الثاني ونسميه مثلا

TOPIC==>ESP2

الان كخطوه الاولى لازم كلاينت الاول والثاني يتصل ب mqtt broker

كود:
const char* mqtt_server = "210.201.4.100";//"YOUR_RPi_IP_Address"
  client.setServer(mqtt_server, 1883);
الخطوه الثاني نخبر كلاينت الاول بأن يستقبل البيانات من كلاينت الثاني وكذلك الحال بالنسبه للكلاينت الثاني

كلاينت الاول
كود:
/ This functions reconnects your ESP8266 to your MQTT broker
// Change the function below if you want to subscribe to more topics with your ESP8266 
void reconnect() {
  // Loop until we're reconnected
  while (!client.connected()) {
    Serial.print("Attempting MQTT connection...");
    // Attempt to connect
    if (client.connect("ESP8266Client")) {
      Serial.println("connected");  
      // Subscribe or resubscribe to a topic
      // You can subscribe to more topics (to control more LEDs in this example)
      client.subscribe("ُESP2");
    
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      // Wait 5 seconds before retrying
      delay(5000);
    }
  }
}
وفي كلاينت الثاني
كود:
/ This functions reconnects your ESP8266 to your MQTT broker
// Change the function below if you want to subscribe to more topics with your ESP8266 
void reconnect() {
  // Loop until we're reconnected
  while (!client.connected()) {
    Serial.print("Attempting MQTT connection...");
    // Attempt to connect
    if (client.connect("ESP8266Client")) {
      Serial.println("connected");  
      // Subscribe or resubscribe to a topic
      // You can subscribe to more topics (to control more LEDs in this example)
      client.subscribe("ESP1");
     
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      // Wait 5 seconds before retrying
      delay(5000);
    }
  }
}
الان راح ارسل البيانات my name hasan من كلاينت الاول الى عنوان ESP2
كود:

client.publish("ESP2", "my name hasan");
طبعا كلاينت الثاني راح يستقبل البيانات عن طريق داله اسمها callback
كود:
void callback(String topic, byte* message, unsigned int length) {
  
  for (int i = 0; i < length; i++) {
    Serial.print((char)message[i]);
    messageTemp += (char)message[i];
  }
 

  // If a message is received on the topic ESP1
  if(topic=="ESP2"){
        
        client.publish("ESP1", "Hello hasan");
      }
      
}


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 16-06-2016 الساعة 01:03 PM

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 17-06-2016, 05:01 AM المشاركة 8   
افتراضي 6-تنصيب مكتبه mosquitto في راسبيري باي


السلام عليكم ورحمه الله وبركاته

كيف يمكننا الحصول على سيرفر mosquitto هناك طريقتين
1- سيرفر حي مثل test.mosquitto.org

http://test.mosquitto.org/
وهو سيرفر يمكن لاي الشخص الوصول اليه ويمكننا التحكم من خلاله

اهم البورتات
The server listens on the following ports:

1883 : MQTT, unencrypted
8883 : MQTT, encrypted
8884 : MQTT, encrypted, client certificate required
8080 : MQTT over WebSockets, unencrypted
8081 : MQTT over WebSockets, encrypted

نحن نستخدم 1883 اذا كان دخول بدون باسورد اما اذا كان تريد دخول يطلب باسورد نختار البورت 8883

ملاحظه مهمه// هذا سيرفر مجاني ويمكن لاي شخص الوصول اليه لذلك يجب ان تعطي عنوان مميز topic لاي موديل عندك لكي لايستطيع اي احد التنصت على البيانات مرسله
مثلا لوعطيت احد موديل لديك ب topic==>Room وهناك شخص اخر اعطى نفس الاسم فان ذلك الشخص ممكن ان يعمل subscribe لهذا العنوان ويمكنه مشاهده البيانات لذا اعطي عنوان مميز

كما قلنا العنوان يمكن ان يكون اكثر من مستوى تفصل بين مستوى واخر بـــــ /

=========================================
2- طريقه الثانيه من خلال سيرفر محلي اي سيرفر خاص بنا فقط
هنا نستخدم راسبيري
نقوم بتنصيب مكتبه mosquitto لكي يصبح راسبيري يدعم MQTT

قبل هذه خطوه تأكد انك عملت تحديث وترقيه للنظام
عن طريق الامر
sudo apt-get update
sudo apt-get upgrade


بعد ذلك قم بتنصيب هذه مكتبه بتباع هذه اوامر بترتيب وبدون ترك اي احدا منها
هذه اوامر مهمه في تنصيب مكتبه

=================================================


sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key

sudo apt-key add mosquitto-repo.gpg.key

cd /etc/apt/sources.list.d/

sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list

cd


sudo apt-get update

sudo apt-get install mosquitto

sudo apt-get install mosquitto-clients

sudo apt-get install php5-dev

sudo apt-get install libmosquitto-dev

sudo pecl install Mosquitto-alpha


ثم نكتب

cd /etc/php5/mods-available

وبعدها نقوم بأنشاء ملف اسمهmosquitto.ini

sudo nano mosquitto.ini

ثم نضع هذا الكود بملف
extension=mosquitto.so

ولحفظ ملف نضغط على ctrl+x ثم y



ثم نعمل جيك للمكتبه
this for check version of the Mosquitto library

dpkg -l | grep mosquitto




واخير نفعل php

اي enabled that with sudo php5enmod mosquitto

عن طريق الامر
sudo php5enmod mosquitto
echo "<?php phpinfo(); ?>" > ~/tester.php
php ~/tester.php


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 17-06-2016 الساعة 05:05 AM
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 02:09 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025