Arduino:Примеры/ConnectNoEncryption: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
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">») |
Нет описания правки |
||
Строка 24: | Строка 24: | ||
==Код== | ==Код== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
/* | /* | ||
Этот пример подключается к незашифрованной WiFi-сети. | Этот пример подключается к незашифрованной WiFi-сети. |
Версия от 18:18, 14 мая 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Подключение к незашифрованной 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).
На картинке выше модуль WiFi Shield установлен поверх платы Arduino.
Код
/*
Этот пример подключается к незашифрованной WiFi-сети.
Затем он выводит на Serial Monitor различные сетевые данные:
MAC-адрес Shield, полученный IP-адрес и др.
Цепь:
* Wifi Shield, подключенный к Arduino
Создан 13 июля 2010 пользователем dlf (Metodo2 srl),
модифицирован 31 мая 2012 Томом Иго (Tom Igoe).
*/
#include <WiFi.h>
char ssid[] = "yourNetwork"; // название вашей сети
int status = WL_IDLE_STATUS; // статус WiFi
void setup() {
// Инициализируем последовательную передачу данных и ждем открытия порта:
Serial.begin(9600);
while (!Serial) {
; // ждем подключения последовательного порта (нужно только для Leonardo)
}
// Проверяем наличие Shield:
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("WiFi shield not present"); // "WiFi Shield не подключен"
// Дальше не продолжаем:
while(true);
}
// Пытаемся подключиться к WiFi-сети:
while ( status != WL_CONNECTED) {
Serial.print("Attempting to connect to open SSID: "); // "Пытаемся подключиться к открытому SSID"
Serial.println(ssid);
status = WiFi.begin(ssid);
// Ждем 10 секунд, пока подключится:
delay(10000);
}
// Теперь вы подключены, поэтому начинаем показывать данные о сети:
Serial.print("You're connected to the network"); // "Вы подключены к сети"
printCurrentNet();
printWifiData();
}
void loop() {
// Проверяем подключение к сети каждые 10 секунд:
delay(10000);
printCurrentNet();
}
void printWifiData() {
// Показываем на Serial Monitor IP-адрес WiFi Shield:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: "); // "IP-адрес: "
Serial.println(ip);
Serial.println(ip);
// Показываем свой MAC-адрес:
byte mac[6];
WiFi.macAddress(mac);
Serial.print("MAC address: "); // "MAC-адрес: "
Serial.print(mac[5],HEX);
Serial.print(":");
Serial.print(mac[4],HEX);
Serial.print(":");
Serial.print(mac[3],HEX);
Serial.print(":");
Serial.print(mac[2],HEX);
Serial.print(":");
Serial.print(mac[1],HEX);
Serial.print(":");
Serial.println(mac[0],HEX);
// Показываем маску подсети:
IPAddress subnet = WiFi.subnetMask();
Serial.print("NetMask: "); // "Маска подсети: "
Serial.println(subnet);
// Показываем шлюз:
IPAddress gateway = WiFi.gatewayIP();
Serial.print("Gateway: "); // "Шлюз: "
Serial.println(gateway);
}
void printCurrentNet() {
// Показываем идентификатор сети (SSID), к которой подключились:
Serial.print("SSID: "); // "Идентификатор сети: "
Serial.println(WiFi.SSID());
// показываем MAC-адрес роутера, к которому подключились:
byte bssid[6];
WiFi.BSSID(bssid);
Serial.print("BSSID: "); // "MAC-адрес роутера: "
Serial.print(bssid[5],HEX);
Serial.print(":");
Serial.print(bssid[4],HEX);
Serial.print(":");
Serial.print(bssid[3],HEX);
Serial.print(":");
Serial.print(bssid[2],HEX);
Serial.print(":");
Serial.print(bssid[1],HEX);
Serial.print(":");
Serial.println(bssid[0],HEX);
// Показываем мощность приемного сигнала:
long rssi = WiFi.RSSI();
Serial.print("signal strength (RSSI):"); // "Мощность сигнала (RSSI):"
Serial.println(rssi);
// Показываем тип шифрования:
byte encryption = WiFi.encryptionType();
Serial.print("Encryption Type:"); // "Тип шифрования:"
Serial.println(encryption,HEX);
}
См.также
- ConnectNoEncryption : Demonstrates how to connect to an open network
- ConnectWithWEP : Demonstrates how to connect to a network that is encrypted with WEP
- ConnectWithWPA : Demonstrates how to connect to a network that is encrypted with WPA2 Personal
- ScanNetworks : Displays all WiFi networks in range
- WiFiChatServer : Set up a simple chat server
- WiFiWebClient : Connect to a remote webserver
- WiFiWebClientRepeating: Repeatedly make HTTP calls to a server
- WiFiWebServer : Serve a webpage from the WiFi shield