Создание простого веб-сервера на esp8266 nodemcu в arduino ide

Содержание

Отправка сообщений

Теперь мы готовы сохранять сообщения в Arduino. Наш Arduino на вкладке устройств (1 на рис. ниже) должен быть виден и иметь зеленый значок ссылки.

Это означает, что устройство подключено прямо сейчас. Поскольку у нас еще нет веб-страницы, мы будем использовать встроенные функции для отправки сообщений на наше устройство.

Кликните значок с одиночным сообщением (2) и затем:

(3) нам нужно заполнить устройство отправителя — у нас только одно устройство, поэтому мы выбираем его

(4) сообщения, как вы помните из реализации Arduino , мы игнорируем все данные, отправленные в Arduino, поэтому не имеет значения, что мы здесь поместим

И нажмите кнопку «Отправить».

Диод в Arduino будет меняться каждый раз, когда мы отправляем сообщение. Мы также можем протестировать , поэтому давайте спросим наш Arduino о состоянии диода. Для этого нажмите на значок с двумя сообщениями (2) и затем заполните оставшееся:

После нажатия кнопки «Отправить» мы получим ответ от arduino (6) — 1, если светодиод горит, и 0, если нет.

Между нажатием кнопки отправки и нажатием на кнопку Arduino вы можете изменить состояние диода и проверить, возвращает ли Arduino правильный номер.

Wi-Fi модуль как самостоятельный контроллер

Wi-Fi (Troyka-модуль) — очень умный модуль. Под металлической крышкой прячется целый микроконтроллер, который можно программировать на языке C++ через и JavaScript через .

Настройка железа

  1. Ввиду отсутствия у платформы Troyka WiFi собственного USB-порта, подключите её к компьютеру, используя один из перечисленных способов:
    1. через платформу Arduino Uno

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

    3. через USB-UART преобразователь

  2. Переведите модуль в режим программирования:

    Необходимо каждый раз выполнять перед прошивкой модуля.

    1. Зажмите кнопку ;
    2. Нажмите и отпустите кнопку ;
    3. Отпустите кнопку

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

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

Программирование на C++

  1. Для начала работы с платформой Troyka Wi-Fi на языке C++ скачайте и установите на компьютер интегрированную среду разработки Arduino IDE.
  2. В пункте меню
    Инструменты
    Плата выбирайте .

После выполненных действий платформа Troyka Wi-Fi готова к программированию через Arduino IDE.

Программирование на JavaScript

  1. Для старта с платформой Troyka Wi-Fi на языке JavaScript скачайте и установите интегрированную среду разработки Espruino Web IDE.
  2. Установите прошивку-интерпретатор JavaScript на ESP8266.

После выполненных действий платформа Troyka Wi-Fi готова к программированию через Espruino Web IDE.

Программирование ESP8266 в Arduino IDE

Программный комплект разработчика esp8266 включает в себя:

  • Компилятор из пакета GNU Compiler Collection.
  • Библиотеки, стеки протоколов WiFi, TCP/IP.
  • Средство загрузки информации в программу контроллера.
  • Операционная IDE.

Изначально модули ESP8266 поставляются с прошивкой от фирмы-изготовителя. С ее помощью можно управлять модулем с внешнего микроконтроллера, реализовывать работу с Wi-Fi как с модемом. Также существует множество других готовых прошивок. Некоторые из них позволяют настраивать работу модуля при помощи WEB-интерфейса.

Можно программировать из среды Arduino IDE. При ее помощи можно легко писать скетчи и загружать их в ESP8266, прошивать ESP8266, при этом не требуется сама плата Ардуино. Arduino IDE поддерживает все виды модулей ESP8266.

