Arduino Uno WiFi
Примечание
Эта страница относится к продукту, который снят с производства.
Плата UNO WiFi — это Arduino UNO со встроенным модулем Wi-Fi.
Arduino UNO WiFi — это то же самое, что Arduino UNO Rev3, но со встроенным модулем Wi-Fi! Плата построена на ATmega328P с интегрированным модулем Wi-Fi ESP8266 (даташит). Она имеет 14 цифровых контактов ввода-вывода (из которых 6 могут использоваться как выходы ШИМ), 6 аналоговых входов, керамический резонатор 16 МГц, USB-разъём, разъём питания, разъём ICSP и кнопку сброса. Она содержит всё необходимое для поддержки микроконтроллера; просто подключите её к компьютеру с помощью USB-кабеля или подайте питание от адаптера переменного тока или батареи для начала работы.
Wi-Fi модуль ESP8266 — это автономная система на кристалле (SoC) со встроенным стеком протоколов TCP/IP, которая может предоставить доступ к вашей сети Wi-Fi. (Или устройство может работать как точка доступа.) Одной из полезных функций UNO WiFi является поддержка OTA (загрузка по воздуху) — как для передачи скетчей Arduino, так и для прошивки Wi-Fi.
Документация
Питание
Arduino UNO WiFi может питаться через USB-соединение или от внешнего источника питания. Источник питания выбирается автоматически. Внешнее (не USB) питание может поступать от адаптера переменного тока (сетевой адаптер) или батареи. Адаптер можно подключить, вставив штекер с положительным центром диаметром 2,1 мм в разъём питания платы. Провода от батареи можно вставить в контакты Gnd и Vin разъёма POWER.
Плата может работать от внешнего источника питания от 6 до 20 вольт. Однако при напряжении менее 7 В контакт 5V может выдавать менее пяти вольт, и плата может работать нестабильно. При использовании более 12 В стабилизатор напряжения может перегреться и повредить плату. Рекомендуемый диапазон — от 7 до 12 вольт.
Контакты питания:
VIN. Входное напряжение на плату Arduino при использовании внешнего источника питания (в отличие от 5 вольт от USB-соединения или другого стабилизированного источника). Вы можете подать напряжение через этот контакт, или, если подаёте напряжение через разъём питания, получить доступ к нему через этот контакт.
5V. Этот контакт выдаёт стабилизированные 5 В от регулятора на плате. Плата может питаться от разъёма постоянного тока (7-12 В), USB-разъёма (5 В) или контакта VIN (7-12 В). Подача напряжения через контакты 5V или 3.3V обходит регулятор и может повредить плату. Мы не рекомендуем этого делать.
3V3. Источник 3,3 В, генерируемый встроенным регулятором. Максимальный потребляемый ток — 1 А (в зависимости от источника питания).
GND. Контакты заземления.
IOREF. Этот контакт на плате Arduino предоставляет опорное напряжение, при котором работает микроконтроллер. Правильно сконфигурированный шилд может считать напряжение на контакте IOREF и выбрать соответствующий источник питания или включить преобразователи уровня на выходах для работы с 5 В или 3,3 В.
Память
ATmega328 имеет 32 КБ флеш-памяти (из которых 0,5 КБ используются загрузчиком). Также имеется 2 КБ SRAM и 1 КБ EEPROM (который можно читать и записывать с помощью библиотеки EEPROM).
Входы и выходы
Каждый из 14 цифровых контактов UNO может использоваться как вход или выход с помощью функций pinMode(), digitalWrite() и digitalRead(). Они работают при напряжении 5 вольт. Каждый контакт может обеспечивать или принимать максимум 40 мА и имеет внутренний подтягивающий резистор (по умолчанию отключён) номиналом 20-50 кОм. Кроме того, некоторые контакты имеют специализированные функции:
Serial: 0 (RX) и 1 (TX). Используются для приёма (RX) и передачи (TX) TTL-данных последовательного порта. Эти контакты подключены к соответствующим контактам микросхемы ATmega8U2 USB-to-TTL Serial.
Внешние прерывания: 2 и 3. Эти контакты могут быть настроены на срабатывание прерывания по низкому уровню, по фронту или спаду, или по изменению значения. Подробнее см. функцию attachInterrupt().
PWM: 3, 5, 6, 9, 10 и 11. Обеспечивают 8-битный ШИМ-выход с помощью функции analogWrite().
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Эти контакты поддерживают связь SPI с использованием библиотеки SPI.
LED: 13. Встроенный светодиод подключён к цифровому контакту 13. Когда контакт имеет значение HIGH, светодиод горит, когда LOW — выключен. UNO имеет 6 аналоговых входов, обозначенных от A0 до A5, каждый из которых обеспечивает 10-битное разрешение (т.е. 1024 различных значения). По умолчанию они измеряют от земли до 5 вольт, хотя можно изменить верхний предел диапазона с помощью контакта AREF и функции analogReference(). Кроме того, некоторые контакты имеют специализированную функциональность:
TWI: A4 или SDA и A5 или SCL. Поддерживают связь TWI с использованием библиотеки Wire. ПРИМЕЧАНИЕ: контакты A4 или SDA и A5 или SCL используются расширителем ввода-вывода SC16IS750IBS. Есть ещё несколько контактов на плате:
AREF. Опорное напряжение для аналоговых входов. Используется с analogReference().
RESET. Подача LOW на эту линию сбрасывает микроконтроллер. Обычно используется для добавления кнопки сброса на шилды, которые блокируют кнопку на плате.
Связь
Arduino UNO WiFi имеет ряд средств для связи с компьютером, другой платой Arduino или другими микроконтроллерами. ATmega328 обеспечивает UART TTL (5 В) последовательную связь, доступную на цифровых контактах 0 (RX) и 1 (TX). ATmega16U2 на плате направляет эту последовательную связь через USB и отображается как виртуальный COM-порт для программного обеспечения на компьютере. Прошивка 16U2 использует стандартные драйверы USB COM, и внешний драйвер не требуется. Однако в Windows требуется .inf файл. Программное обеспечение Arduino включает монитор последовательного порта, который позволяет отправлять и получать простые текстовые данные с платы Arduino. Светодиоды RX и TX на плате мигают при передаче данных через микросхему USB-to-serial и USB-соединение с компьютером (но не при последовательной связи на контактах 0 и 1).
Библиотека SoftwareSerial позволяет осуществлять последовательную связь на любом из цифровых контактов UNO.
ATmega328 также поддерживает связь I2C (TWI) и SPI. Программное обеспечение Arduino включает библиотеку Wire для упрощения использования шины I2C. Для связи SPI используйте библиотеку SPI.
На Arduino UNO WiFi установлен расширитель ввода-вывода SC16IS750IBS Single UART с интерфейсом I2C/SPI, который обеспечивает связь между ATmega 16U2, ATmega 328P и ESP8266EX.
Arduino UNO WiFi позволяет обмениваться данными по Wi-Fi с датчиками или исполнительными устройствами, установленными на плате, для простого и быстрого создания IoT-систем. Вы можете использовать Arduino UNO WiFi как клиент вашей Wi-Fi сети, как сервер для подключения других клиентских устройств или создать ad-hoc Wi-Fi соединение.
Идеальный способ связи с интернетом через Arduino UNO WiFi — библиотека Ciao и, например, REST-коннектор.
На Arduino UNO WiFi предустановлен скетч RestServer, который позволяет немедленно управлять платой через браузер:
Подключитесь к SSID Arduino UNO WiFi и перейдите по ссылке http://192.168.240.1/arduino/digital/13/1 для включения светодиода L.
Другие возможные команды:
/arduino/digital/13-> digitalRead(13)/arduino/digital/13/1-> digitalWrite(13, HIGH)/arduino/analog/2/123-> analogWrite(2, 123)/arduino/analog/2-> analogRead(2)/arduino/mode/13/input-> pinMode(13, INPUT)/arduino/mode/13/output-> pinMode(13, OUTPUT)
Программирование
Arduino UNO WiFi можно программировать как классический Arduino UNO с помощью программного обеспечения Arduino (скачать). Выберите «Arduino UNO WiFi» в меню Tools > Board (в соответствии с микроконтроллером на вашей плате).
Новые функции Arduino UNO WiFi позволяют загружать скетч по Wi-Fi (так же, как Arduino Yun), без проводного подключения к компьютеру.
ATmega328 на Arduino UNO WiFi поставляется с предустановленным загрузчиком, который позволяет загружать новый код без использования внешнего аппаратного программатора. Он обменивается данными по оригинальному протоколу STK500.
Вы также можете обойти загрузчик и программировать микроконтроллер через разъём ICSP (внутрисхемное последовательное программирование) с помощью Arduino ISP или аналогичного устройства.
Автоматический (программный) сброс
Вместо необходимости физически нажимать кнопку сброса перед загрузкой, Arduino UNO WiFi спроектирован таким образом, что позволяет выполнять сброс программно с подключённого компьютера. Одна из линий управления потоком (DTR) ATmega8U2/16U2 подключена к линии сброса ATmega328 через конденсатор 100 нФ. Когда эта линия активируется (переводится в низкое состояние), линия сброса опускается на достаточное время для сброса чипа. Программное обеспечение Arduino использует эту возможность, позволяя загружать код простым нажатием кнопки загрузки в среде Arduino. Это означает, что загрузчик может иметь меньший таймаут, так как понижение DTR хорошо координируется с началом загрузки.
Эта схема имеет и другие последствия. Когда UNO WiFi подключён к компьютеру с Mac OS X или Linux, он сбрасывается каждый раз при установлении соединения (через USB). В течение следующей примерно полсекунды на UNO работает загрузчик. Хотя он запрограммирован игнорировать некорректные данные (т.е. всё, кроме загрузки нового кода), он перехватит первые несколько байтов данных, отправленных на плату после открытия соединения. Если скетч, работающий на плате, получает одноразовые данные конфигурации при первом запуске, убедитесь, что программное обеспечение, с которым он взаимодействует, ожидает секунду после открытия соединения и перед отправкой этих данных.
На плате UNO WiFi есть дорожка, которую можно разрезать для отключения автосброса. Контактные площадки по обе стороны дорожки можно соединить пайкой для повторного включения. Она обозначена «RESET-EN». Вы также можете отключить автосброс, подключив резистор 110 Ом от 5 В к линии сброса.
Защита от перегрузки по USB
Arduino UNO WiFi имеет самовосстанавливающийся предохранитель (polyfuse), который защищает USB-порты вашего компьютера от коротких замыканий и перегрузки по току. Хотя большинство компьютеров имеют собственную внутреннюю защиту, предохранитель обеспечивает дополнительный уровень защиты. Если к USB-порту подаётся более 500 мА, предохранитель автоматически разрывает соединение до устранения короткого замыкания или перегрузки.
Физические характеристики
Максимальная длина и ширина печатной платы UNO WiFi составляют 2,7 и 2,1 дюйма соответственно, при этом USB-разъём и разъём питания выступают за пределы первого измерения. Четыре крепёжных отверстия позволяют прикрепить плату к поверхности или корпусу. Обратите внимание, что расстояние между цифровыми контактами 7 и 8 составляет 160 мил (0,16»), а не чётное кратное 100 мил, как у остальных контактов.
Технические характеристики
Общие
Цифровые контакты ввода-вывода |
20 |
Выходы ШИМ |
6 |
Потребляемая мощность |
93 мА |
Размер PCB |
53 x 68,5 мм |
Вес |
0,025 кг |
Код продукта |
A000133 |
Микроконтроллер Arduino
Микроконтроллер |
ATmega328 |
Архитектура |
Atmel AVR 8-bit |
Рабочее напряжение |
5 В |
Флеш-память |
32 КБ |
SRAM |
2 КБ |
Тактовая частота |
16 МГц |
Аналоговые контакты ввода-вывода |
6 |
EEPROM |
1 КБ |
Ток на контакт ввода-вывода |
40 мА |
Wi-Fi микропроцессор
Процессор |
ESP8266 |
Архитектура |
Tensilica Xtensa LX106 |
Рабочее напряжение |
3,3 В |
Флеш-память |
4 МБ |
ОЗУ |
8 МБ инструкции, 12 МБ данные |
Тактовая частота |
80 МГц |
WiFi |
802.11 b/g/n 2,4 ГГц |
Время пробуждения |
< 2 мс |
Обновление прошивки Arduino UNO WiFi
Это руководство проведёт вас через процесс обновления прошивки платы Arduino UNO WiFi.
Схема подключения
Подключите плату к USB-порту компьютера с установленным Arduino Software (IDE) 1.8.0 или новее.
Процедура обновления прошивки UNO WiFi
Для упрощения процесса мы подготовили инструмент — UNO WiFi FirmwareUpdater — доступный в Arduino IDE 1.8.0 или новее.
Выполните следующие шаги, чтобы включить этот инструмент в программное обеспечение Arduino:
Скачайте инструмент здесь.
Создайте папку с названием tools в каталоге скетчей (обычно в Documents > Arduino).
Распакуйте архив.
Теперь:
Запустите Arduino IDE (1.8.0 или новее).
Подключите плату к ПК.
Выберите Arduino UNO WiFi в качестве платы в меню Tools > Board.
Выберите соответствующий последовательный порт в меню Tools > Port.
Загрузите скетч ESP Recovery. Он находится в библиотеке UNOWiFiDev.Edition. Скачайте её через Library Manager.
/*ESP Recovery sketch*/
#include <Wire.h>
#include <UnoWiFiDevEd.h>
#define BAUD 9600
WifiData ESPSerial;
void setup()
{
Serial.begin(BAUD);
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
ESPSerial.begin(BAUD);
}
void loop()
{
while (Serial.available()) {
char inChar = (char)Serial.read();
ESPSerial.write(inChar);
}
while (ESPSerial.available()) {
char inChar = (char)ESPSerial.read();
Serial.write(inChar);
}
}
Переведите плату в режим DFU, удерживая кнопку ESP B/L и подключив плату к ПК.
Выберите UnoWiFi Firmware Updater в меню Tools.
Нажмите Refresh list, если порт не отображается.
Выберите соответствующий порт.
Нажмите Test connection.
Выберите в меню требуемую прошивку ESP.
Нажмите Update Firmware.
Дождитесь окончания процесса.
Предупреждение
Процесс может занять несколько минут.