Дружимся с esp

Оглавление

Прошивка arduino pro mini

Прошивка arduino pro mini

Миниатюрные размеры платы не позволяют прошить ее без внешней помощи. Есть несколько способов заливки скетча в микроконтроллер:

  • Через адаптер USB в TTL;
  • Через Ардуино Уно;
  • Через SPI интерфейс с помощью любой платы ардуино с разъемом для подключения к компьютеру. 

Самым простым методом является первый.

Прошивка через адаптер USB в TTL

В продаже можно найти специальный адаптер – UART переходник. Видов таких переходников много, стоимость каждого изделия невысокая. Советуется приобретать переходники с контактами RST или DTR, они упрощают процесс прошивки. 

Для прошивки нужно подключить адаптер в Ардуино: нужно соединить земли с одного и другого устройства, Vcc – на +5В или +3,3 В (в зависимости от модели), RX – TX, TX – RX. Затем конструкцию нужно подключить к компьютеру, установить драйвер и начать прошивку. Компьютер определит, к какому порту подключена плата. Драйвер можно скачать с официального сайта. Скачанный архив нужно распаковать и установить.

Затем нужно запустить среду разработки Adruino IDE, выбрать нужную плату и номер порта и загрузить микропрограмму. Это делается следующим образом:

  • Нажать «Загрузить»;
  • Затем начнется компиляция  – появится надпись «Компиляция скетча»;

После появление надписи «Загружаем» нужно нажать на плате кнопку Reset (в переходниках с RST или DTR нажимать кнопку не нужно). 

Важно! Нажатие на Reset должно быть кратковременным. 

Скетч будет загружен в микроконтроллер. Об успешном окончании процедуры можно понять по мигающему светодиоду. 

Прошивка через Ардуино Уно

Для прошивки потребуется классическая плата Ардуино Уно в DIP корпусе. На ней должен быть специальный разъем, из которого нужно вытащить аккуратно микроконтроллер

Важно делать все действия внимательно, чтобы не погнуть ножки процессора

Проводами нужно подключить arduino pro mini к разъему. Как подключить контакты – RX-RX, TX-TX, GND-GND, 5V-VCC, RST-RST. 

После подключения можно начать стандартную загрузку скетча через Arduino IDE.

Прошивка через SPI интерфейс

Этот способ является самым неудобным и трудоемким. Прошивание платы производится в 2 этапа:

Прошивка микроконтроллера Ардуино Уно как ISP программатора; 

Настройка среды разработки и загрузка кода в Arduino Pro Mini.  

Алгоритм проведения первого этапа:

  • Запуск среды разработки Arduino IDE;
  • Открытие «Файл» – «Примеры» – «11. ArduinoISP» – «ArduinoISP»;
  • Далее «Инструменты» – «Плата» – «Ардуино уно»;
  • «Инструменты» – «Порт», и выбирается нужный номер COM порта;
  • Далее нужно произвести компиляцию и загрузить код в Ардуино Уно.

Затем обе платы нужно соединить проводниками по приведенной схеме: 5V – VCC, GND – GND, MOSI (11) – MOSI (11), MISO (12) – MISO (12), SCK (13) – SCK (13).

Теперь нужно настроить Arduino IDE для Arduino Pro Mini. Это делается следующим образом:

«Инструменты» – «Плата» – выбор нужной платы Arduino Pro Mini; 

  • В том же меню выбирается «Процессор» – выбор соответствующего процессора с нужной тактовой частотой;
  • Затем нужно установить порт, к которому подключена плата;
  • «Инструменты» – «Программатор» – Arduino as ISP;
  • Затем нужно загрузить скетч через программатор.

Важно отметить, что загрузка кода должна происходить через специальное меню «загрузить через программатор». Здесь можно запутаться, потому такой способ и неудобен

Загрузка обычным способом приведет  тому, что код зальется в Ардуино Уно. 

После проведенной загрузки перепрошить микроконтроллер через переходник больше не получится. Придется заливать новый bootloader через «записать загрузчик». 