В настоящий момент для ESP8266 можно реализовать следующие функции:

  • Основные функции языка Wiring. Управлять портами GPIO можно точно так же, как и пинами на плате Ардуино: pinMode, digitalRead, digitalWrite, analogWrite. Команда analogRead(А0) позволяет считать значения АЦП. При помощи команды analogWrite (pin, value) можно подключить ШИМ на нужном выходе GPIO. При value=0 ШИМ отключается, максимальное значение достигает константы, равной 1023.С помощью функций attachInterrupt, detachInterrupt можно выполнять прерывание на любом порте GPIO, кроме 16.
  • Тайминг и delay. Используя команды millis и micros можно вернуть мс и мкс, которые прошли с момента старта. Delay позволяет приостановить исполнение программы на нужное время. Также функция delay(…) позволяет поддерживать нормальную работу Wi-Fi, если в скетче присутствуют большие элементы, которые выполняются более 50 мс. Yield() – аналог функции delay(0).
  • Serial и Serial1 (UART0 и UART1). Работа Serial на ESP8266 аналогична работе на ардуино. Запись и чтение данных блокируют исполнение кода, если FIFO на 128 байт и программный буфер на 256 байт заполнены. Объект Serial пользуется аппаратным UART0, для него можно задать пины GPIO15 (TX) и GPIO13 (RX) вместо GPIO1(TX) и GPIO3(RX). Для этого после функции Serial.begin(); нужно вызвать Serial.swap();. Аналогично Serial1 использует UART1, который работает на передачу. Необходимый пин для этого GPIO2.
  • Макрос PROGMEM. Его работа аналогична работе в Ардуино. Позволяет перемещать данные read only и строковые постоянные во flash-память. При этом в ESP8266 не сохраняются одинаковые константы, что приводит к дополнительной трате флеш-памяти.
  • I2C. Перед началом работы с шиной I2C выбираются шины с помощью функции Wire.pins(int sda, int scl).
  • SPI, OneWire – поддерживаются полностью.

Описание 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 (сборщик мусора)

Простые проекты Ардуино

Давайте начнем наш обзор с традиционно самых простых, но очень важных проектов, включающих в себя минимальное количество элементов: светодиоды, резисторы и, конечно же, плату ардуино. Все примеры рассчитаны на использование Arduino Uno, но с минимальными изменениями будут работать на любой плате: от Nano и Mega до Pro, Leonardo и даже LilyPad.

Проект с мигающим светодиодом – маячок

Все без исключения учебники и пособия для начинающих по ардуино стартуют с примера мигания светодиодом. Этому есть две причины: такие проекты требуют минимального программирования и их можно запустить даже без сборки электронной схемы – уж что-что, а светодиод есть на любой плате ардуино. Поэтому и мы не станем исключением – давайте начнем с маячка.

Нам понадобится:

  • Плата Ардуино Uno, Nano или Mega со встроенным светодиодом, подключенным к 13 пину.
  • И все.

Что должно получиться в итоге:

Светодиод мигает – включается и выключается через равные промежутки времени (по умолчанию – 1 сек). Скорость включения и выключения можно настраивать.

Схема проекта

Схема проекта довольно проста:  нам нужен только контроллер ардуино со встроенным светодиодом, подсоединенным к пину 13. Именно этим светодиодом мы и будем мигать. Подойдут любые популярные платы: Uno, Nano, Mega и другие.

Подсоединяем Arduino к компьютеру, убеждаемся, что плата ожила и замигала загрузочными огоньками. Во многих платах «мигающий» скетч уже записан в микроконтроллер, поэтому светодиод может начать мигать сразу после включения.

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

Программирование в проекте Ардуино

Если в вашей плате нет загруженного скетча маячка – не беда. Можно легко загрузить уже готовый пример, доступный в среде программирования Ардуино.

Открываем программу Arduino IDE, убеждаемся, что выбран нужный порт.

Проверка порта Ардуино – выбираем порт с максимальным номером

Затем открываем уже готовый скетч Blink – он находится в списке встроенных примеров. Откройте меню Файл, найдите подпункт с примерами, затем Basics и выберите файл Blink.

Открываем пример Blink в Ардуино IDE

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

Кнопки компиляции и загрузки скетча
Информация в Arduino IDE – Загрузка завершена

Ждем немного (внизу можно отследить процесс загрузки) – и все. Плата опять подмигнет несколькими светодиодами, а затем один из светодиодов начнет свой размеренный цикл включений и выключений. Можно вас поздравить с первым загруженным проектом!

Проект маячка со светодиодом и макетной платой

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

Графическое изображение схемы подключения доступно на следующем рисунке:

Другие идеи проектов со светодиодами:

  • Мигалка (мигаем двумя свтодиодами разных цветов)
  • Светофор
  • Светомузыка
  • Сонный маячок
  • Маячок – сигнализация
  • Азбука Морзе

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

Объект директории (Dir)

Цель объекта Dir – это перебор файлов внутри директории. У этого объекта существуют три функции – next(), fileName() и openFile(mode).
Фрагмент кода ниже показывает пример использования всех трех функций:

Dir dir = SPIFFS.openDir("/data");
while (dir.next()) {
    Serial.print(dir.fileName());
    File f = dir.openFile("r");
    Serial.println(f.size());
}

Если в директории есть файлы, которые можно перебрать, функция dir.next() вернет true. Ее нужно вызывать первой, до вызова функций fileName() и openFile().

У функции openFile() есть аргумент mode, который работает по тому же принципу, что и аргумент mode в функции SPIFFS.open().

Шаг 4. Настройка соединения

После того, как все настроено, вы заметите, что ваш ESP8266 Wifi будет доступен в радиусе действия вашего телефона.

1. Скачать TCP Client для Android

Вы можете скачать любой TCP-клиент, доступный в Play Store, но я использовал TCP-клиент от Sollae Systems

2. Со своего телефона подключитесь к вашему ESP8266 Wifi

Если ваш Wi-Fi ESP8266 не отображается в доступных сетях Wi-Fi, убедитесь, что ваш Arduino работает и все подключено правильно. Если нет, устраните неполадки вашего ESP, следуя документации модуля.

Обычно имя wifi / ssid начинается в ESP после его названия версии, у меня ESP11.

3. После подключения получите статический IP-адрес.

Важно! Вы можете проверить IP-адрес ESP, зайдя в настройки Wi-Fi своего телефона и щелкнув информацию о сети.

IP-адрес по умолчанию в режиме AP — 192.168.4.1.

Вы можете изменить статический IP-адрес, следуя этой Wifi.config() ссылке.

4. Откройте TCP Client, который вы загрузили ранее.

Создайте соединение, нажав кнопку «Подключить», добавьте IP-адрес ESP и порт 80 следующим образом:

80 — это порт, который я использовал для нашего сервера ESP, но вы можете изменить его, заменив 80 на любой номер порта из нашего кода в строке 23.

5. Подождите, пока на консоли TCP появится сообщение «Подключено».

Объект File

Функции SPIFFS.open() и dir.openFile() возвращают объект File. Этот объект поддерживает все функции класса Stream, поэтому с ним можно использовать функции readBytes(), findUntil(), parseInt(), println() и т.д.

Но у объекта File есть и несколько собственных функций.

Функция file.seek(offset, mode) ведет себя аналогично C-функции fseek(). Аргумент mode указывает, в какое место файла нужно поставить курсор:

  • Если в аргументе mode будет стоять значение SeekSet, курсор будет поставлен на offset байтов от начала файла
  • Если в аргументе mode будет стоять значение SeekCur, текущая позиция курсора будет передвинута на offset байтов
  • Если в аргументе mode будет стоять значение SeekEnd, курсор будет поставлен на offset байтов от конца файла

Если курсор установлен успешно, возвращает true.

Функция file.position() возвращает текущую позицию внутри файла (в байтах).

Функция file.size() возвращает размер файла (в байтах).

Функция file.name() возвращает название файла в виде const char*. Чтобы сохранить, конвертируйте его в String:

String name = file.name();

Функция file.close() закрывает файл. После вызова этой функции никаких других операций с объектом File выполняться не должно.

Using PlatformIO¶

PlatformIO
is an open source ecosystem for IoT development with a cross-platform
build system, a library manager, and full support for Espressif
(ESP8266) development. It works on the following popular host operating
systems: macOS, Windows, Linux 32/64, and Linux ARM (like Raspberry Pi,
BeagleBone, CubieBoard).

  • PlatformIO Core (command line tool)

  • Advanced usage — custom settings, uploading to LittleFS, Over-the-Air (OTA), staging version

  • Integration with Cloud and Standalone IDEs — Cloud9, Codeanywhere, Eclipse Che (Codenvy), Atom, CLion, Eclipse, Emacs, NetBeans, Qt Creator, Sublime Text, VIM, Visual Studio, and VSCode

Подписка на (бесплатные) облачные сервисы

В конце нам необходимо создать бесплатные учетные записи на двух веб-сайтах облачных сервисов: Adafruit IO и IFTTT.

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

IFTTT — это сайт, который объединяет и предоставляет интерфейс для множества приложений и поэтому называется шлюзом API.

