Arduino:Примеры/wifi101ConnectWithWEP
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Подключение к WEP-зашифрованной WiFi-сети (WiFi Shield 101)[1]
Этот пример показывает, как при помощи модуля WiFi Shield 101 или платы MKR1000 подключиться к WEP-зашифрованной 802.11b/g сети. При успешном подключении на мониторе порта IDE Arduino будет показано соответствующее сообщение.
Необходимое оборудование
- Модуль Arduino WiFi Shield 101
- Плата Arduino или Genuino Zero (или MKR1000)
Цепь
7-ой цифровой контакт используется в качестве контакта для «рукопожатия» между WiFi Shield 101 и платой, т.е. ни для каких других целей его использовать не следует.
Также для этого примера вам понадобится доступ к беспроводной 802.11b/g сети, подключенной к интернету. Кроме того, вам надо будет поменять сетевые настройки в самом скетче, чтобы они соответствовали идентификатору вашей сети (SSID).
Пароли к сетям с WEP-шифрованием – это шестнадцатеричные строки, называемые «ключами». WEP-зашифрованные сети могут иметь 4 разных ключа, и каждый из них присвоено собственное значение «индекса ключа».
Таким образом, для подключения к WEP-зашифрованной сети вам понадобится SSID, ключ и индекс ключа.
На картинке выше модуль WiFi Shield 101 установлен поверх платы Arduino/Genuino Zero.
Код
/*
Этот скетч подключается к WEP-зашифрованной WiFi-сети,
а затем выводит на Serial Monitor различные сетевые данные
вроде MAC-адреса WiFi Shield, полученного IP-адреса и т.д.
Если вы используете 40-битный WEP, то вам понадобится ключ длиной
в 10 символов, а символы должны быть шестнадцатеричными (0-9 или A-F).
Например, ключ «ABBADEAF01» для 40-битного WEP будет работать,
а «ABBADEAF» и «ABBAISDEAF» – нет. Первый слишком короткий, а второй
содержит символы «I» и «S», которые не являются шестнадцатеричными.
Для 128-битного WEP понадобится строка длиной в 26 символов.
Например, подойдет строка «D0D0DEADF00DABBADEAFBEADED», т.к. она
состоит из 26 символов и все они находятся в пределах диапазонов
0-9 и A-F.
Цепь:
* WiFi Shield, подключенный к Arduino
Создан 13 июля 2010 пользователем dlf (Metodo2 srl),
модифицирован 31 мая 2012 Томом Иго (Tom Igoe).
*/
#include <SPI.h>
#include <WiFi101.h>
char ssid[] = "yourNetwork"; // SSID (название) вашей сети
char key[] = "D0D0DEADF00DABBADEAFBEADED"; // ключ к вашей сети
int keyIndex = 0; // индекс ключа к вашей сети
int status = WL_IDLE_STATUS; // статус WiFi
void setup() {
// Инициализируем последовательную передачу данных и ждем открытия порта:
Serial.begin(9600);
while (!Serial) {
; // ждем подключения последовательного порта (нужно только для плат со штатным USB-портом)
}
// Проверяем наличие 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 WEP network, SSID: "); // "Пытаемся подключиться к WEP-сети, SSID: "
Serial.println(ssid);
status = WiFi.begin(ssid, keyIndex, key);
// Ждем подключения в течение 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);
}
void printCurrentNet() {
// Показываем SSID сети, к которой подключились:
Serial.print("SSID: "); // "SSID: "
Serial.println(WiFi.SSID());
// Показываем MAC-адрес роутера, к которому подключились:
byte bssid[6];
WiFi.BSSID(bssid);
Serial.print("BSSID: "); // "BSSID: "
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);
Serial.println();
}
См.также
- WiFi library – Your reference for the WiFi101 Library.
- WiFi Shield – Product details for the WiFi 101 Shield.
- MKR1000 – Product details for the MKR1000 board.
- Connect No Encryption - Demonstrates how to connect to an open network.
- Connect With WPA - Demonstrates how to connect to a network that is encrypted with WPA2 Personal.
- Scan Networks - Displays all WiFi networks in range.
- Simple Web Server WiFi – Turn on and off an LED accessing this simple Web Server.
- UDP NTP Client - Query a Network Time Protocol (NTP) server using UDP.
- WiFi Chat Server - Set up a simple chat server.
- WiFi Web Client - Connect to a remote webserver.
- WiFi Web Client Repeating - Repeatedly make HTTP calls to a server.
- WiFi Web Server - Serve a webpage from the WiFi shield with Analog Input values.
- WiFi Send Receive UDP String - Send and receive a UDP string.
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino