bme280 ESP32 ESP8266 flprog блоки для световых эффектов mcp23x017 STM32H7 БЛОК ДЛЯ РАБОТЫ С МОДУЛЕМ SIM800L GSM_NEW 0.5B Это главный блок для sim800l Блок "Кнопка" (Button) Это обработчик различных нажатий. Блок TFT дисплея Adafruit ST7735 mod karens4 v3 Блок для 3-осевой акселерометр HMC5883L 3-осевой цифровой компас и ITG3205 3-осевой гироскоп Блок для En_AP - включает автоматическое включение точки доступа в случае отсутствия подключения в р Блок для ESP-8266 IR приемник3.0 Блок для GPS Блок для датчика температуры и влажности HTU21D Блок для детектирования попадания текущего времени в указанный временной интервал Блок для дисплея SSD1306 ESP8266 Блок для задержка импульса Блок для инициализации MQTT и CMD клиентов Блок для массивы в Arduino Блок для модуля тока и напряжения INA219 (CJMCU-219) Сопротивление шунта указывать в сотых долях мил Блок для основной блок MQTT на базе ESP8266 Блок для парсинга погоды из интернета сайт openweathermap.org Блок для пользовательский WEB интерфейс на ESPUI для esp8266 esp32 Блок для снятия показаний с трансформатора переменного тока Блок для таймер обратного отсчёта Блок для управления светодиодом на основе ws2812b Блок для установки соединения с программой Virtuino Блок для энкодер Pro (EncPro)  V1.4 Блок опроса одного выбранного канала АЦП типа НХ711 Блок предназначен использования с экранами LCD1602  HD44780  и его клонами с  I2C Блок служит для выдачи запроса по http.  У входа out у блока прописывается адрес сайта дапустим   на Блок служит для создания бегущей строки Блок управления биполярных шаговых двигателей с интерфейсом STEP/DIR Блоки для ESPUI - веб-интерфейс из блоков для ESP8266 Блоки для датчика переменного напряжения ZMPT101B Блоки приема-передачи четырех байт данных через интерфейс UART с использованием протокола PJON .Испо Блоки разные (прочее блоки) ДАТЧИК ВЛАЖНОСТИ включенных последовательно отсчёт в секундах
flprog блоки для синхронизации часов реального времени с NTP сервером через интернет
Данный модуль предназначен для синхронизации
часов реального времени с NTP сервером через интернет.
Одновременно можно использовать один блок в проекте.
В параметрах пользователя надо прописать : Имя точки доступа(SSID),
 пароль точки доступа(PASSWORD)  и прописать доменное имя
NTP там в комментарии есть варианты. Так же на входе "gmt" указать
Вашу временную зону. Например: Москва, Минск -3.
При удачном соединении с NTP сервером на выходе "Set" появляется 
логическая еденица, что позволяет дать комманду на блок "Установка 
времени для часов реального времени" на занесение данных с выходов
 этого блока соответственно.

 

 

Блок "убирает тормоза" esp8266 если она не подключена клиентом к WiFi сети.
Пока на входе "Отключать Точку Доступа при соединении клиентом" единица - точка
доступа будет отключаться при соединении клиентом.
Вход "period002" - время в мсек, по истечении которого будет осуществлена 
попытка подключиться клиентом к WiFi сети. (т.е. если на входе "period002"
установлено значение 30000 - то esp8266 будет пытаться подключиться 
к WiFi сети один раз в 30 секунд).
*не рекомендуется менее 30000 мсек
**иногда возможен ребут в случае: нет соединения клиентом + юзер находится на 
веб-странице Точки Доступа
+ нажимает например там кнопку - и в это время происходит 
попытка соединения клиентом.
При true на входе on включается точка доступа. В настройках она должна быть включена.
En_AP - включает автоматическое включение точки доступа в случае отсутствия подключения в режиме клиента
STAstat - выход статуса наличия подключения в режиме клиента
Автор: Phazz

 

Блок переводит, при подачи на вход EN единицы, WiFi модуль ESP в указанный режим работы.
Активируется импульсом. Избегать постоянной 1 на входе EN.
Доступные режимы:
    WIFI_STA
    WIFI_AP