Перейдите на io.adafruit.com и нажмите «Войти» (Sign In), затем «Зарегистрироваться» (Sign Up), чтобы создать учетную запись. Вы должны использовать надежные, уникальные пароли. Вас могут попросить подтвердить ваш адрес электронной почты.

На IFTTT.com нажмите кнопку «Зарегистрироваться» (Sign up), чтобы создать учетную запись.

Я настоятельно рекомендую включить двухфакторную аутентификацию в вашей учетной записи IFTTT, так как вы, скорее всего, захотите связать ее с другими вашими личными учетными записями, такими как Twitter, Instagram, Fitbit и т.д.

Защитите свои учетные записи от хакеров и спам-ботов! Вам также нужно будет связать свои аккаунты Adafruit и IFTTT, что вы можете сделать через любой сайт. Пока вы на нем, установите приложение IFTTT, если у вас есть устройство iOS или Android.

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

Справочная информация

Типы режима сна

Есть три типа режима сна: модемный, легкий и глубокий.

Все они используются для разных целей и потому предназначены для разных типов проектов.

Режим глубокого сна

Для нашего проекта нужно, чтобы все компоненты ESP8266 были выключены, за исключением часов реального времени (RTC), благодаря которым ESP8266 следит за временем.

В нашем проекте мы будем использовать режим глубокого сна – это самый энергоэффективный режим сна, в котором ESP8266 тянет лишь 20 мкА (но если к ESP8266 будут подключены другие устройства, то эта цифра будет выше).

Другие режимы сна

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

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

  1. ESP8266 подключается к WiFi;
  2. ESP8266 выполняет действие (считывает данные от датчика, публикует MQTT-сообщение и т.д.);
  3. Переходит в режим сна и спит заданное количество микросекунд;
  4. Три стадии выше повторяются снова и снова;

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) Видим появление данных на платформе.

В Китае

Установка дополнительных библиотек

Теперь, когда у вас есть базовая настройка ESP8266, давайте установим несколько дополнительных библиотек Arduino, которые будут использоваться для последующих уроков. В вашем программном обеспечении Arduino перейдите в:

Sketch-> Включить библиотеку -> Управление библиотеками
Sketch-> Include Library -> Manage Libraries

Затем найдите и установите последние версии следующих библиотек:

  • ArduinoHttpClient
  • Adafruit IO Arduino
  • Adafruit MQTT

Вы также можете установить библиотеки вручную, скачав их и поместив в папку с библиотеками Arduino. Узнайте больше о библиотеках Arduino в нашем разделе Библиотеки и в статье Установка и подключение библиотек в Arduino IDE.

Android приложение

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

Примечание: Приложение требует Android 4.0 (IceCreamSandwich) или выше.

  • Прежде всего, вы должны знать IP адрес своего модуля. Если вы использовали программный последовательный порт, IP адрес будет напечатан в консоли. Если вы использовали аппаратный последовательный порт, то вы должны использовать кабель для отслеживания данных на линиях RX и TX, чтобы увидеть IP адрес. Вам также нужно знать номер порта, который был указан в скетче для Arduino. После этого нажмите «connect», чтобы получить состояние всех трех выходов. Вам нужно убедиться, что ваш Wi-Fi роутер включен, и вы подключены к локальной сети.
  • Теперь нажмите на любой переключатель, который вы хотите включить/выключить. Всякий раз, когда захотите, вы можете нажать «refresh», чтобы обновить состояние всех выходов.
  • На вкладке «Timers» вы можете установить любой из этих трех выходов для включения/выключения через определенный промежуток времени (от 0 до 24 часов).
  • После любого действия вы получите сообщение с подтверждением о том, выполнилась ли команда успешно, или возникла какая-то ошибка.

Скриншоты Android приложения для управления контроллером на Arduino и ESP8266

Ограничения файловой системы

Во-первых, SPIFFS не поддерживает папки. Она просто хранит список файлов. В отличие от традиционных файловых систем, в файловых именах SPIFFS можно указывать слэши («/»), поэтому функции, которые работают с списками папок – например, openDir(«/website») – просто фильтруют файловые имена в поисках тех, что начинаются с запрошенного префикса. Например, с того же «/website».

Во-вторых, максимальный размер для файлового имени – 32 символа. Более того, символ «\0» отведен под завершение строки, поэтому в итоге у нас остается даже не 32, а 31 символ.

