Здесь расположены небольшие скетчи (прошивки) для esp8266 для быстрой проверки различных плат и пр.

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

void setup() {                    // функция настроек и разового ввода данных
    Serial.begin (115200);          // выставляем скорость на порту
    pinMode(D4, OUTPUT);            // инициализация контакта Wemos D1 Mini светодиод на GPIO2 (D4)
  }
  void loop() {                     // запускаем бесконечную обработку кода (цикл)
  if (Serial.parseInt() == 53) {  // Если (Число из монитора порта = 53) то выполняем команды до конца скобки
  digitalWrite(D4, 1);          // На пине D4 к которому подключен светодиод устанавливаем 1 это +3.3 вольтa
  delay(2000);                  // ждем 2000 милисекунд - 2 секунды
  digitalWrite(D4, 0);          // На пине D4 к которому подключен светодиод устанавливаем 0 это 0 вольт
}                               // команды из if выполняются до этой скобки
}

Для плавного включения и работы в различных режимах используют ШИМ, многих он бесит в экранах смартфонов, но это самый простой способ регулирования мощности. ШИМ можно применить для регулировки скорости и плавного набора скорости различых моторов, например квадрокоптеров, можно изменять свечение ламп и светодиодов, регулировать нагрев, например паяльника, утюга или электроплитки, а так же с помощью ШИМ можно предавать информацию о работе, например с помощью ШИМ передают информацию о давлении некоторые датчики фреона в автомобиле. ШИМ в есп реализован довольно просто, можно использовать почти все пины для этого и регулировать частоту в приличных пределах. В нашем скетче мы будем управлять встроенным светодиодом, для начала выставим частоту в 100 герц и настроим выход на пин д4, затем в цикле включим ШИМ на пине д4 и выставим скважность. Скважность это то чем управляет шим сигнал, чем больше скважность тем больше мощности передается на устройство, смотрите рисунок ниже, но в есп светодиод у нас инверсный он будет показывать все наоборот.

void setup()              // функция настроек и разового ввода данных
    {
      analogWriteFreq(100); // выставляем частоту (100.. 40000 Гц)
      pinMode(D4, OUTPUT);  // д4 пин настраиваем на выход
    }
    void loop()               // запускаем бесконечную обработку кода (цикл)
    {
      analogWrite(D4, 175); //включаем работу шим на пин д4, 0-255 скважность
    }
  

Давайте измерим с помощью ЕСП частоту, этот пример поможет делать различные спидометры, тахометры и пр. В прошлом примере мы генерировали ШИМ сигнал давайте померяем его частоту, придется обьеденить два скетча один про монитор порта , а второй про шим сигнал с новыми функциями, таким образом мы будем создавать сигнал, измерять его и выводить в монитор порта с одной платы ЕСП. Для измерениянам пригодится такая функция pulseIn( ) которая будет измерять время сигнала в микросекундах на том пине который мы захотим, далее мы выведем полученый реультат в монитор порта. Можно доработать данную прошивку и она будет измерять и скважность, потом собрать схемку преобразователя сигнала в прямоугольные импульсы 3.3 вольта и у нас получится отличный частотомер с измерением скважности, далее можно вывести информацию на отдельный экранчик и подключить аккумулятор - будет неплохое автономное устройство для измерения и генерирования шим сигнала!

int Htime;                   // целочисленная переменная для хранения времени высокого логического уровня
    int Ltime;                   // целочисленная переменная для хранения времени низкого логического уровня
    float Ttime;                 // переменная для дробей хранит общую длительности периода
    float frequency;             // переменная для дробей хранит частоту
    void setup()                 // функция настроек и разового ввода данных
    {
      Serial.begin(9600);        // выставляем скорость на порту
      pinMode(D2, INPUT);        // д2 пин настраиваем на выход
      pinMode(D4, OUTPUT);       // д4 пин настраиваем на выход
      analogWriteFreq(1000);     // выставляем частоту (100.. 40000 Гц)
    }
    void loop()                  // запускаем бесконечную обработку кода (цикл)
    {
      analogWrite(D4, 127);      //включаем работу шим на пин д4, 0-255 скважность (127 = 50% скважность)
      Htime = pulseIn(D2, HIGH); // прочитать время высокого логического уровня
      Ltime = pulseIn(D2, LOW);  // прочитать время низкого логического уровня
      Ttime = Htime + Ltime;     // складываем низкий и высокий логический уровень
      frequency=1000000/Ttime;   // получение частоты из микросекунд
      Serial.println(frequency); // выводим в монитор порта результат
      delay(2000);               // ожидание в течение 2 секунд
    }

  

Записываем информацию во внутреннюю энергонезависимую память EEPROM ЕСП. В некоторых проектах нам надо сохранять настройки, например в радио сохраняются настройки радиостанций, в часах настройка будильника, в различных измерителях настройки пределов работы, для этого используется внутренняя память EEPROM, в ЕСП она эмулируется в микросхеме флеш памяти и составляет 4 килобайта. Давайте научимся в нее что либо записывать, в данном скетче при включении ЕСП будет записыватся число 251 в память и это число останеся там даже если мы отключим питание или зашьем другую прошивку, пока мы не изменим сами или не стерем епром то число там так и останется. Для прочтения данного числа будем использовать другой скетч (прошивку).

#include <EEPROM.h>           // подключаем библиотеку EEPROM.h
    int addr = 0;                 // eeprom начальный адрес данных
    int data = 251;               // помещаем в пременную любое число например 251
    void setup() {                // функция настроек и разового ввода данных
    EEPROM.begin (4);           // указание размера области памяти в байтах
    EEPROM.write (addr, data);  // подготовка данных
    EEPROM.commit ();           // Сохранить изменения в данных
  }
  void loop() {                 // функцию бесконечного цикла не используем
}

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

#include <EEPROM.h>     // подключаем библиотеку EEPROM.h
    int addr = 0;           // eeprom начальный адрес данных
    int data = 0;           // переменная для данных с EEPROM
    void setup() {          // функция настроек и разового ввода данных
    Serial.begin(115200); // выставляем скорость в мониторе порта
    EEPROM.begin (4);     // указание размера области памяти в байтах
  }
  void loop() {           // запускаем бесконечную обработку кода (цикл)
  int data = EEPROM.read (addr);  //чтение из EEPROM
  Serial.println(data); // выводим в монитор порта число из EEPROM
  delay(2000);          // ожидание в течение 2 секунд
}