Если активировать блок в режиме WIFI_STA и оставить входа SSID и pass пустыми, то esp подключится к сети, к которой она была подключена последний раз
Переводит ESP в точку доступа, если не удалось подключиться к WiFi с указанными SSID и password. 
В режиме точки доступа, если allowForcedReconnect == 1, есп попытается подключиться к WiFi через RECONNECT_TIMEOUT мс.
Если в режиме точки доступа allowForcedReconnect == 0 и пришло время попытки переподключенния, то блок будет ждать пока не отключатся все подключенные устройства. Например если к есп в режиме точки доступа подключён телефон дольше, чем RECONNECT_TIMEOUT мс, то, пока телефон не отключится, есп не будет пытаться переподключиться к WiFi.
APSSID - SSID точки доступа
APPass - пароль точки доступа
Выводит состояние WiFi клиента. Если есп подключена к WiFi - на выходе true, иначе - false
 

Блок для веб интерфейс JeeUI2-v.4.09 для esp8266 / esp32

Веб интерфейс для esp 8266/32*, использующий при построении веб-интерфейса привычный блочный принцип.
-Блоки компилируются также как находятся на плате. (по тем же правилам как и остальные блоки в FLProg).
-Используйте кнопку 'Порядок компиляции блоков" чтобы убедиться в правильности сборки блоков при компиляции!
-Счет страниц начинается с "0", т.е. страница=0 - это Первая страница!!! Номер страницы задается для каждого блока отдельно в параметрах блока. 
-Возможно использование совместно со штатным веб-интерфейсом (в этом случае необходимо задать свой адрес, например, " /test").
-Возможно использование опции "Обновление прошивки" (WebUpdate Firmvare).
-Имена пунктов в меню, кнопках и т.д. - не должны быть пустыми.
-Выход "out" в блоках - на этом выходе появятся Данные с веб страницы на один цикл
-Выход "новые данные" в блоках - на этом выходе будет "1" на один цикл и говорит о том что получены новые данные с веб страницы.
-Надпись на выходах блоков "(R-t) ..." означает, что выход работает как R-триггер (R-t).
-Надпись на выходах блоков "(i)" означает, что выход носит информационный характер и не требует подключения.
-Выход "get" - при каждом запросе данных с веб-страницы это вход будет принимать значение "1".
-На странице 0 (т.е. на первой странице) - должен быть хотя один (ЛЮБОЙ) элемент веб-интерфейса. хоть просто один перенос
----------------------------------------------------------------------------
-ВСЕ блоки веб-интерфейса должны быть в самом конце проекта. (необязательно на одной плате)*
-В самом конце проекта, на самой последней плате необходимо вытащить блок "ПОСЛЕДНИЙ БЛОК"
-(for devops) Весь код, содержащийся в Любых Других блоках в секциях "Конец секции Loop", будет помещен в функцию empty(). 
 Эта функция empty() ,будет запускаться в конце Loop.
-----------------------------------------------------------------------------
*в целом необязательно - важно не забыть "Последний Блок" вытащить)

----------------------------------ВНИМАНИЕ!!!---------------------
в FLProg 7.5.2 - если изменяете МК, то Перед компиляцией:
1.Cохраните проект после этого.
2.Переоткройте проект заново.
(иначе не сработают условия внутри блоков и получите ошибку при компиляции!).
**это обязательно!
**данный баг известен разработчику FLProg, ожидаем исправления :)
----------------------------------------------------------------------------
****отладочную информацию (json строку) можно посмотреть по адресу: "тут-IP-есп/echo?0, где 0 - это номер страницы"

 

Блок "убирает тормоза" esp8266 если она не подключена клиентом к WiFi сети.
Пока на входе "Отключать Точку Доступа при соединении клиентом" единица - точка
доступа будет отключаться при соединении клиентом.
Вход "period002" - время в мсек, по истечении которого будет осуществлена 
попытка подключиться клиентом к WiFi сети. (т.е. если на входе "period002"
установлено значение 30000 - то esp8266 будет пытаться подключиться 
к WiFi сети один раз в 30 секунд).
*не рекомендуется менее 30000 мсек
**иногда возможен ребут в случае: нет соединения клиентом + юзер находится на 
веб-странице Точки Доступа + нажимает например там кнопку - и в это время происходит 
попытка соединения клиентом.
   