Таким образом, файловые имена SPIFFS должны быть короткими, из чего вытекает другое ограничение – файловые имена не должны быть слишком многоуровневыми. Потому что, опять же, полный размер пути к каждому файлу (включая папки, символы «/», само название, точку и расширение) не должен превышать 31 символ. К примеру, файловое имя /website/images/bird_thumbnail.jpg состоит из 34 символов, и это может повлечь проблемы, к примеру, при использовании функции exists() или если имя другого файла будет иметь тот же 31 символ.

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

3 Собираем схемуна макетной плате

Для приобретения навыка работы с макетной платой соберём простейшую схему, как показано на рисунке. «Плюс» батарейки подключим к плюсовой шине макетной платы, «минус» – к отрицательной шине. Яркие красные и чёрные линии – это соединительные провода, а бледные полупрозрачные – это соединения, которые обеспечивает макетная плата, они показаны для наглядности.

Схема, собранная на макетной плате

В правой части рисунка приведена эквивалентная принципиальная схема. Если схема собрана верно, то при нажатии на кнопку светодиод должен светиться. Вы видите, что не потребовалось брать в руки паяльник, чтобы собрать электрическую схему. Использование бредборда – это быстро и удобно.

Полезные советы

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

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

Скачать схему с макетной платой и светодиодом в формате программы Fritzing:

В распоряжении имеется заводская макетная плата вот такого типа:

Она не нравится мне по двум причинам:

1) При монтаже деталей приходится постоянно вертеть туда-сюда, чтоб сначала поставить радиодеталь, а потом припаять проводник. На столе ведёт себя неустойчиво.

2) После демонтажа отверстия остаются залиты припоем, перед следующим использованием платы приходится их прочищать.

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

Цитата с форума: « Я, например многие годы, использую вот такие самодельные макетные платы. Собраны из куска стеклотекстолита, в который наклёпаны медные штырьки. Такие штырьки можно либо купить на радиорынке, либо изготовить самому из медной проволоки диаметром 1,2-1,3 мм. Более тонкие штырьки слишком сильно гнутся, а более толстые забирают слишком много тепла при пайке. Эта «макетка» позволяет многократно использовать самые затрапезные радиоэлементы. Соединения лучше делать проводом во фторопластовой изоляции МГТФ. Тогда однажды изготовленных концов хватит на всю жизнь.»

Думаю, что такой вариант подойдёт мне больше всего. Но стеклотекстолита и готовых медных штырьков в наличии не имеется, так что сделаю немного по-другому.

Медную проволоку добыл из провода:

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

Диаметр штырьков — 1 мм.

За основу платы взял фанеру толщиной 4 мм ( чем толще, тем крепче будут держаться штырьки ):

Чтобы не мучиться с разметкой, скотчем наклеил на фанеру разлинованную бумагу:

И просверлил отверстия с шагом 10 мм сверлом диаметром 0.9 мм:

Получаем ровные ряды отверстий:

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

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

Чтобы плата не ёрзала, делаем ножки:

Макетная плата готова!

Таким же методом можно сделать плату для поверхностного монтажа (фото из интернета, радиоприёмник):

Ниже для полноты картины я приведу несколько годных конструкций, найденных в интернете.

В отрезок доски забиваются канцелярские кнопки с металлической головкой:

Осталось только залудить их. Омеднёные кнопки лудятся без проблем, а вот со стальными придётся повозиться.

Сделать такую плату очень быстро и просто.

В нефольгированном стеклотекстолите сверлится ряд отверстий, в которые продеваются полоски из жести.

Для такой платы понадобится фольгированный стеклотекстолит и вот такой скребок, сделанный из полотна от ножовки по металлу:

В текстолите нужно порезать фольгу резаком на квадратики, и плата готова:

Этот же метод можно использовать для нарезки дорожек на платах.

Случайно увидел идею, как можно сделать беспаечную макетную плату из разъёмов компьютерных шлейфов:

Склейка таких разъёмов позволяет получить плату любых размеров.

Начало работы с Termite

В оригинальной статье о прошивке ESP8266 была рекомендована PuTTY; и, если она у вас она есть, и вы хотите её использовать, она здесь будет отлично работать. Тем не менее, Termite в этом плане более удобное приложение и будет использоваться далее в этой статье. Termite бесплатен и для личного, и для коммерческого использования.