Если при каком-либо виде загрузки прошивки возникают проблемы, нужно проверить подключение платы. 

Прошивка WeMos, примеры скетчей

Мигание светодиодами

Сам скетч выглядит следующим образом:


int inputPin = D4; // подключение кнопки в контактам D4 и GND. Можно выбрать любой пин на плате

int val = 1; // включение/выключение хранения значения

void setup() {

pinMode(BUILTIN_LED, OUTPUT); // подключение светодиода, перевод в режим OUTPUT

pinMode(inputPin, INPUT); // включение пина для входных данных

}

void loop() {

val = digitalRead(inputPin); // чтение входных данных

digitalWrite(BUILTIN_LED, val); // включение/выключение светодиода по нажатию кнопки

}

Если все выполнено правильно, нужно нажать кнопку, и светодиод загорится. При повторном нажатии потухнет.

Для автоматического мигания светодиода интервалом в две секунды используется следующий код:


void setup() {

pinMode(3, OUTPUT); // инициализация контакта GPIO3 с подключенным светодиодом

}

void loop() {

digitalWrite(2, HIGH);   // светодиод загорается

delay(2000);              // ожидание в течение двух секунд

digitalWrite(2, LOW);    // светодиод гаснет

delay(2000);              // ожидание в течение двух секунд

}

WeMos и подключение к WiFi для передачи данных на удаленный сервер

В примере будет рассмотрен скетч для создания веб-сервера, благодаря которому можно управлять различными устройствами – лампами, реле, светодиодами и другими.  Для работы нужно установить библиотеку ESP8266WiFi.

Фрагменты скетча:


const char* ssid = "****"; //требуется записать имя точки доступа, к которой будет произведено подключение

const char* password = "****"; //введение пароля точки доступа, который должен содержать не менее восьми символов

WiFiServer server(80);  //создание сервера на 80 порту

WiFi.begin(ssid, password); // подключение к заданной выше точке доступа, ее имя и пароль

pinMode(3, OUTPUT);   //присоединение к пину GPIO3 и земле

while (WiFi.status() != WL_CONNECTED) //показывает статус подключения, WL_CONNECTED указывает на установку соединения;

Serial.println(WiFi.localIP()); //получение IP адреса. Его нужно ввести в строку адреса в браузере для получения доступа к управлению устройством

Serial.println(WiFi.macAddress()); //получение MAC адреса

Serial.println(WiFi.SSID()); //получение имени сети, к которой подключился WeMos

WiFiClient client = server.available(); //проверяет, подключен ли клиент

Serial.println("client");

while(!client.available()) //ожидание отправки данных от клиента

String req = client.readStringUntil('\r');

Serial.println(req);

client.flush(); //Чтение первой строки запроса

Создание точки доступа на WeMos

В данном примере модуль WeMos будет сконфигурирован в качестве самостоятельной точки доступа.

Создание точки доступа выполняется по следующему алгоритму:

  • Подключение модуля;
  • Запуск среды разработки Arduino IDE;
  • Выбор порта, частоты, размера флэш-памяти;
  • Запись с коде программы имени сети и создание пароля;
  • Компиляция и загрузка скетча;
  • Установить скорость 115200;
  • Должно произойти подключение к сети, будет получен IP и выведен в терминал;
  • Для проверки можно ввести в адресной строке в браузере IP/gpio/1, если все работает корректно, должен загореться светодиод на плате.

Фрагменты программы:



const char *ssid = «****»; //в этой строке нужно задать имя создаваемой сети

const char *password = «»; //указывается пароль сети, если не указывать пароль, то сеть будет открыта

При создании пароля важно помнить, что он должен состоять не менее чем из восьми знаков

WiFiServer server(80);

WiFi.softAP(ssid, password); //создание точки доступа с именем и паролем, которые указывались выше. Если пароль не указывался, softAP(ssid, password) меняется на softAP(ssid)

IPAddress myIP = WiFi.softAPIP(); //получение адреса IP

