Arduino Uno WiFi

Arduino Uno WiFi — оригинальная итальянская Arduino Uno с модулем Wi-Fi.

На Arduino Uno WiFi предусмотрено всё для удобной работы с микроконтроллером: 14 цифровых входов/выходов (6 из них могут использоваться в качестве ШИМ-выходов), 6 аналоговых входов, разъём USB, разъём питания, разъём для внутрисхемного программирования (ICSP) и кнопка сброса микроконтроллера.

Изюминка платы — модуль WiFi ESP8266, который позволяет Arduino обмениваться информацией с другими модулями по беспроводным сетям стандартов 802.11 b/g/n.

ESP8266 позволяет прошивать плату Arduino без использование USB-шнура в режиме OTA (Firmware Over The Air — «микропрограммы по воздуху»).

Видеообзор платы

Подключение и настройка

Для начало работы с платой Arduino Uno WiFi в операционной системе Windows скачайте и установите на компьютер интегрированную среду разработки Arduino — Arduino IDE.

Что-то пошло не так?

Настройка модуля WiFi

Для настройки Arduino с модулем WiFi выполните следующие действия.

  1. Подключите питание к плате Arduino. Через несколько секунд в списке доступных сетей появиться новая — с именем Arduino-Uno-WiFi-xxxxxx, где xxxxxx — уникальный номер платы.
  2. Подключитесь к найденной сети и зайдите в браузере по адресу:
    192.168.240.1

    Откроется web-интерфейс настройки платы Arduino.

  3. Зайдите в сетевые настройки платы, нажатием на кнопку CHANGE в пункте Network SSID.
  4. Выберите вашу Wi-Fi сеть из списка доступных сетей, введите пароль и подключитесь к ней.
  5. При успешном подключении к Wi-Fi сети появится информация о присвоенном IP-адресе. Запомните или запишите его. В нашем примере мы получили адрес 192.168.43.17.Теперь на Arduino Uno WiFi можно зайти с любого устройства, подключенного к этой сети.

  6. Для дальнейшей работы с платой Arduino, переключите ваш ПК с WiFi сети Arduino — Arduino-Uno-WiFi-xxxxxx на вашу домашнюю Wi-Fi сеть — Amperka Mobile.
  7. Зайдите в браузере по выданному ранее IP-адресу. Откроется тот же web-интерфейс настройки платы Arduino.

    Обратите внимание — в данный момент плата работает в режиме «клиент + точка доступа» AP+STA. Если вы хотите прошить плату по WiFi, необходимо переключить режим работы платы из AP+STA в STA

  8. Зайдите в сетевые настройки платы, нажав на кнопку CHANGE в пункте Network SSID.
  9. Переключите режим сети из AP+STA в STA кнопкой SWITCH TO STA MODE.
  10. В колонке WiFi Mode отобразится режим STA.

Это значит вы всё сделали верно и можно переходить к прошивке платы Arduino по Wi-Fi.

Прошивка Arduino по WiFi

Arduino Uno WiFi имеет в своём запасе ещё один приятный бонус — возможность загружать скетчи без использование USB-шнура в режиме OTA (Firmware Over The Air). Рассмотрим подробнее как это сделать.

  1. Отключите плату Arduino от ПК и подключите к другому источнику питания — например к блоку питания или Power Shield.
  2. Запустите Arduino IDE
  3. Сообщите Arduino IDE с какой платой будем работать. Для этого перейдите в меню: Инструменты Плата и выберите плату «Arduino Uno WiFi».
  4. Теперь необходимо сообщить Arduino IDE номер 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-портом компьютера. При подключении к ПК Arduino Uno WiFi определяется как виртуальный COM-порт. Прошивка микросхемы 16U2 использует стандартные драйвера USB-COM, поэтому установка внешних драйверов не требуется.

Пины питания

  • VIN: Напряжение от внешнего источника питания (не связано с 5 В от USB или другим стабилизированным напряжением). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, если к устройству подключён внешний адаптер.
  • 5V: На вывод поступает напряжение 5 В от стабилизатора платы. Данный стабилизатор обеспечивает питание микроконтроллера ATmega328. Запитывать устройство через вывод 5V не рекомендуется — в этом случае не используется стабилизатор напряжения, что может привести к выходу платы из строя.
  • 3.3V: 3,3 В от стабилизатора платы. Максимальный ток вывода — 1 А.
  • GND: Выводы земли.
  • IOREF: Вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера. В зависимости от напряжения, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней, что позволит ей работать как с 5 В, так и с 3,3 В устройствами.

Порты ввода/вывода

  • Цифровые входы/выходы: пины 013
    Логический уровень единицы — 5 В, нуля — 0 В. Максимальный ток выхода — 40 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.
  • ШИМ: пины 3,5,6,9,10 и 11
    Позволяют выводить 8-битные аналоговые значения в виде ШИМ-сигнала.
  • АЦП: пины A0A5
    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. Используется для коммуникации платы Arduino с компьютером или другими устройствами через класс Serial.

Светодиодная индикация

Имя светодиода Назначение
ON Индикатор питания на плате.
L Светодиод вывода 13. При отправке значения HIGH светодиод включается, при отправке LOW – выключается.
WIFI Мигает при поиске и обмена данными с WiFi сетями
RX и TX Мигают при обмене данными между Arduino Uno WiFi и ПК.

Разъём USB Type-B

Разъём USB Type-B предназначен для прошивки платформы Arduino 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 мм

Ресурсы