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

Arduino:Примеры/wifi101ConnectNoEncryption

Материал из Онлайн справочника
Перейти к: навигация, поиск

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

Контакты:

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


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

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

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

  • Модуль Arduino WiFi Shield 101
  • Плата Arduino или Genuino Zero(или MKR1000)

Цепь

7-ой цифровой контакт используется в качестве контакта для «рукопожатия» между WiFi Shield 101 и платой, т.е. ни для каких других целей его использовать не следует.

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

ArduinoWiFi101.png

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

Код

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

См.также

  1. WiFi library – Your reference for the WiFi101 Library.
  2. WiFi Shield – Product details for the WiFi 101 Shield.
  3. MKR1000 – Product details for the MKR1000 board.
  4. Connect With WEP - Demonstrates how to connect to a network that is encrypted with WEP.
  5. Connect With WPA - Demonstrates how to connect to a network that is encrypted with WPA2 Personal.
  6. Scan Networks - Displays all WiFi networks in range.
  7. Simple Web Server WiFi – Turn on and off an LED accessing this simple Web Server.
  8. UDP NTP Client - Query a Network Time Protocol (NTP) server using UDP.
  9. WiFi Chat Server - Set up a simple chat server.
  10. WiFi Web Client - Connect to a remote webserver.
  11. WiFi Web Client Repeating - Repeatedly make HTTP calls to a server.
  12. WiFi Web Server - Serve a webpage from the WiFi shield with Analog Input values.
  13. WiFi Send Receive UDP String - Send and receive a UDP string.

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

  1. Arduino.cc - Wifi101ConnectNoEncryption