چگونه با شیلد اترنت آردواینو از طریق کتابخانه میتوان به راحتی ارتباط برقرار کرد در این قسمت میخواهیم کتابخانه اترنت آردواینو را به شکل کاملا کاربردی به همراه مثال توضیح دهیم پس همچنان با ما همراه باشید .
با استفاده از کتابخانه اترنت آردوینو و شیلد آردوینو، می توان برد آدوینو را به اینترنت متصل کرد که هم می تواند بصورت Slave کار کند و دیتاهای بیرون را دریافت کند و هم می تواند Client باشد و به سایر نودهای بیرون دیتا ارسال کند. آردوینو با استفاده از پروتکل SPI با شیلد ارتباط برقرار می کند. برای برقرای ارتباط توابع زیر تعریف شده است:
این تابع تنظیمات شبکه و کتابخانه را انجام می دهد. نحوه استفاده :
Ethernet.begin(mac, ip, dns, gateway, subnet)
Mac آدرس فیزیکی برد می باشد و در ورژن های جدید شیلد اترنت، یک برچسب بر روی برد قرار دارد که بر روی آن ادرس فیزیکی نوشته شده است.
IP ادرس برد اترنت می باشد.
Gateway و Subnet اختیاری هستند.
این تابع برای مشخص کردن IP شیلد آردوینو بکار می رود و زمانی مفید است که آدرس بصورت اتوماتیک توسط DHCP انجام می شود.
هنگام تخصیص یک IP آدرس توسط DHCP ، دستگاه اترنت آدرس تخصیص یافته را برای مدت معینی در اختیار دارد. برای تجدید زمان آدرس از این تابع استفاده می کنند و بسته به ساختار سرور ممکن است آدرس جدیدی دریافت کند و یا همان آدرس قبلی را نگه دارد و یا اینکه آدرسی اختصاص نیابد.
برای تعریف آدرس IP محلی و یا ریموت استفاده می شود.
برای مثال کد زیر تعریف IP را نشان می دهد و آدرس آن را بر روی مانیتور نمایش می دهد.
یک سرور را ایجاد می کند که به اتصالات داخلی شبکه گوش می دهد.
Server(port);
برای مثال برنامه زیر به اتصالات داخلی گوش می دهد و درصورت برقراری ارتباط دیتای دریافتی از client را به خود client برمی گرداند.
به سرور می گوید شروع به گوش دادن به اتصالات داخلی شبکه بکن. مثلا اگر بخواهیم داده ای بصورت آنلاین از اینترنت بگیریم از این تابع استفاده می کنیم که هر وقت داده از اینترنت رسید یه سری عملیات انجام شود.
Client را مشخص می کند که به سرور متصل است و یه سری دیتای آماده برای تبادل دارد.
برای نوشتن اطلاعات بر روی تمام Clientهای متصل به سرور کاربرد دارد.
server.write(buf, len)
server.write(val)
Val : مقدار تک بیتی یا کاراکتر برای نوشتن بر روی Clienها
Buf : یک آرایه شامل یه سری از بایت ها
Len : طول بافر
دستورات Print و Println نیز مشابه همین دستور هستند.
یک Client را ایجاد می کند که می تواند با یک IP آدرس یا یک پورت ارتباط برقرار کند.
مشخص می کند آیا Client آماده است.
اگر Client به سرور وصل باشد True ، و اگر وصل نباشد False را برمی گرداند.
با یک IPآدرس و یا پورت مشخص ارتباط برقرار می کند.
client.connect(ip, port) or client.connect(URL, port)
اطلاعات Client را بر روی سروری که Client به آن متصل است می نویسد.
client.write(val)
client.write(buf, len)
دیتای ارسالی از سرور به Client متصل به آن را می خواند.
تا زمانی که تمامی کاراکترهای ارسالی داخل بافر، ارسال شوند، منتظر می ماند.
ارتباط با سرور را قطع می کند.