• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Решено Изменить удаленно размер SPIFFS, чтобы по OTA обновить скетч.

Paul_B

Member
Скажите, сколько операторов содержит скетч который Вы грузите и сколько операторов в скетче первом и какие библиотеки есть во втором но нет в первом?
Скетч около 6200 строк (если смотреть в текстовом редакторе все ino-файлы в проекте). НА SPIFFS эще 6-7 htm и js -файлов по 15-30Кб.
А вот перечень подгружаемых библиотек:
Код:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <EEPROM.h>
#include <FS.h>
#include <Ticker.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
#include <ESP8266Ping.h>
#include <WiFiClientSecure.h>
#include <base64.h>
Это при том, что я сэкономил на библиотеке DHT.h, реализовав функции опроса датчиков DHT11 и DHT22 сам. А также синхронизацию времени с серверами.
В принципе, теперь еще можно сэкономить 10Кб, убрав библиотеку ArduinoOTA - можно обновлять, подгружая по кнопке файл и совсем не обязательно заливать инфо (скетч и SPIFFS) из Arduino IDE
 
Последнее редактирование:

Paul_B

Member
Например Updater.cpp последний раз обновлялся 2 месяца назад, при выходе обновления в ручную исходники мерджить будем или есть какие нибудь рекомендации по решение проблемы с обновлениями?
Мне не в падлу вставить одну строчку в файл. Тем более, что я подхожу с правилом советского инженера "Работает - не трожь".
 

Paul_B

Member
В сумме эти две прошивки у вас составляют 496 Кб
Что непонятного я сказал? Скетч-проект состоит из 5-ти ino-файлов, суммарно 6200 строк. Комментариев от силы 20 строк на все. bin-файл с прошивкой весит 496 Кб. Если версия ESP8266 4МБ (3+1 на спиф), то по ОТА она могла обновляться, а вот при версии 1МБ обновление не могло быть. Сейчас же я могу обновлять даже при SPIFFS в 512 КБ. Причем модуль работает на даче, а удаленно я могу обновлять в нем прошивку из дома.
 

Paul_B

Member
Управление сетью модулей (их выводами) в зависимости от каких-либо событий (уровня сигнала, пинга, по времени, показаний температуры, влажности). При возможной отправкой e-mail о происшедших событиях. Рисуются графики состояний любых перечисленных показателей. При этом все универсально - все настройки, создание условных событий, на какие модули что отправлять управляющие сигналы - все настраивается через web-браузер. Через него же визуально все контролируется.
Применение - от системы полива, контроль протечек воды и перекрытие водопровода, контроль утечек газа и соответственно перекрытие газопровода. Причем одни модули на полу контролируют протечки и при обнаружении передают сигнал другим, которые электрическими задвижками управляют. Во всех работает одна программа - просто разные настройки задаются через браузер. Все сохраняется в EEPROM.
Сброс питания веб-камеры, если она не находится в сети (потеряла связь). Короче применение универсальное, на что хватит фантазии. Например, у меня дверь на засов через него закрывается изнутри - открыть могу либо с радио брелка, либо по интернету с другого конца шарика, либо, например, при достижении температуры и/или влажности.
Полив же опять интеллектуальный - в зависимости от средней температуры, влажности воздуха и почвы.
При этом не обязательно наличие интернета - достаточно чтобы один модуль был в домашней сети, а остальные - хоть на каком удалении, главное, чтобы они видели друг друга.
 

Paul_B

Member
6000 строк без комментов через год после затыка не сможете найти ошибку
Так это ж не простыней написано. Функциями.
Поэтому и писал универсально, чтоб на все случаи жизни. Создал черз браузер условную задачку на одном из модулей, что скажем при достижении уровня сигнала на такой-то ноге, отправить такую-то команду на такой-то модуль. И все. Причем повторюсь, модули могут быть расположены не обязательно в одной сетке. Каждые подключается к сети и создает свою сеть, т.е. паутина. При пропадении одной из сетей, они коммутируются заново. Передача идет по наименованию модулей, т.к. каждый знает всю сеть - между ними идет обмен о своих "соседях".
Вот фотки элементов интерфейса
Буфер обмена01.jpg Буфер обмена05.jpg Буфер обмена06.jpg Буфер обмена03.jpg Буфер обмена04.jpg
 