В последующих этапах предполагается, что модуль ESP-01 запрограммирован так же, как обычно, поставщиком. Если вы (или кто-то еще) внесли изменения в стандартные настройки программы, вам необходимо будет поэкспериментировать, чтобы определить текущие настройки вашего модуля ESP-01.

После проверки своей схемы программирования ESP-01, как описано выше, включите её. Запустите на своем компьютере Termite и нажмите кнопку Settings (Настройки); вы должны увидеть окно, похожее на приведенное ниже. Убедитесь, что COM порт, к которому подключен USB-TTL конвертер, правильно выбран в окне настроек последовательного порта. Выставьте все остальные параметры, как показано в окне настроек последовательного порта ниже, и нажмите OK, чтобы закрыть окно настроек последовательного порта.

Настройки последовательного порта

На этом этапе курсор должен мигать в нижней части окна Termite; если нет, кликните на нижней части окна Termite, чтобы поместить туда курсор. Введите и нажмите Enter на клавиатуре; если всё хорошо, ESP-01 ответит в окне Termite. Если это произойдет, можете вздохнуть с облегчением, потому что вы только что преодолели главное препятствие.

Затем введите и нажмите Enter. ESP-01 должен ответить чем-то очень похожим, что показано на рисунке ниже.

Отклик модуля ESP-01

Команда говорит ESP8266 сообщить о версии набора AT-команд, который он содержит, какой SDK (Software Development Kit) был загружен в него, какая компания собрала модуль ESP, и когда SDK был загружен в модуль. Наконец, как обычно, ESP8266 завершает свой ответ с помощью .

Если ESP-01 ответил правильно, то можно закончить с Termite (если вы не хотите еще поэкспериментировать). Далее он понадобится снова для подтверждения успешной прошивки.

WeMos Mini

По сравнению с Wemos D1 микроконтроллер WeMos Mini имеет меньшие габариты. Плата обладает размерами в ширину 2,5 см, а в длину 3,5 см, в то время как полная версия Wemos D1 идентична Ардуино UNO.

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

Схема платы и расположение выходов изображены на рисунке.

Технические характеристики WeMos Mini:

  • 11 цифровых контактов;
  • Наибольшее входное напряжение 3,2В;
  • 4 МБ памяти;
  • WiFi модуль;
  • Коннектор для внешней антенны.

Преимуществом платы является возможность сохранения соединения при низком потреблении энергии 1мА.  Благодаря этому можно делать различные приборы, которые будут работать от батареек.

Шилды для WeMos Mini

Существует большое количество шилдов, которые могут быть подключены WeMos D1 mini:

  • WeMos Dual Base и WeMos Tripler Base – удваивает и утраивает основу установки шилда;
  • WeMos DS18B20 – шилд с цифровым датчиком;
  • WeMos Battery – шилд для дополнительного питания от батарейки;
  • WeMos Relay – шилд, управлящий реле;
  • WeMos OLED – шилд, оснащенный экраном OLED;
  • WeMos 1-Button – модуль, оснащенный тактовой кнопкой;
  • WeMos Micro SD-Card – шилд для добавления карты памяти микро SD;
  • WeMos Motor – шилд для двигателей до 15В;
  • WeMos DHT D4, WeMos DHT I2C, WeMos SHT30 – модули, реализующие измерение давления, температуры и влажности (первый подключается через шину onewire, второй – через I2C);
  • WeMos WS2812B RGB – шилд, реализующий управление светодиодом;
  • WeMos Matrix LED – шилд для индикации, базирующийся на матрице светодиодов;
  • WeMos Buzzer – шилд для звукового излучателя;
  • WeMos ProtoBoard – макетная плата;
  • WeMos DC Power – шилд питания.

Заключение

Платы на базе esp8266 – лучший способ организовать работу с сетью в ваших DIY проектах. Вы можете использовать большое количество разнообразных модулей и готовых плат, но WeMos – один из самых удобных способов. Плата похожа на Arduino Uno, достаточно легко подключается к датчикам и прошивается через Arduino IDE.

Уменьшенный аналог WeMos mini вообще можно назвать уникальным устройством, т.к. в очень компактном корпусе вы получаете не только почти все удобства и возможности Arduino, но и полноценный WiFi модуль. Можно даже обойтись без монтажа – просто вставляя различные модули расширения (шилды) WeMos как в матрешке, одну в другу. А недорогая цена делает эту плату абсолютным фаворитом для тех, кто делает умные устройства с возможностью выхода в интернет.