Здравствуйте, в этой статье мы разберем OTA прошивку esp8266 (ну или говорят простым языком, прошивку по воздуху). В этой статье я уже разбирал прошивку по воздуху, но тогда нам нужно было еще установить программу python на компьютер и прошивалось это все по ip адресу. В этом же примере я думаю все будет гораздо проще, мы будем заливать новую прошивку в esp8266 через веб интерфейс. Так же у некоторых людей не получалось повторить первый способ, но с этим способом прошивки я думаю справится большинство.
Итак в принципе нам ничего не понадобится, кроме самого контроллера ESP8266, на картинке и в видео ниже, используется контроллер NodeMCU его можно приобрести здесь: http://ali.pub/3dpnvb
Но я его использую из-за удобства подключения, для тестов. Для окончательных проектов мне больше нравятся контроллеры wemos d1 они по функционалу такие-же, но в 2 раза меньше и их легче можно спрятать в какой нибудь корпус. Купить wemos d1 можно здесь: http://ali.pub/3dpoub
Я думаю если вы попали на данную статью, то уже знакомы с esp8266 и определились с ее реализацией.
Программу которую я покажу сейчас, придумал не я, ее нашел на просторах интернета мой подписчик Дамир Салахов. Он перепробовал много способов прошивки ESP по воздуху, но пришел к выводу, что данный способ самый лучший.
Ссылку на саму программу ОТА можете найти у меня на сайте.
http://ipадрес/firmware – где /firmware это путь который мы указываем в define OTAPATH
После ввода правильного пути у нас выскочит окно ввода логина и пароля:
Как указали в скетче, логин: admin пароль: admin
После ввода верных логина и пароля, нас перенесет в следующее окно, уже непосредственно в котором будем выбирать файл для прошивки:
Тут остановимся по подробнее, дело в том, что файлы с расширением .ino данным способом не загрузить в контроллер. Загрузить сможем только бинарный файл (двоичный) расширения .bin . На самом деле, тут ничего нет сложного, так как программа для программирования arduino ide умеет преобразовывать скетчи в формат .bin , для этого нам нужно открыть скетч, который мы хотим залить, выбрать пункты в программе arduini ide: ” Скетч->Экспорт бинарного файла” и файл с расширением .bin сохранится в туже папку где и находится файл .ino данного скетча. Выглядит это все таким образом:
После того как мы сохранили .bin файл его теперь можем выбрать в web интерфейсе и загрузить в наш контроллер esp8266.
Еще такой момент, если хотите чтоб скетч снова можно было залить после заливки файла .bin нужно в вашем новом скетче оставить код который предназначен для OTA. Иными словами Вы берете тело скетча OTA и добавляете туда уже свой код, оставляя OTA код. Тогда вы в любой момент можете подключиться по ip адресу и залить новый скетч.
В видео, которое добавлено ниже, я постарался подробно об этом рассказать и показать. И там еще показал примеры, как можно залить новый скетч отредактированный из тела OTA скетча. Извиняюсь за тавтологию, надеюсь вы меня поняли.