Блок для записи данных в Google-Таблицы

// 0) Заходим в Google-Таблицы, Инструменты > Редактор скриптов...
// 1) Вставляем туда этот код
// 2) Сохраняем и именуем уникальным названием
// 3) Задаем в меню способ запуска в режиме "doGet"
// 4) При первом запуске скрипт попросит вас дать ему права на редактирование таблицы
// 5) В главном меню > Развернуть как веб-приложение...
//    Каждый раз, когда заново разворачиваете скрипт, выбирайте последнюю версию
//    Выставляем права: "Me (your email address)"
//    ВАЖНО: выберите "Anyone, even anonymous" в меню "Кто может редактировать этот скрипт"
 
// Сохраняем опубликованный URL для использования в дальнейшем.
// https://script.google.com/macros/s/---Ваш-Script-ID--здесь---/exec
// https://script.google.com/macros/s/---Ваш-Script-ID--здесь---/exec?tag=test&value=-1
 
// Эта Функция будет вызвана один раз при первом исполнении 


 

Блок для Google таблица из двух параметров, float, integer.
Сайт:    https://www.google.ru/sheets/about
Код по видео:  https://www.youtube.com/watch?v=okNECYf2xlY&t=415s
rw6cm 21.03.21
esp8266   flp7.3.4

 

Энкодер Pro (EncPro)  V1.4