Paul_B

Member
У кого-то из могикан разработки систем прочитал такую мысль:
Универсальная система - это такая система, разработчики которой не имеют ни малейшего представления, где ее можно применять.
Может быть. Для меня это развлекуха в первую очередь. Хобби. Все наработки пытаюсь впихнуть в проект.
 

Paul_B

Member
Что конкретно не понимаете?
если подробнее расскажите,попробую объяснить.
Так все равно же все это должно быть в прошивке. Я про то, что скажем ino-файл скетча (возможно в bin-форме) лежит в SPIFFS. Как его запустить из прошивки? Аналог как exe-файл запускается из bat-файла командой call.
 

Paul_B

Member
Поэтому выкиньте файлы ino из SPIFFS - так как ino в прошивке - это мусор.
У меня и нет ino-файлов в SPIFFS. Это вы все агитируете чтобы сделать подгружаемые задачи. И ни разу не привели конкретного примера как это можно сделать. И не надо мне разжевывать с компиляторами - я это знал еще в 1992 году.
 

nikolz

Well-known member
У меня и нет ino-файлов в SPIFFS. Это вы все агитируете чтобы сделать подгружаемые задачи. И ни разу не привели конкретного примера как это можно сделать. И не надо мне разжевывать с компиляторами - я это знал еще в 1992 году.
А это не Вы написали выше:
цитата:
Я про то, что скажем ino-файл скетча (возможно в bin-форме) лежит в SPIFFS. Как его запустить из прошивки? Аналог как exe-файл запускается из bat-файла командой call.
 

Paul_B

Member
А это не Вы написали выше:
Хоть вы и удалили весь свой бред, но вот я откопал:
цитата: Вы сделайте две задачи.
Сами задачи будут храниться во флеш
Но в отличии от двух скетчей у них будут общими все библиотеки.
Запускает задачи по очереди. Память данных у них тоже общая.
Код библиотек хранится на флеш
 

nikolz

Well-known member
Хоть вы и удалили весь свой бред, но вот я откопал:
цитата: Вы сделайте две задачи.
Сами задачи будут храниться во флеш
Но в отличии от двух скетчей у них будут общими все библиотеки.
Запускает задачи по очереди. Память данных у них тоже общая.
Код библиотек хранится на флеш
Давайте по порядку.
В приведенной моей цитате есть что-нибудь про файлы ino или SPIFFS?
Поэтому ответьте ,где жк бред про ino которые в SPIFFS?

и если вы отвечаете за базар, то поясните что именно вы считаете бредом в этой моей цитате
 

Sever44

Member
С интересом следил за вашей словесной баталией. К сожалению, не все понял.
Прошу ответить на вопрос:
Нельзя ли использовать SD карту для прошивки методом OTA модулей, у которых памяти недостаточно для стандартной прошивки (например, моего любимого модуля ESP-201).
Не бейте сразу ногами, если сформулировано, не совсем грамотно.
 

nikolz

Well-known member
С интересом следил за вашей словесной баталией. К сожалению, не все понял.
Прошу ответить на вопрос:
Нельзя ли использовать SD карту для прошивки методом OTA модулей, у которых памяти недостаточно для стандартной прошивки (например, моего любимого модуля ESP-201).
Не бейте сразу ногами, если сформулировано, не совсем грамотно.
начнем с того, что такое OTA?
рассказываю на пальцах.
Во флеш выделяется две области
в одну записана рабочая версия
в другую пишем через Wifi новую прошивку
потом рестартуем ESP c начала второй области
в следующий раз делаем так же но с записью в первую
----------------
если памяти для прошивки не хватает
то ее и не хватит на первую прошивку
так как для двух она(флеш) делится пополам.
наличие SD при этом ничего не изменит.
-----------------
У вас 512 кб - это кирдык. Либо замените чип либо берите ESP-12 (стоит менее 100 руб с доставкой из Китая)
 

Sever44

Member
Видимо, я рассчитывал на чудо - использовать SD карту в качестве флеш памяти....
 
Сверху Снизу