Serial.print(«AP IP address: «); //вывод полученного адреса в терминал

server.begin(); // запуск сервера

Описание ESP8266 NodeMcu v3

Технические характеристики модуля:

  • Поддерживает Wi-Fi протокол 802.11 b/g/n;
  • Поддерживаемые режимы Wi-Fi – точка доступа, клиент;
  • Входное напряжение 3,7В – 20 В;
  • Рабочее напряжение 3В-3,6В;
  • Максимальный ток 220мА;
  • Встроенный стек TCP/IP;
  • Диапазон рабочих температур от -40С до 125С;
  • 80 МГц, 32-битный процессор;
  • Время пробуждения и отправки пакетов 22мс;
  • Встроенные TR переключатель и PLL;
  • Наличие усилителей мощности, регуляторов, систем управления питанием.

Отличия от других модификаций

Платы поколения V1 и V2 легко отличить – они обладают различным размером. Также второе поколение оснащено улучшенной модификацией чипа ESP-12 и 4 Мб флэш-памяти. Первая версия, устаревшая, выполнена в виде яркой желтой платформы. Использовать ее неудобно, так как она покрывает собой 10 выходов макетной платы. Плата второго поколения сделана с исправлением этого недостатка – она стала более узкой, выходы хорошо подходят к контактам платы. Платы V3 внешне ничем не отличаются от V2, они обладают более надежным USB-выходом. Выпускает плату V3 фирма LoLin, из отличий от предыдущей платы можно отметить то, что один из двух зарезервированных выходов используется для дополнительной земли, а второй – для подачи USB питания. Также плата отличается большим размером, чем предыдущие виды.

Где купить модули NodeMCU и ESP8266

Сегодня на рынке доступно множество достаточно недорогих модификаций плат на базе ESP8266. Мы сделали небольшую подборку наиболее интересных вариантов:

Питание модуля NodeMcu

Подавать питание на модуль можно несколькими способами:

  • Подавать 5-18 В через контакт Vin;
  • 5В через USB-разъем или контакт VUSB;
  • 3,3В через вывод 3V.

Преимущества NodeMcu v3

  • Наличие интерфейса UART-USB с разъемом micro USB позволяет легко подключить плату к компьютеру.
  • Наличие флэш-памяти на 4 Мбайт.
  • Возможность обновлять прошивку через USB.
  • Возможность создавать скрипты на LUA и сохранять их в файловой системе.

Недостатки модуля NodeMcu

Основным недостатком является возможность исполнять только LUA скрипты, расположенные в оперативной памяти. Этого типа памяти мало, объем составляет всего 20 Кбайт, поэтому написание больших скриптов вызывает ряд трудностей. В первую очередь, весь алгоритм придется разделять на линейные блоки. Эти блоки необходимо записать в отдельные файлы системы. Все эти модули исполняются при помощи оператора dofile.

При написании нужно соблюдать правило – при обмене данными между модулями нужно пользоваться глобальными переменными, а при вычислении внутри модулей – локальными

Также важно в конце каждого написанного скрипта вызывать функцию collectgarbage (сборщик мусора)

HDMI – DVI распиновка контактов

Если говорить о переходниках, то наиболее часто требуется подключить HDMI к монитору, имеющему цифровой интерфейс старого образца. Как правило, это DVI – стандарт, появившийся довольно давно. Тем не менее его технические характеристики позволяют обрабатывать данные высокого разрешения и четкости. Сходный формат передаваемых данных позволяет обойтись без сложной конвертации. Достаточно правильно распаянного переходника из кабеля и двух штекеров. Конечно, стоит учитывать, что DVI не поддерживает передачу звука. Поэтому от нее придется либо отказаться, либо использовать вышеупомянутый звуковой адаптер.

Чтобы собрать рабочий переходник, нужно соединить контакты следующим образом:

