Arduino Uno WiFi: распиновка, схема подключения и программирование
Arduino Uno WiFi — оригинальная итальянская плата семейства Uno с модулем Wi-Fi.
[NEW] На сегодняшний день на смену ей пришла более новая версия платы: Uno WiFi Rev2 c модулем Wi-Fi и Bluetooth.
На Uno WiFi предусмотрено всё для удобной работы с микроконтроллером: 14 цифровых входов/выходов (6 из них могут использоваться в качестве ШИМ-выходов), 6 аналоговых входов, разъём USB, разъём питания, разъём для внутрисхемного программирования (ICSP) и кнопка сброса микроконтроллера.
Изюминка платы — модуль WiFi ESP8266, который позволяет ей обмениваться информацией с другими модулями по беспроводным сетям стандартов 802.11 b/g/n.
ESP8266 позволяет прошивать плату без использования USB-кабеля в режиме OTA (Firmware Over The Air — «микропрограммы по воздуху»).
Видеообзор платы
Подключение и настройка
Для начала работы с платой Uno WiFi в операционной системе Windows скачайте и установите на компьютер интегрированную среду разработки Arduino IDE.
Что-то пошло не так?
Настройка модуля WiFi
Для первичной настройки Arduino с модулем WiFi выполните следующие действия.
Это значит, вы всё сделали верно, и можно переходить к прошивке платы по Wi-Fi.
Прошивка по WiFi
Arduino Uno WiFi имеет в своём запасе ещё один приятный бонус — возможность загружать скетчи без использования USB-кабеля в режиме OTA (Firmware Over The Air). Рассмотрим подробнее, как это сделать.
- Отключите плату от ПК и подключите к другому источнику питания — например, к блоку питания или Power Shield.
- и выберите плату «Arduino Uno WiFi».
- Теперь необходимо сообщить среде программирования номер COM-порта, который соответствует подключённой плате.
Для этого необходимо войти в меню:
и выбирать нужный порт.Так как мы прошиваем Arduino по WiFi, плата определится как удалённое устройство с IP-адресом
Загрузка скетча
Среда настроена, плата подключена. Можно переходить к загрузке скетча. Arduino IDE содержит большой список готовых примеров, в которых можно подсмотреть решение какой-либо задачи. Выберем среди примеров мигание светодиодом — скетч «Blink». Прошейте плату, нажав на иконку загрузки программы. После загрузки светодиод начнёт мигать раз в секунду. Это значит, что всё получилось.
Теперь можно переходить к примерам использования.
Примеры использования
Web-сервер
Поднимем простой web-сервер, который будет отображать страницу с текущими значениями аналоговых входов.
- web-server.ino
/* Пример простого web-сервера, работающего на Arduino Uno WiFi. Сервер показывает значения на аналоговых входах и обновляет информацию каждые две секунды. Обратитесь к серверу по адресу http://<IP>/arduino/webserver/ Обратите внимание: пример работает только с Arduino Uno WiFi Developer Edition. */ #include <Wire.h> #include <UnoWiFiDevEd.h> 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("<html>"); // Формируем страницу client.println("<head> <title>UNO WIFI Web-server</title> </head>"); client.print("<body><h2>Пример вывода значений с аналоговых пинов</h2>"); client.print("<ul>"); for(int analogChannel = 0; analogChannel < 4; analogChannel++) { int sensorReading = analogRead(analogChannel); client.print("<li> на аналоговом входе "); client.print(analogChannel); client.print(": <em>"); client.print(sensorReading); client.print("</em></li>"); } client.println("</ul></body></html>"); client.print(DELIMITER); // Не забудьте закрыть соединение! }
Элементы платы
Микроконтроллер 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.
Распиновка
Принципиальная схема
Характеристики
- Микроконтроллер: ATmega328
- Модуль WiFi: ESP8266
- Тактовая частота: 16 МГц
- Напряжение логических уровней: 5 В
- Входное напряжение питания: 7–12 В
- Портов ввода-вывода общего назначения: 20
- Максимальный ток с пина ввода-вывода: 40 мА
- Максимальный выходной ток пина 3.3V: 50 мА
- Максимальный выходной ток пина 5V: 800 мА
- Портов с поддержкой ШИМ: 6
- Портов, подключённых к АЦП: 6
- Разрядность АЦП: 10 бит
- Flash-память: 32 КБ
- EEPROM-память: 1 КБ
- Оперативная память: 2 КБ
- Габариты: 69×53 мм