پروژه آردوینو

راه اندازی شیلد شبکه با استفاده از آردوینو

راه اندازی شیلد اترنت آردوینو w5100

 

راه اندازی شیلد شبکه یکی از پروژه های آردوینو است که توسط یکی از دوستان سیسوگی (آقای مقداد محمدی) به عنوان تجربه شروع به کار فرستاده شده که سعی میشه بدون دخل و تصرف منتشر شود . با سیسوگ همراه باشید.

اگر شما هم مقاله ای دارید که فکر می کنید می‌تواند به دیگران کمک کند ، خوشحال می شویم که با نام خودتان آن را منتشر کنیم

 

مدتی بود که یکی از دوستانم ازم می‌خواست که یک مدار براش راه بندازم که با استفاده از یک برنامه اندروید و اینترنت بتونه یه تعداد رله رو کنترل کنه.

بعد از مدتی که سرم خلوت تر شد شروع به کار کردم. تصمیم گرفتم این کارو با برد آردوینو انجام بدم. برای همین یه برد آردوینو تهیه کردم. از اونجایی که میخواست اتصال به اینترنت از طریق کابل LAN  انجام بشه یه شیلد شبکه  (Ethernet) هم برای اتصال برد آردینو به اینترنت تهیه کردم و خیلی ساده اونو روی برد آردوینو UNO قرار دادم.

از اونجایی که عقیده ام اینه هر کاری میخوای انجام بدی رو یکی قبلا انجام داده، شروع به سرچ توی اینترنت کردم تا ببینم چجور باید این اتصال به اینترنت رو از طریق شیلد شبکه (Ethernet) انجام بدم.

کدهای زیادی توی اینترنت پیدا کردم و حتی خود سایت آردوینو، که تقریبا مشابه با هم بودن. در همه این برنامه ها در ابتدا این دستور وجود داشت:

 

در توضیح این خط برنامه کامنت گذاشته بود که آدرس مک شیلد اترنت رو میتونی از برگه ای که روی اون چسبیده بدست بیاری.

راه اندازی شیلد شبکه آردوینو

من هر چی شیلد شبکه ای (اترنت) که خریده بودم رو بالا و پایین کردم هیچ کدی ندیدم!!!!

سوال برام پیش اومد که باید چه کار کنم و این خط از برنامه رو باید چجور بنویسم. همونجور که می‌دونید آدرس مک برای این استفاده میشه که در یک شبکه متشکل از N دستگاه، هر دستگاه با یک نام یونیک شناخته بشه و برای ارتباط بین همدیگه و ارسال و دریافت اطلاعات تداخلی پیش نیاد. با این توضیحی که خدمتتون دادم، اگر نیاز باشه دستگاه در یک شبکه بزرگ قرار بگیره باید به این آدرس مک توجه ویژه ای کرد.

اما اگر شبکه لوکال هست نیازی به حساسیت روی این آدرس نیست. یک تعداد سایت هم هست که با پرداخت پول بهتون یک آدرس مک یونیک می‌فروشن. با این تفاسیر من به این نتیجه رسیدم که متغییر mac[] رو هر چیزی که دلم میخواد میتونم بزارم. چون متاسفانه شرکت سازنده هیچ آدرس مک یونیکی رو برای این شیلد در نظر نگرفته. خوب من اون آدرس رو در نظر گرفتم و برنامه رو روی برد آپلود کردم.

این شیلد شبکه (اترنت) اینجور که بنظر میاد بصورت دیفالت DHCP فعالی دارن. شاید بپرسید یعنی چی؟!

فعال بودن DHCP باعث میشه که وقتی دستگاه شما در یک شبکه قرار گرفت بتونه بصورت اتوماتیک ip بگیره, خوب اگر احیانا خواستید بعد از اتصال دستگاهتون به یک شبکه خواستید بدونید چه ip گرفته خیلی راحت می‌تونید مثال خود آردوینو که در آدرس Example/Ethernet/DhcpAddressPrinter  قرار داره رو روی آردوینو آپلود کنید و توی serial monitor  به راحتی آی پی اختصاص یافته به بردتون رو ببینید. از موضوع دور نشیم!!!!