Номер HDMI Номер DVI
1 2
2 3, экран
3 1
4 10
5 11, экран
6 9
7 18
8 19, экран
9 17
10 23
11 22, экран
12 24
13 Нет аналога
14 Нет аналога
15 6
16 7
17 15 («Земля»)
18 14
19 16

Шаг 2: Работа с приложением Blynk

Создание учетную запись Blynk

После загрузки приложения Blynk вам необходимо создать новую учетную запись. Эта учетная запись отделена от учетных записей, используемых для форумов Blynk, если у вас такой уже есть. Мы рекомендуем использовать реальный адрес электронной почты.

Зачем мне нужно создавать учетную запись?

Учетная запись необходима для сохранения ваших проектов и доступа к ним с нескольких устройств из любого места. Это также мера безопасности. Вы всегда сможете настроить свой собственный сервер Blynk.

После того, как вы успешно вошли в свою учетную запись, начните с создания нового проекта.

Дайте проекту имя и выберите подходящую плату (Wemos D1 Mini). Теперь нажмите «Создать».

Аутентификация

Ваш токен аутентификации будет отправлен вам по электронной почте, и вы также сможете получить к нему доступ в настройках вашего проекта. Новый номер будет создан для каждого создаваемого вами проекта.

Область применения

С появлением микроконтроллеров WeMos стало намного проще заниматься программированием приборов. Плата занимает центральное место в комплексе программ и аппаратных составляющих. Ее можно назвать электронным конструктором, удобной платформой для разработки устройств управления и автоматизации.

Область применения контроллеров WeMos постоянно расширяется:

  • автомобильные датчики;
  • детские игрушки;
  • зарядные устройства;
  • пульт управления для бытовой техники;
  • датчики температур, термометры;
  • робототехника;
  • спутниковые навигационные системы;
  • система для обработки и передачи данных;
  • устройства ввода.

К этому маленькому компьютеру можно подключить дополнительные составляющие: индикаторы, клавиатуру, светодиоды и другие компоненты. После подключения и написания рабочей программы микроконтроллер будет исправно функционировать. Идей для реализации множество.

Configure the Tasmota software

You can use a tool like fing or your wireless router to find the IP-address of your WeMos device.

The MAC-address starts with:

  • 5C:CF:7F for the WeMos D1 mini and
  • 60:01:94 for the WeMos D1 mini Pro

Open a browser and go to the IP-address of your WeMos device. You should be greeted with the familiar Tasmota configuration screen.

Set the device to «WeMos D1 mini» in the Configuration and save the configuration.
The device will reset, just wait for it to return.

WeMos pins vs ESP8266 pins

The WeMos boards have a different pin layout than the ESP8266 layout used in the Tasmota software. The table below shows the correlation:

WeMos Pin Function ESP-8266 Pin
TX TXD TXD
RX RXD RXD
A0 Analog input, max 3.3V input A0
D0 IO GPIO16
D1 IO, SCL GPIO5
D2 IO, SDA GPIO4
D3 IO, 10k Pull-up GPIO0
D4 IO, 10k Pull-up, BUILTIN_LED GPIO2
D5 IO, SCK GPIO14
D6 IO, MISO GPIO12
D7 IO, MOSI GPIO13
D8 IO, 10k Pull-down, SS GPIO15
G Ground GND
5V 5V
3V3 3.3V 3.3V
RST Reset RST

WeMos DHT11 Shield

To configure the DHT11 shield we return to the Configuration screen. The DHT11 uses D4 on the WeMos and therefore GPIO2 on the ESP8266.

Set GPIO2 to DHT11 like below:

After saving the configuration and the required reset we should see the following screen:

WeMos Relay and Button Shield

To configure the Relay and Button shield go to the Configuration screen. The Relay uses D1 on the WeMos and therefore GPIO5 on the ESP8266. The Button uses D3 on the WeMos, GPIO0 on the ESP8266.

Set GPIO5 to Relay and the GPIO0 to the Button:

Both the webinterface and the button can now be used to toggle the relais on and off.

Распиновка платы WeMos D1 mini

