4 Shield (Uno-Mega) 91 дюймов I2C bme280 DFPLAYER-MINIDHT-11 DTMFEEPROM ESP32 ESP8266 FLPROG БЛОКИ ДЛЯ ДИСПЛЕЙ ST7565_U8G2_SPI Вывод RUS текста LCD12864_U8G2 GSM SIM800 IOTKASCADA LED MG996R SAM3X STM32H7 Блок для 3-осевой акселерометр HMC5883L 3-осевой цифровой компас и ITG3205 3-осевой гироскоп Блок для En_AP - включает автоматическое включение точки доступа в случае отсутствия подключения в р Блок для ESP-8266 IR приемник3.0 Блок для GPS Блок для Ina226 двунаправленное Напряжение Тока Блок для NRF24L01 модуль беспроводной передачи данных 2 Блок для PID регулятора Блок для Servo Управление Блок для Время числом - в часы Блок для ПИД регулятора Блок для Экстремумы Блок для бегущая строка Блок для времени счетчик чисел округление числа дата числом подсчет дней перевод минут Блок для датчик измерения тока acs712t 5а 20a 30а Блок для датчика температуры и влажности HTU21D Блок для детектирования попадания текущего времени в указанный временной интервал Блок для дисплея SSD1306 ESP8266 Блок для основной блок MQTT на базе ESP8266 Блок для парсинга погоды из интернета сайт openweathermap.org Блок для снятия показаний с трансформатора переменного тока Блок для таймер обратного отсчёта Блок для установки соединения с программой Virtuino Блок служит для создания бегущей строки Блоки разные (прочее блоки) включенных последовательно отсчёт в секундах

Блок для записи данных в 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

 

Блок для автомобильного бортового компьютера
Rh — мгновенный расход бензина в литрах в час (когда стоишь с заведённым двигателем). Когда машина едет вместо Rh появляется Ri — мгновенный расход на 100км.
Rm — средний расход в литрах на 100км за минуту. Только при движении.
Rp — количество потраченного бензина в литрах за поездку. Если заглушить и опять завести машину, обнуляется.
S — скорость км/ч. Скорость откалибрована по навигатору под конкретные колёса. При скорости выше 110 км/ч подсветка экрана начинает моргать. Удобно на трассе если семья и семейный бюджет дороже адреналина.
T — пробег в км за последнюю поездку.
t — температура за бортом.
Rzapr и Tzapr — общий расход бензина в литрах и расстояния в километрах. Хранится в энергонезависимых ячейках. Обнуляется маленькой кнопкой если включен второй экран. Удобно контролировать подсчёт потраченного бензина для корректировки. Также можно контролировать АЗС, если заправить полный бак и обнулить. Через пару недель приехать туда же и опять заправить до полного. Сравнить показания на колонке АЗС с Rzapr. У меня были расхождения максимум в 0.3 литра.
Ta — тахометр об/мин

 

Блок предназначен для работы с программой CANHacker V2.00.01 и работает в связке с модулем MCP2515
Подключение модуля: 
SCK - 13 pin arduino
SI - 11 pin arduino
SO - 12 pin arduino
CS - настраивается (по умолчанию 10 pin arduino)
INT - настраивается (по умолчанию 2pin arduino)
Внимание! Библиотека CanHacker.h по умолчанию настроена на частоту кварца в модуле MCP2515 на 16 мГц. Если у вас модуль с частотой 8 мГц. То вам необходимо в библиотеке CanHacker.h в строке 68 найти: CAN_CLOCK canClock = MCP_16MHZ; сделать изменения на такие : CAN_CLOCK canClock = MCP_8MHZ;
Автор блока : aidar_i на форуме flprog
Тестирование и оформление : Eraser19rus на форуме flprog
Блок был создан на основе скетча и библиотек для CANHacker  автор : Dmitry 
Flprog v 6.3.1 . Arduini IDE v 1.8.12 на момент создания

 

 

Блок для Измерение скорости вращения путём измерения интервала между импульсами
Измерение скорости вращения путём измерения интервала между импульсами ( один импульс на оборот). Используется прерывание. 
В отличии от способа с подсчётом количества импульсов за единицу времени, позволяет получить большее разрешение на малой скорости вращения без увеличения разрешения датчика (количества импульсов на оборот). Измерение происходит при изменении входного сигнала с низкого уровня на высокий. Обновление значения происходит с каждым оборотом, в случае остановки вращения значение обнулится через определённое время, которое зависит от минимальной установленной скорости (задаётся в параметрах пользователя).
В параметрах пользователя необходимо указать минимальную измеряемую скорость. От этого зависит, сколько времени после остановки вращения будет сохранятся последнее измеренное значение.

 

Энкодер 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 выдаст запросы на разрешение с вашей стороны, вам необходимо предоставить это разрешение.

Опрос

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

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