برنامه مربوط به اتصال به اینترنت به این شکل نوشته شده که بعد از اتصال به اینترنت به سایت msn.com میره و یک کلمه sisoog رو سرچ میکنه و نتایج رو توی serial monitor  بهتون نشون میده.

 

در مورد بعضی از خطوط برنامه نیاز هست که یه توضیحات تکمیلی بدم.

این خط برای این نوشته شده که اگر به هر دلیلی DHCP شیلد شما فعال نبود و نمیتونست بصورت اتوماتیک از روتر ip بگیره، شما به اون ip اختصاص داده باشید.

طبیعتا این IP باید توی رنج IP هایی باشه که روتر به نودهای متصل به خودش اختصاص میده.

 

البته برنامه جوری نوشته شد که اگر نتونه بصورت اتوماتیک ip بگیره به شما اطلاع میده و پیام زیر در serial monitor نمایش داده میشه.

Failed to configure Ethernet using DHCP

امیدوارم این آموزش بدردتون خورده باشه. موفق باشید

 

شیلد اورجینال با لیبل آدرس مک

راه اندازی شیلد شبکه ، نمونه تهیه شده از بازار

شیلد های چینی موجود در بازار ایران

شیلد چینی آردوینو

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

10 دیدگاه در “راه اندازی شیلد شبکه با استفاده از آردوینو

  1. Avatar for مهشید مهشید گفت:

    سلام
    من وقتی شیلد اترنت رو به آردوینو وصل می کنم و برنامه رو آپلود می کنم، ال ای دی های مربوطه همه روشن هستند (pwr, link, 100M, FULLD) و حتی گاهی rx, tx روشن می شوند اما Ethernet.hardwareStatus == EthernetNoHardware رو true می کنه! شما می دونید علت چی میتونه باشه؟
    اترنت رو با یک کابل RJ45 به مودم و LAN محلی وصل کردم.

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام
      فکر میکنم – احتمالا شایط ارتباط سخت افزاری میکروکنترلر و ماژول برقرار نباشه یا مشکل داشته باشه
      گام اول اینه که مطمئن بشید که ارتباط سخت افزاری مشکلی نداره برای این کار می تونید به شکل مستقیم یکی از رجیسترهای خواندنی ماژول رو بخونید ببینید مقدارش با مقدار درج شده توی دیتاشیت ماژول همخوانی داره یا نه

  2. Avatar for حسین حسین گفت:

    سلام آیا میتونم از طریق این برد تصویر انتقال بدم

    1. Avatar for Sisoog Os Sisoog Os گفت:

      سلام
      شما از هر درگاه ارتباطی مثل این میتونید هر چیزی را انتقال بدید

  3. Avatar for نیما نیما گفت:

    منظورم اینکه اگه شبکه محلی نبود چی؟

  4. Avatar for نیما نیما گفت:

    دوستان اگه شبکه محلی نبود چی کار کنم؟

  5. Avatar for مهدیه مهدیه گفت:

    سلام
    من تازه اومدم سمت اردوینو و یک مشکل در شبکه دارم
    من یه اردوینوuno و شیلد شبکه w5100 دارم
    فرض کنیم در شبکه محلی بر روی سرور به آدرس 192.168.1.1/ index . html صفه ای داریم که یک عدد به عنوان ورودی قبول میکنه و یک خروجی برمیگردونه
    حالا چجووری در آردوینو یه مقدار به این آدرس بفرستم و چجوری مقدار برگشتی رو دریافت کنم؟
    ممنون میشم راهنمایی بفرمایید

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      شما به دو طریق میتونید عدد رو روی یک صفحه ورودی بگیرید ؛ یکی استفاده از متد Get است و دیگری متد Post !
      فکر میکنم با توجه به سخت افزار مورد استفاده شما ؛ بهترین راه استفاده از متد Get است.

      1. Avatar for مهدیه مهدیه گفت:

        ممنون
        اما چجوری؟

        1. Avatar for زئوس Zeus زئوس Zeus گفت:

          برای متد GET باید پارامتر های مورد نیازتون رو توی URL قرار بدید یه مختصر از متد GET رو توی آموزش ساخت ربات تلگرام توضیح دادیم .
          این آموزش
          اگر دقیقا توضیح بدید که قصد چه کاری رو دارید ؛ بهتر میتونم راهنماییتون کنم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *