====== Arduino Uno WiFi: распиновка, схема подключения и программирование ======
[[amp>product/arduino-uno-wifi?utm_source=man&utm_campaign=uno-wifi&utm_medium=wiki|Arduino Uno WiFi]] — оригинальная итальянская плата семейства Uno с модулем Wi-Fi.
**[NEW]** На сегодняшний день на смену ей пришла более новая версия платы: [[:products:arduino-uno-wifi-rev-2|Uno WiFi Rev2]] c модулем Wi-Fi и Bluetooth.
{{ :продукты:arduino-uno-wifi:arduino-uno-wifi_overview1.jpg |}}
На Uno WiFi предусмотрено всё для удобной работы с микроконтроллером: 14 цифровых входов/выходов (6 из них могут использоваться в качестве ШИМ-выходов), 6 аналоговых входов, разъём USB, разъём питания, разъём для внутрисхемного программирования (ICSP) и кнопка сброса микроконтроллера.
Изюминка платы — модуль WiFi ESP8266, который позволяет ей обмениваться информацией с другими модулями по беспроводным сетям стандартов 802.11 b/g/n.
ESP8266 позволяет прошивать плату без использования USB-кабеля в режиме OTA (Firmware Over The Air — «микропрограммы по воздуху»).
===== Видеообзор платы =====
{{youtube>_fcSqKr7T7k?large}}
===== Подключение и настройка =====
Для начала работы с платой Uno WiFi в операционной системе Windows скачайте и установите на компьютер интегрированную среду разработки [[articles:arduino-ide-install|Arduino IDE]].
==== Что-то пошло не так? ====
* [[установка-и-настройка-arduino-ide:arduino-uno-restore|У меня не появляется новых устройств при подключении Uno WiFi]]
* [[установка-и-настройка-arduino-ide:arduino-unknown-device|У меня «Неизвестное устройство» вместо Uno WiFi]]
* [[установка-и-настройка-arduino-ide:arduino-uno-update-16u2#прошивка_микроконтроллера_atmega16u2|У меня появилось устройство «ATmega16U2» вместо Uno WiFi]]
==== Настройка модуля WiFi ====
Для первичной настройки Arduino с модулем WiFi выполните следующие действия.
- Подключите питание к плате. Через несколько секунд в списке доступных сетей появится новая — с именем ''Arduino-Uno-WiFi-xxxxxx'', где ''xxxxxx'' — уникальный номер платы.{{ :продукты:arduino-uno-wifi:arduino-uno-wifi_installation1a.png |}}
- Подключитесь к найденной сети и зайдите в браузере по адресу:192.168.240.1
Откроется web-интерфейс настройки платы.{{ :продукты:arduino-uno-wifi:arduino-uno-wifi_installation2.png |}}
- Зайдите в сетевые настройки платы, нажатием на кнопку ''CHANGE'' в пункте ''Network SSID''.{{ :продукты:arduino-uno-wifi:arduino-uno-wifi_installation3a.png |}}
- Выберите вашу сеть Wi-Fi из списка доступных сетей, введите пароль и подключитесь к ней.{{ :продукты:arduino-uno-wifi:arduino-uno-wifi_installation4a.png |}}
- При успешном подключении к Wi-Fi сети появится информация о присвоенном IP-адресе. Запомните или запишите его. В нашем примере мы получили адрес ''192.168.43.17''.{{ :продукты:arduino-uno-wifi:arduino-uno-wifi_installation5a.png |}}Теперь на Arduino Uno WiFi можно зайти с любого устройства, подключенного к этой сети. \\ \\
- Для дальнейшей работы с платой переключите ваш ПК с Wi-Fi-сети ''Arduino-Uno-WiFi-xxxxxx'' на вашу домашнюю беспроводную сеть — ''Amperka Mobile''.{{ :продукты:arduino-uno-wifi:arduino-uno-wifi_installation6a.png |}}
- Зайдите в браузере по выданному ранее IP-адресу. Откроется тот же web-интерфейс настройки платы.{{ :продукты:arduino-uno-wifi:arduino-uno-wifi_installation7.png |}}
Обратите внимание: в данный момент плата работает в режиме «клиент + точка доступа» ''AP+STA''. Если вы хотите прошить плату по Wi-Fi, необходимо переключить режим работы платы из ''AP+STA'' в ''STA''
- Зайдите в сетевые настройки платы, нажав на кнопку ''CHANGE'' в пункте ''Network SSID''.{{ :продукты:arduino-uno-wifi:arduino-uno-wifi_installation8a.png |}}
- Переключите режим сети из ''AP+STA'' в ''STA'' кнопкой ''SWITCH TO STA MODE''.{{ :продукты:arduino-uno-wifi:arduino-uno-wifi_installation9a.png |}}
- В колонке ''WiFi Mode'' отобразится режим ''STA''.{{ :продукты:arduino-uno-wifi:arduino-uno-wifi_installation10a.png |}}
Это значит, вы всё сделали верно, и можно переходить к прошивке платы по Wi-Fi.
==== Прошивка по WiFi ====
Arduino Uno WiFi имеет в своём запасе ещё один приятный бонус — возможность загружать скетчи без использования USB-кабеля в режиме OTA (Firmware Over The Air). Рассмотрим подробнее, как это сделать.
- [[продукты:arduino-uno-wifi#настройка_модуля_wifi|Выполните все пункты подключения платы Uno WiFi к вашей домашней сети.]]
- Отключите плату от ПК и подключите к другому источнику питания — например, к [[amp>product/power-supply-adapter-robiton-tn1000s?utm_source=man&utm_campaign=uno-wifi&utm_medium=wiki|блоку питания]] или [[amp>product/arduino-power-shield-li-ion?utm_source=man&utm_campaign=uno-wifi&utm_medium=wiki|Power Shield]].
- Запустите Arduino IDE. {{ :продукты:arduino-uno-wifi:arduino_firmware_ota1.png |}}
- Сообщите среде IDE, с какой платой будете работать. Для этого перейдите в меню:
Инструменты
//Плата// и выберите плату «Arduino Uno WiFi».{{ :продукты:arduino-uno-wifi:arduino_firmware_ota2.png |}}
- Теперь необходимо сообщить среде программирования номер COM-порта, который соответствует подключённой плате.
Для этого необходимо войти в меню:
Инструменты
//Порт// и выбирать нужный порт.
Так как мы прошиваем Arduino по WiFi, плата определится как удалённое устройство с IP-адресом
{{ :продукты:arduino-uno-wifi:arduino_firmware_ota3.png |}}
=== Загрузка скетча ===
Среда настроена, плата подключена. Можно переходить к загрузке скетча.
Arduino IDE содержит большой список готовых примеров, в которых можно подсмотреть решение какой-либо задачи. Выберем среди примеров мигание светодиодом — скетч «Blink».{{ :продукты:arduino-uno-wifi:arduino_firmware_ota4.png |}}
Прошейте плату, нажав на иконку загрузки программы.{{ :продукты:arduino-uno-wifi:arduino_firmware_ota5a.png |}}
После загрузки светодиод начнёт мигать раз в секунду. Это значит, что всё получилось.
Теперь можно переходить к примерам использования.
===== Примеры использования =====
==== Web-сервер ====
Поднимем простой web-сервер, который будет отображать страницу с текущими значениями аналоговых входов.
/*
Пример простого web-сервера, работающего на Arduino Uno WiFi.
Сервер показывает значения на аналоговых входах и обновляет информацию каждые две секунды.
Обратитесь к серверу по адресу http:///arduino/webserver/
Обратите внимание: пример работает только с Arduino Uno WiFi Developer Edition.
*/
#include
#include
void setup() {
Wifi.begin();
Wifi.println("Web Server is up"); // Выводим сообщение о старте сервера в wifi-консоль
}
void loop() {
while(Wifi.available()){
process(Wifi);
}
delay(50);
}
void process(WifiData client) {
String command = client.readStringUntil('/');
if (command == "webserver") {
WebServer(client);
}
}
void WebServer(WifiData client) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println("Refresh: 2"); // Заголовок, который задаёт период обновления страницы в секундах
client.println();
client.println(""); // Формируем страницу
client.println(" UNO WIFI Web-server ");
client.print("Пример вывода значений с аналоговых пинов
");
client.print("");
for(int analogChannel = 0; analogChannel < 4; analogChannel++) {
int sensorReading = analogRead(analogChannel);
client.print("- на аналоговом входе ");
client.print(analogChannel);
client.print(": ");
client.print(sensorReading);
client.print("
");
}
client.println("
");
client.print(DELIMITER); // Не забудьте закрыть соединение!
}
===== Элементы платы =====
{{ :продукты:arduino-uno-wifi:arduino-uno-wifi_annotation.png |}}
==== Микроконтроллер ATmega328P ====
Сердцем платформы Arduino Uno WiFi является 8-битный микроконтроллер семейства AVR — ATmega328P.
==== Микроконтроллер ATmega16U2 ====
Микроконтроллер ATmega16U2 обеспечивает связь микроконтроллера ATmega328P с USB-портом компьютера. При подключении к ПК плата Uno WiFi определяется как виртуальный COM-порт. Прошивка микросхемы 16U2 использует стандартные драйвера USB-COM, поэтому установка внешних драйверов не требуется.
==== Пины питания ====
* **VIN:** Напряжение от внешнего источника питания (не связано с 5 В от USB или другим стабилизированным напряжением). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, если к устройству подключён внешний адаптер.
* **5V:** На вывод поступает напряжение 5 В от стабилизатора платы. Данный стабилизатор обеспечивает питание микроконтроллера ATmega328. Запитывать устройство через вывод ''5V'' не рекомендуется — в этом случае не используется стабилизатор напряжения, что может привести к выходу платы из строя.
* **3.3V:** 3,3 В от стабилизатора платы. Максимальный ток вывода — 1 А.
* **GND:** Выводы земли.
* **IOREF:** Вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера. В зависимости от напряжения, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней, что позволит ей работать как с 5 В, так и с 3,3 В устройствами.
==== Порты ввода/вывода ====
* **Цифровые входы/выходы:** пины ''0''–''13''\\ Логический уровень единицы — 5 В, нуля — 0 В. Максимальный ток выхода — 40 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.
* **ШИМ:** пины ''3'',''5'',''6'',''9'',''10'' и ''11''\\ Позволяют выводить 8-битные аналоговые значения в виде ШИМ-сигнала.
* **АЦП:** пины ''A0''–''A5''\\ 6 аналоговых входов, каждый из которых может представить аналоговое напряжение в виде 10-битного числа (1024 значений). Разрядность АЦП — 10 бит.
* **TWI/I²C:** пины ''SDA'' и ''SCL''\\ Для общения с периферией по синхронному протоколу, через 2 провода. Для работы — используйте библиотеку ''Wire''.
* **SPI:** пины ''10(SS)'', ''11(MOSI)'', ''12(MISO)'', ''13(SCK)''.\\ Через эти пины осуществляется связь по интерфейсу SPI. Для работы — используйте библиотеку ''SPI''.
* **UART:** пины ''0(RX)'' и ''1(TX)''\\ Эти выводы соединены с соответствующими выводами микроконтроллера ATmega16U2, выполняющей роль преобразователя USB-UART. Используется для коммуникации контроллера с компьютером или другими устройствами через класс ''Serial''.
==== Светодиодная индикация ====
^ Имя светодиода ^ Назначение ^
| ON |Индикатор питания на плате.|
| L | Светодиод вывода ''13''. При отправке значения HIGH светодиод включается, при отправке LOW – выключается.|
| WIFI | Мигает при поиске и обмена данными с WiFi сетями|
| RX и TX |Мигают при обмене данными между контроллером и ПК.|
==== Разъём USB Type-B ====
Разъём USB Type-B предназначен для прошивки платформы Uno WiFi с помощью компьютера.
==== Разъём для внешнего питания ====
Разъём для подключения внешнего питания от 7 В до 12 В.
==== Регулятор напряжения 5 В ====
Когда плата подключена к внешнему источнику питания, напряжение проходит через стабилизатор ''MPM3610''. Выход стабилизатора соединён с пином ''5V''. Максимальный выходной ток составляет 1 А.
==== Регулятор напряжения 3,3 В ====
Стабилизатор ''MPM3810GQB-33'' с выходом 3,3 вольта. Обеспечивает питание модуля WiFi ''ESP8266'' и выведен на пин ''3,3V''. Максимальный выходной ток составляет 1 А.
==== ICSP-разъём для ATmega328P ====
ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega328P.
С использованием библиотеки ''SPI'' данные выводы могут осуществлять связь с платами расширения по интерфейсу SPI. Линии SPI выведены на 6-контактный разъём, а также продублированы на цифровых пинах ''10(SS)'', ''11(MOSI)'', ''12(MISO)'' и ''13(SCK)''.
==== ICSP-разъём для ATmega16U2 ====
ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega16U2.
===== Распиновка =====
{{ :продукты:arduino-uno-wifi:arduino-uno-wifi_pinout.png |}}
===== Принципиальная схема =====
{{:продукты:arduino-uno-wifi:arduino-uno-wifi_schematic1.png?direct&350 |}}
{{ :продукты:arduino-uno-wifi:arduino-uno-wifi_schematic2.png?direct&300|}}
===== Характеристики =====
* Микроконтроллер: ATmega328
* Модуль WiFi: ESP8266
* Тактовая частота: 16 МГц
* Напряжение логических уровней: 5 В
* Входное напряжение питания: 7–12 В
* Портов ввода-вывода общего назначения: 20
* Максимальный ток с пина ввода-вывода: 40 мА
* Максимальный выходной ток пина 3.3V: 50 мА
* Максимальный выходной ток пина 5V: 800 мА
* Портов с поддержкой ШИМ: 6
* Портов, подключённых к АЦП: 6
* Разрядность АЦП: 10 бит
* Flash-память: 32 КБ
* EEPROM-память: 1 КБ
* Оперативная память: 2 КБ
* Габариты: 69×53 мм
===== Ресурсы =====
* [[amp>product/arduino-uno-wifi?utm_source=man&utm_campaign=uno-wifi&utm_medium=wiki|Arduino Uno WiFi]] в магазине.
* {{:продукты:arduino-uno-wifi:atmega328_datasheet.pdf|Datasheet на микроконтроллер Atmega328P}}
* {{:продукты:arduino-uno-wifi:esp8266_datasheet.pdf|Datasheet на модуль WiFi ESP8266}}