كيفية الاتصال بشبكة WiFi باستخدام Arduino

تبدأ الأجهزة الإلكترونية التي تصنعها باستخدام Arduino في أن تصبح رائعة جدًا عند توصيلها بالشبكة.

دعونا نرى كيفية توصيل Arduino بشبكة WiFi.

يجب أن يكون لدى Arduino اتصال WiFi ، على سبيل المثالArduino MKR WiFi 1010، وهو الذي أستخدمه ، أو ملفاردوينو أونو واي فاي Rev2و اخرين.

سنستخدم المكتبةواي فاي نينا. هذه المكتبة سهلة الاستخدام للغاية وتتيح لنا الاتصال بشبكة WiFi ، ولكن أيضًا إنشاء شبكة WiFi إذا أردنا ذلك.

ابدأ رسم Arduino باستخدام:

#include <SPI.h>
#include <WiFiNINA.h>

المكتبة SPIتستخدمه مكتبة WiFiNINA ، لذا قم بتحميلها أيضًا. SPI تعنيالواجهة الطرفية التسلسلية

الWiFiNINAتتيح لنا المكتبة الوصول ، من بين أشياء أخرى ، إلىWiFiالشيء الذي سنستخدمه.

الآن دعونا نعمل على جسمsetup()وظيفة ، وظيفة Arduino الأساسية الوحيدة التي سنقوم بتنفيذها (سنتركloop()فارغة).

void setup() {

}

أولاً ، سنقوم بتعريف سلسلتين للاحتفاظ باسم الشبكة و SSID وكلمة مرور الشبكة.

أنا أستعملاردوينو إنشاء، لذلك أستخدم الثوابت التي سأعبئها بشكل منفصل فيSecretالتبويب:

char ssid[] = SECRET_SSID;
char pass[] = SECRET_PASS;

بعد ذلك ، سنقوم بتهيئة الواجهة التسلسلية لتوصيل المعلومات من Arduino إلى Arduino Create:

Serial.begin(9600);

وننتظر حتى يصبح جاهزًا للاستخدام

while (!Serial);

بعد ذلك ، نضع WiFi.begin () داخل حلقة للتحقق مما إذا كانت قيمة الإرجاع هيWL_CONNECTED، وتستمر في إعادة المحاولة كل ثانيتين حتى يتم:

int status = WL_IDLE_STATUS;
while (status != WL_CONNECTED) {
  Serial.print("Connecting to ");
  Serial.println(ssid);
  status = WiFi.begin(ssid, pass);
  delay(2000);
}

نقوم أولاً بتهيئته إلىWL_IDLE_STATUS، ثابت آخر في WiFiNINA ، لكن يمكننا أيضًا تهيئته إلى سلسلة فارغة.

بمجرد أن ننهي هذه الحلقة ، نكون متصلين ويمكننا استدعاءWiFi.localIP()طريقة الحصول على عنوان IP الخاص بالجهاز وطباعته على المسلسل:

Serial.print("IP address: ");
Serial.println(WiFi.localIP());

ها هو البرنامج الكامل:

#include <SPI.h>
#include <WiFiNINA.h>

void setup() {
  char ssid[] = SECRET_SSID;
  char pass[] = SECRET_PASS;

Serial.begin(9600); while (!Serial);

int status = WL_IDLE_STATUS; while (status != WL_CONNECTED) { Serial.print("Connecting to "); Serial.println(ssid); status = WiFi.begin(ssid, pass); delay(5000); }

Serial.print("IP address: "); Serial.println(WiFi.localIP()); }

void loop() {

}

يمكنك الوصول إلى معلومات أخرى الآن ، مثل SSID للشبكة معWiFi.SSID()وقوة الإشارة باستخدامWiFi.RSSI():

Serial.print("Signal strength in dBm: ");
Serial.print(WiFi.RSSI());

في هذه المرحلة ، أنت متصل ويمكنك الانتقال إلى مهام أخرى.

ملاحظة: قد يتوفر لديك ترقية للبرنامج الثابت NINA. أضف هذا الشيك إلى برنامجك:

if (WiFi.firmwareVersion() < WIFI_FIRMWARE_LATEST_VERSION) {
  Serial.println("Firmware upgrade available");
}

لمعرفة ما إذا كان هذا هو الحال. إذا كان الأمر كذلك ، باستخدام Arduino IDE (لا يمكنني رؤية كيفية القيام بذلك من Arduino Create) ، قم بالاتصال باللوحة ثم قم بتحميل مثال الرسمFile -> Examples -> WiFiNINA -> Tools -> FirmwareUpdater

ثم افتح ملفTools -> WiFi101 / WiFiNINA Firmware Updaterقائمة:

واضغط علىUpdate Firmwareزر:


المزيد من دروس الإلكترونيات: