Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/ConnectNoEncryption

Материал из Онлайн справочника
< Arduino:Примеры
Версия от 05:49, 14 декабря 2016; Myagkij (обсуждение | вклад) (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2703 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Подключение к незашифрованной WiFi-сети[1]

Этот пример показывает, как при помощи модуля Arduino WiFi Shield подключиться к открытой (незашифрованной) 802.11b/g сети. При успешном подключении на Serial Monitor будет показано соответствующее сообщение.

Необходимое оборудование

  • Сетевой модуль Arduino WiFi Shield;
  • Плата Arduino, совместимая с Shield;

Цепь

WiFi Shield для SPI-соединения с модулем HDG104 использует 10-ый, 11-ый, 12-ый и 13-ый контакты. Для управления SS-контактом SD-карты используется 4-ый цифровой контакт.

Также для этого примера вам понадобится доступ к беспроводной 802.11b/g сети, подключенной к интернету. Кроме того, вам надо будет поменять сетевые настройки в самом скетче, чтобы они соответствовали идентификатору вашей сети (SSID).

WiFiShield bb.png

На картинке выше модуль WiFi Shield установлен поверх платы Arduino.

Код

  1. /*
  2. Этот пример подключается к незашифрованной WiFi-сети.
  3. Затем он выводит на Serial Monitor различные сетевые данные:
  4. MAC-адрес Shield, полученный IP-адрес и др.
  5.  
  6. Цепь:
  7. * Wifi Shield, подключенный к Arduino
  8.  
  9. Создан 13 июля 2010 пользователем dlf (Metodo2 srl),
  10. модифицирован 31 мая 2012 Томом Иго (Tom Igoe).
  11. */
  12.  
  13.  #include <WiFi.h>
  14.  
  15. char ssid[] = "yourNetwork";     // название вашей сети
  16. int status = WL_IDLE_STATUS;     // статус WiFi
  17.  
  18. void setup() {
  19.   // Инициализируем последовательную передачу данных и ждем открытия порта:
  20.   Serial.begin(9600);
  21.   while (!Serial) {
  22.     ; // ждем подключения последовательного порта (нужно только для Leonardo)
  23.   }
  24.  
  25.   // Проверяем наличие Shield:
  26.   if (WiFi.status() == WL_NO_SHIELD) {
  27.     Serial.println("WiFi shield not present");  //  "WiFi Shield не подключен"
  28.     // Дальше не продолжаем:
  29.     while(true);
  30.   }
  31.  
  32.  // Пытаемся подключиться к WiFi-сети:
  33.   while ( status != WL_CONNECTED) {
  34.     Serial.print("Attempting to connect to open SSID: ");  //  "Пытаемся подключиться к открытому SSID"
  35.     Serial.println(ssid);
  36.     status = WiFi.begin(ssid);
  37.  
  38.     // Ждем 10 секунд, пока подключится:
  39.     delay(10000);
  40.   }
  41.  
  42.   // Теперь вы подключены, поэтому начинаем показывать данные о сети:
  43.   Serial.print("You're connected to the network");  //  "Вы подключены к сети"
  44.   printCurrentNet();
  45.   printWifiData();
  46. }
  47.  
  48. void loop() {
  49.   // Проверяем подключение к сети каждые 10 секунд:
  50.   delay(10000);
  51.   printCurrentNet();
  52. }
  53.  
  54. void printWifiData() {
  55.   // Показываем на Serial Monitor IP-адрес WiFi Shield:
  56.   IPAddress ip = WiFi.localIP();
  57.     Serial.print("IP Address: ");  //  "IP-адрес: "
  58.   Serial.println(ip);
  59.   Serial.println(ip);
  60.  
  61.   // Показываем свой MAC-адрес:
  62.   byte mac[6];  
  63.   WiFi.macAddress(mac);
  64.   Serial.print("MAC address: ");  //  "MAC-адрес: "
  65.   Serial.print(mac[5],HEX);
  66.   Serial.print(":");
  67.   Serial.print(mac[4],HEX);
  68.   Serial.print(":");
  69.   Serial.print(mac[3],HEX);
  70.   Serial.print(":");
  71.   Serial.print(mac[2],HEX);
  72.   Serial.print(":");
  73.   Serial.print(mac[1],HEX);
  74.   Serial.print(":");
  75.   Serial.println(mac[0],HEX);
  76.  
  77.   // Показываем маску подсети:
  78.   IPAddress subnet = WiFi.subnetMask();
  79.   Serial.print("NetMask: ");  //  "Маска подсети: "
  80.   Serial.println(subnet);
  81.  
  82.   // Показываем шлюз:
  83.   IPAddress gateway = WiFi.gatewayIP();
  84.   Serial.print("Gateway: ");  //  "Шлюз: "
  85.   Serial.println(gateway);
  86. }
  87.  
  88. void printCurrentNet() {
  89.   // Показываем идентификатор сети (SSID), к которой подключились:
  90.   Serial.print("SSID: ");  //  "Идентификатор сети: "
  91.   Serial.println(WiFi.SSID());
  92.  
  93.   // показываем MAC-адрес роутера, к которому подключились:
  94.   byte bssid[6];
  95.   WiFi.BSSID(bssid);    
  96.   Serial.print("BSSID: ");  //  "MAC-адрес роутера: "
  97.   Serial.print(bssid[5],HEX);
  98.   Serial.print(":");
  99.   Serial.print(bssid[4],HEX);
  100.   Serial.print(":");
  101.   Serial.print(bssid[3],HEX);
  102.   Serial.print(":");
  103.   Serial.print(bssid[2],HEX);
  104.   Serial.print(":");
  105.   Serial.print(bssid[1],HEX);
  106.   Serial.print(":");
  107.   Serial.println(bssid[0],HEX);
  108.  
  109.   // Показываем мощность приемного сигнала:
  110.   long rssi = WiFi.RSSI();
  111.   Serial.print("signal strength (RSSI):");  //  "Мощность сигнала (RSSI):"
  112.   Serial.println(rssi);
  113.  
  114.   // Показываем тип шифрования:
  115.   byte encryption = WiFi.encryptionType();
  116.   Serial.print("Encryption Type:");  //  "Тип шифрования:"
  117.   Serial.println(encryption,HEX);
  118. }

См.также

  1. ConnectNoEncryption : Demonstrates how to connect to an open network
  2. ConnectWithWEP : Demonstrates how to connect to a network that is encrypted with WEP
  3. ConnectWithWPA : Demonstrates how to connect to a network that is encrypted with WPA2 Personal
  4. ScanNetworks : Displays all WiFi networks in range
  5. WiFiChatServer : Set up a simple chat server
  6. WiFiWebClient : Connect to a remote webserver
  7. WiFiWebClientRepeating: Repeatedly make HTTP calls to a server
  8. WiFiWebServer : Serve a webpage from the WiFi shield

Внешние ссылки

  1. Arduino - Connect No Encryption