Как пример — ниже предлагаем вашему вниманию распиновку (входы-выходы) пока самой популярной платы WeMos. Ниже на рисунке распиновка (pinout) ESP8266 WeMos D1 mini:

ESP8266 WeMos D1 mini

Будьте внимательны, как видно на схеме — максимальное напряжение для платы 3,3 Вольт. Также мы хотели расписать на схеме основные входы/выходы, USB и другие функциональные вещи:

Немного по схеме:

  • Digital GPIO — это выводы GPIO, т.е. это «входы / выходы общего назначения».
  • Reset button — Кнопка сброса
  • USB Prog Inerface — вывод подключения USB

На этом сегодня всё. Статьи о платах серии WeMos читайте в нашей рубрике здесь.

Модули на базе ESP8266

Для работы с модулями на базе ESP8266 есть два варианта:

  1. Работа с AT командами (в стандартной прошивке Wi-Fi модуль общается с управляющей платой через «AT-команды» по протоколу UART);

  2. Wi-Fi модуль как самостоятельный контроллер (все представленные модули очень умные: внутри чипа прячется целый микроконтроллер, который можно программировать на языке C++ через Arduino IDE).

В статье будем рассматривать второй вариант — прошивка модулей в виде самостоятельного полноценного устройства. Здесь также есть два варианта прошивки с точки зрения железа:

  1. Через плату Arduino;

  2. Через USB-Serial адаптер.

Рассмотрим второй вариант — использовать адаптер на базе чипа CP2102 (например, такой https://www.chipdip.ru/product/cp2102-usb-uart-board-type-a?frommarket=https%3A%2F%2Fmarket.yandex.ru%2Fsearch%3Frs%3DeJwzSvKS4xKzLI&ymclid=16146772489486451735000001)

Обязательно обратите внимание на то, чтобы адаптер позволял выдавать выходное напряжение 3.3 В, не больше!

Micro SD card on Wemos D1 Mini Datalogger

The Scheme for connecting the module is still unnecessary. ALL connections Work Normelno after assembling the «sandwich» from Wemos D1 Mini (ESP8266) and Wemos D1 mini Datalogger.

Checked the work of the regular library ESP8266 to work with Micro SD card. The Test case was compiled and worked without problems. So the module works without problems.

/*
  SD Card Read/write

  This example shows how to read and write data to and from an SD card file
  The Circuit:
   SD card attached to SPI bus as follows:
 * * MOSI-pin 11
 * * MISO-pin 12
 * * CLK-pin 13
 * * CS-pin 4

  Created Nov 2010
  by David A. Mellis
  Modified 9 APR 2012
  by Tom Igoe

  This example code is in the public domain.

*/

#include < SPI. h.
#include < SD. h >

File myFile;

void Setup () {
  Open serial communications and wait for port to open:
  Serial. Begin (9600);
  while (! Serial) {
    ; Wait for serial port to connect. Needed for Leonardo only
  }


  Serial. Print ("Initializing SD card...");

  if (! SD. Begin (4)) {
    Serial. println ("Initialization failed!");
    Return
  }
  Serial. println ("initialization done.");

  Open the file. Note that only one file can be open at a time,
  So you have to close this one before opening another.
  myFile = SD. Open ("Test. txt", FILE_WRITE);

  If the file opened okay, write to it:
  if (myFile) {
    Serial. Print ("Writing to test. txt...");
    myFile. println ("Testing 1, 2, 3.");
    Close the file:
    myFile. Close ();
    Serial. println ("done.");
  Else
    If the file didn't open, print an error:
    Serial. println ("Error opening Test. txt");
  }

  Re-open the file for reading:
  myFile = SD. Open ("Test. txt");
  if (myFile) {
    Serial. println ("Test. txt:");

    Read from the file until there's nothing else in it:
    while (myFile. Available ()) {
      Serial. Write (myFile. read ());
    }
    Close the file:
    myFile. Close ();
  Else
    If the file didn't open, print an error:
    Serial. println ("Error opening Test. txt");
  }
}

void Loop () {
  Nothing happens after Setup
}

The SD card Connection to ESP32 is described here. The intact is all the same. No Problems should arise.

ESP-07

Особенности этого модуля — керамическая антенна и разъем для внешней антенны, металлический экран.

Подключение к IoT

Аппаратная часть

Работа с этим модулем, к сожалению, прошла не слишком гладко. Ни один из возможных вариантов подключения не сработал, и я, уже отчаявшись, решила удалять его описание из статьи. Но тут мне дали новый модуль и сказали попробовать еще раз — о чудо, он заработал с первого раза! В чем было дело и как сломался первый модуль, который я мучила, — неизвестно, но скорее всего он был убит нещадной статикой. Мораль этого лирического отступления такова — если у вас что-то не заработало по инструкции, написанной ниже, не вините инструкцию — сначала прозвоните и проверьте все контакты, а потом попробуйте на другом модуле.

1) Собираем схему

ESP-07

USB-Serial

VCC

VCC

CH_PD (рекомендуется через резистор)

VCC

TX

RX

RX

TX

GND

GND

GPIO 15 (рекомендуется через резистор)

GND

GPIO 0 — сначала не подключен, но будет использоваться для перевода в режим программирования далее, поэтому к нему уже подведен провод

все остальные контакты не подключены

RTS, CTS — не подключены

На фото этого и следующего модуля уже можно заметить резисторы. После неведомой поломки уже решила перестраховаться и поставила килоомники, хотя и без них все должно работать.

2) Переводим в режим программирования (необходимо каждый раз выполнять перед прошивкой модуля)

2.1) Отключаем питание от модуля2.2. Подключаем пин GPIO 0  к GND

2.2) Подключаем пин GPIO 0  к GND

ESP-07

USB-Serial

VCC

VCC

CH_PD

VCC

TX

RX

RX

TX

GND

GND

GPIO 15 

GND

GPIO 0

GND

все остальные контакты не подключены

RTS, CTS — не подключены

2.3) Подключаем модуль к питанию

2.4) Железо готово, приступаем к программной части.

Программная часть

1) Выбираем плату: Tools (Инструменты) -> Board(Плата) Generic ESP8266 Module.

2) Вставляем подготовленный код.

3) Задаем данные для подключения Wi-Fi и идентификатор своего объекта на платформе.

4) Компилируем и загружаем скетч на плату.

5) Для обычной работы модуля (не для режима прошивки) пин GPIO 0 должен быть свободен, поэтому отключаем его от GND.

6) Переподключаем питание ESP-07 (например, вытаскиваем и вставляем обратно адаптер).

7) Видим появление данных на платформе.

В Китае

Настройка среды программирования Arduino IDE

По умолчанию среда IDE настроена только на AVR-платы. Для платформ, представленных ниже, необходимо добавить в менеджере плат дополнительную поддержку.

1) Открываем среду программирования Arduino IDE.

2) В пункте меню File (Файл) выбираем Preferences (Настройки). В окне Additional Boards Manager URLs вводим через запятую адреса http://arduino.esp8266.com/stable/package_esp8266com_index.json и https://dl.espressif.com/dl/package_esp32_index.json.

3) Нажимаем OK.

4) В пункте меню Tools (Инструменты) -> Board (Плата) выбираем Boards manager (Менеджер плат).

Находим в списке платформы на ESP8266 и нажимаем на кнопку Install (Установить).

6) Надпись INSTALLED сообщает, что дополнения успешно установлены.

7) Аналогичным образом устанавливаем дополнение для ESP32.

8) Теперь нам доступны к программированию платформы с модулем ESP8266 и ESP32.

9) Для подключения плат к платформе Интернета вещей используем библиотеку EspMQTTClient. Чтобы ее установить, в пункте меню Tools (Инструменты) выбираем Manage Libraries (Управлять библиотеками). Находим и устанавливаем библиотеку EspMQTTClient. Может появиться сообщение об установке дополнительных библиотек. Выбираем “Install all”.

Примечание — Также для работы с платами понадобится установить драйверы CH340 (WeMos и Goouuu) и CP2102 (для остальных). Их отсутствие повлияет на то, найдет ли Arduino IDE COM-порт, к которому подключена плата.

PlatformIO

Load the Sonoff-Tasmota base folder, including platformio.ini in PlatformIO.

Changes in the file platformio:ini

In platformio.ini we are going to add a new environment section and set the default environment to the newly created section.

First we create the new environment section.

  • Copy the first environment section named «sonoff».
  • Paste the section at the bottom of the file.
  • Name the new section «wemos-d1-mini».
  • Change the board type from esp01_1m to d1_mini.

The section should look like the following:

The next step is to set the default environment to our newly created environment. In the add the following line:

Your platformio.ini should look like this:

Change the user_config.h

Change the user_config.h to match your situation:

  • Set the WiFi SSID and WiFi password
  • Set the MQTT Username and MQTT password or disable MQTT

Arduino Pro Mini ATmega328 3.3V/8MHz 5V/16MHz

Микроконтроллер ATmega328P
Рабочее напряжение 3.3 В или 5 В (в зависимости от модели)
Напряжение питания (рекомендуемое) 3.35-12 В (модель 3.3 В) или 5-12 В (модель 5 В)
Напряжение питания (предельное) 3.35-20В
Цифровые входы/выходы 14 (6 из которых могут использоваться как выходы ШИМ)
Аналоговые входы 6
ШИМ (PWM) пины 6
Постоянный ток через вход/выход 40 мА
Максимальный выходной ток вывода 3.3V 50 мА
Flash-память 32 Кб из которых 2 Кб используются загрузчиком
SRAM 2 Кб
EEPROM 1 Кб
Тактовая частота 8 МГц (модель 3.3 В) или 16 МГц (модель 5 В)
Встроенный светодиод 13
Длина 33.0 мм
Ширина 18.0 мм
Вес 5 г

Питание
Arduino Pro и Arduino Pro Mini может получать питание: через кабель FTDI, от платы-конвертора, или от регулируемого источника питания 3.3 В или 5 В (зависит от модели платформы) через вывод Vcc, или от нерегулируемого источника через вывод RAW.Выводы питания:

 Память
Микроконтроллер ATmega168 имеет: 32 кБ флеш-памяти для хранения кода программы (2 кБ используется для хранения загрузчика), 2 кБ ОЗУ и 1 кБ EEPROM
Микроконтроллер ATmega328 имеет: 16 кБ флеш-памяти для хранения кода программы (2 кБ используется для хранения загрузчика), 1 кБ ОЗУ и 512 байт EEPROM

Входы и Выходы
Каждый из 14 цифровых выводов Pro, используя функции pinMode(), digitalWrite(), и digitalRead(), может настраиваться как вход или выход. Выводы работают при напряжении 3,3 В. Каждый вывод имеет нагрузочный резистор (стандартно отключен) 20-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:

Существует дополнительный вывод на платформе:

Reset. Низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino.

Обновления Over The Air (OTA) для WeMos D1 R2

А теперь подбираемся к самому интересному. К тому, как обновлять прошивку у устройства по воздуху используя соединение Wi-Fi. Итак, у нас есть рабочая Arduino IDE с возможностью использования плат WeMos и чипов ESP8266.

В обновлении по воздуху нет ничего сверхъестественного. В модуль загружается скетч, который подключается к Wi-Fi сети и в цикле loop, при помощи функции, слушает на определенном порту сигналы от удаленного загрузчика. Как только поступает требуемый сигнал, то в память устройства закачивается свежая прошивка, которая и загружается после рестарта.

Важно! Новая прошивка должна содержать тот же самый код по загрузке посредством OTA, что и в оригинальной, со всеми паролями, именами сетей и т.п., иначе устройство просто не сможет загрузить следующую прошивку по воздуху и придется подключить его к компьютеру кабелем.