Энкодер Pro (EncPro)  Энкодер_Pro_V1.5.1
Это универсальный блок с возможностью настройки.
Все настройки интуитивно понятны и  имеют описание и подсказки.
Благодаря отличному алгоритму библиотеки Encoder (https://github.com/PaulStoffregen/Encoder/releases),
которую я поправу считаю лучшей в своем классе, пропуск шагов практически исключен.
В описании библиотеки гарантирована работа на частоте до 100 - 127 кГц.
Если у вас нормальный, не убитый энкодер, имеющий RC фильтры, то при подключении 
сигнальных пинов на пины контроллера, поддерживающие прерывания, качественная работа
блока гарантирована. Если же такой возможности нет, то используйте хотя бы один пин
поддерживающий прерывания. У таких контроллеров как UNO и NANO это D2 и D3.
Счетный выход блока Count выдает результат моментально.
Скорость работы импульсных выходов Up и Down зависит от вашей программы.
Блок физически не может выдавать больше одного импульса за два цикла.
Однако импульсов будет ровно столько, сколько покажет моментальный выход Count,
хотя они могут совершаться с задеожкой.

Блок выдает количество шагов и импульсы для каждого шага.

Автор
Dryundel

 

СОЗДАНИЕ GOOGLE-ТАБЛИЦЫ

Запись данные с ESP8266 в Google-таблицы

Создайте электронную таблицу Google на вашем Google-Диске и назовите её например DataCollector («Сборщик Данных»). Переименуйте текущий (или активный) лист (sheet) на Summary («Общее») и добавьте второй лист, назовите его DataLogger («Регистратор Данных»). Из адресной строки таблицы скопируйте символы, находящиеся между символами «d/» и «/edit» и сохраните их где-нибудь. Это уникальный ключ совместного использования вашей электронной таблицы, который позже понадобится для скрипта на языке Google Apps Script.

 
Внимание! Имя электронной таблицы Google не играет большой роли, так как в скрипте Google Apps Script мы будем использовать ключ совместного использования таблицы, который всегда уникален. В то же время имена листов (Summary и DataLogger) должны совпадать с теми, которые вы используете в скрипте Google Apps Script (об этом написано ниже).
СКРИПТ НА ЯЗЫКЕ GOOGLE APPS SCRIPT
Для создания скрипта Google Apps Script в приложении, Google-Таблицы выберите пункт меню «Apps Script» заходим в вкладку «Apps Script» далее нажимаем на плюс рядом с надписью «Файлы +» выбераем вкладку скрипт. В окне кода вставьте нижеприведённый код. Код или скрипт можно сохранить под любым именем. 

 

Далее входим во вкладку "начать развертывание" далее

 

"Новое развертывание" Веб-приложение Запуск от имени выбираете "свой аккаунт" У кого есть доступ "Все"

  

Далее Идентификатор развертывания вставляем в ссылку адресной строки ---Your-Google-Sheet-ID--Goes-Here---

https://script.google.com/macros/s/---Your-Google-Sheet-ID--Goes-Here---/exec?tag=test&value=-1

// 0) Заходим в Google-Таблицы, Инструменты > Редактор скриптов...
// 1) Вставляем туда этот код
// 2) Сохраняем и именуем уникальным названием
// 3) Задаем в меню способ запуска в режиме "doGet"
// 4) При первом запуске скрипт попросит вас дать ему права на редактирование таблицы
// 5) В главном меню > Развернуть как веб-приложение...
//    Каждый раз, когда заново разворачиваете скрипт, выбирайте последнюю версию
//    Выставляем права: "Me (your email address)"
//    ВАЖНО: выберите "Anyone, even anonymous" в меню "Кто может редактировать этот скрипт"

// Сохраняем опубликованный URL для использования в дальнейшем.
// https://script.google.com/macros/s/---Ваш-Script-ID--здесь---/exec
// https://script.google.com/macros/s/---Ваш-Script-ID--здесь---/exec?tag=test&value=-1

// Эта Функция будет вызвана один раз при первом исполнении
function doGet(e){
  Logger.log("--- doGet ---");

 var tag = "",
     value = "";

  try {

    // Дебаггинг
    if (e == null){e={}; e.parameters = {tag:"test",value:"-1"};}

    tag = e.parameters.tag;
    value = e.parameters.value;

    // Сохраняем данные в таблицу
    save_data(tag, value);

    return ContentService.createTextOutput("Wrote:n  tag: " + tag + "n  value: " + value);

  } catch(error) { 
    Logger.log(error);    
    return ContentService.createTextOutput("oops...." + error.message 
                                            + "n" + new Date() 
                                            + "ntag: " + tag +
                                            + "nvalue: " + value);
  }  
}

// Функция для сохранения данных в таблицу
function save_data(tag, value){
  Logger.log("--- save_data ---"); 

  try {
    var dateTime = new Date();

    // Вставьте URL из Google-таблицы , начиная с https thru /edit
    // Например: https://docs.google.com/..../edit 
    var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/---Ваш-Google-Sheet-ID--Goes-Here---/edit");
    var summarySheet = ss.getSheetByName("Summary");
    var dataLoggerSheet = ss.getSheetByName("DataLogger");

    // Получаем информацию о последней отредактированной строке в таблице
    var row = dataLoggerSheet.getLastRow() + 1;

    // Заполняем данными
    dataLoggerSheet.getRange("A" + row).setValue(row -1); // ID
    dataLoggerSheet.getRange("B" + row).setValue(dateTime); // dateTime
    dataLoggerSheet.getRange("C" + row).setValue(tag); // tag
    dataLoggerSheet.getRange("D" + row).setValue(value); // value

    // Обновляем таблицу summary
    summarySheet.getRange("B1").setValue(dateTime); // Last modified date
    // summarySheet.getRange("B2").setValue(row - 1); // Count 
  }

  catch(error) {
    Logger.log(JSON.stringify(error));
  }

  Logger.log("--- save_data end---"); 
}



Внимание! Имена листов в вышеприведённом скрипте должны совпадать с именами листов электронной таблицы, в которые мы собираемся записывать данные.
1) var summarySheet = ss.getSheetByName("Summary");
2) var dataLoggerSheet = ss.getSheetByName("DataLogger");

Аналогичным образом необходимо изменить в скрипте ключ совместного использования электронной таблицы (изменить строку «—Your-Google-Sheet-ID–Goes-Here—») на ваш (который вы скопировали ранее из адреса электронной таблицы).
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/---Your-Google-Sheet-ID--Goes-Here---/edit");
Это запрос с браузера при переходе по нему в таблицу будут записываться данные в первую таблицу слово test а во вторую значение -1
https://script.google.com/macros/s/–Your Google Script ID–/exec?tag=test&value=-1
Символы между символами «s/» и «/exec?» — это идентификатор вашего скрипта GScriptID.
В процессе публикации Google выдаст запросы на разрешение с вашей стороны, вам необходимо предоставить это разрешение.

Опрос

На сайте достаточно материала?

Другие опросы...