این مثال چگونگی پاسخ شما را به یک درخواست HTTP با استفاده از یک WiFi shield را نشان می دهد. آن یک جستجوی گوگل برای عبارت “Arduino” را برمی گرداند. نتایج حاصل از این جستجو از طریق پنجره سریال آردینو بصورت HTML قابل مشاهده است. این مثال برای یک شبکه دارای رمزنگاری WPA نوشته شده است. برای WEP یا WPA وای فای را تغییر دهید.()begin را مطابق با آن فراخوانی کنید.
سخت افزار مورد نیاز
Arduino WiFi Shield
شیلد سازگار با برد آردینو
مدار
شیلد WiFi از پین های 10 ، 11 ، 12، و 13 برای ارتباط SPI به ماژول HDG104 استفاده می کند. پین 4 دیجیتال ، برای کنترل پین انتخاب slave روی SD کارت استفاده می شود. برای این مثال شما باید به شبکه وایرلس 802.11b/g که به اینترنت متصل است؛ دسترسی داشته باشید.
شما احتیاج خواهید داشت تنظیمات شبکه در طرح را مطابقSSID شبکه خاص خود تغییر دهید.
برای شبکه های WPA/WPA2 که از رمزنگاری شخصی WPA/WPA2 استفاده می کنند، شما به SSID و پسورد نیاز دارید.شیلد قادر به اتصال به شبکه دارای رمزنگاری قوی WPA2 نیست.
پسورد در شبکه WEP ، رشته های هگزادسیمال به عنوان کلید شناخته شده هستند. یک شبکه WEP می تواند 4 کلید متفاوت داشته باشد؛ به هر کلید یک مقدار”Key Index” اختصاص داده شده است. برای شبکه های رمزگذاری شده ی WEP ،شما به SSID ، کلید ، و شماره کلید احتیاج دارید.
![برای دیدن سایز بزرگ روی عکس کلیک کنید
نام: WiFiShield_bb.jpg
مشاهده: 78
حجم: 12.2 کیلو بایت](http://forum.arduino.ir/attachment.php?attachmentid=67&d=1364449974&thumb=1)
در تصویر بالا ، آردینو باید در زیر شیلد WiFi قرار بگیرد.
کد:
#include <SPI.h>
#include <WiFi.h>
char ssid[] = "YourNetwork"; // شبکه شما SSID (اسم)
char pass[] = "password"; // پسورد شبکه شما
// ( WEP یا استفاده کنید به عنوان کلید برای, WPA استفاده کنید برای)
int keyIndex = 0; //(مورد نیاز برای wep) فهرست شماره کلید شبکه شما
int status = WL_IDLE_STATUS;
// استفاده کنید DNS اگر نمی خواهید از
// (و طرح خود را کاهش دهید)
// از عدد آی پی بجای نام سرور استفاده کنید:
IPAddress server(173,194,73,105); // (no DNS) عدد آی پی برای گوگل
//char server[] = "www.google.com"; //آدرس نام گوگول (DNS با استفاده از)
// مقداردهی اترنت کتابخانه کلاینت
// با آدرس آی پی و پورت سرور
// که شما می خواهید متصل شوید
// (پورت 80 پیشفرض است HTTP برای):
WiFiClient client;
void setup() {
Serial.begin(9600);
// تلاش براب اتصال به شبکه Wifi:
while ( status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
status = WiFi.begin(ssid, pass);
// انتظار 10 ثانیه برای اتصال:
delay(10000);
}
Serial.println("Connected to wifi");
printWifiStatus();
Serial.println("\nStarting connection to server...");
// اگر شما متصل شدید از طریق سریال گزارش دهید:
if (client.connect(server, 80)) {
Serial.println("connected to server");
// بسازید Http یک درخواست :
client.println("GET /search?q=arduino HTTP/1.1");
client.println("Host:www.google.com");
client.println("Connection: close");
client.println();
}
}
void loop() {
// در صورتی که بایت های دریافتی از سرور در دسترس وجود دارد
// آنها را بخوانید و چاپ کنید:
while (client.available()) {
char c = client.read();
Serial.write(c);
}
// اگر اتصال قطع شد، کلاینت را متوقف کنید:
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting from server.");
client.stop();
// دیگر کاری انجام ندهید:
while(true);
}
}
void printWifiStatus() {
// شبکه ای که به آن متصل هستید را چاپ کنید SSID:
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
// خود Wifi چاپ آدرس آی پی شیلد:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
// چاپ قدرت سیگنال دریافتی:
long rssi = WiFi.RSSI();
Serial.print("signal strength (RSSI):");
Serial.print(rssi);
Serial.println(" dBm");
}
لینک سایت:Arduino - WiFiWebClient