Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Sming Open Source Framework для нативной разработки прошивок ESP8266

Тема в разделе "Sming Open Source Framework", создана пользователем anakod, 20 мар 2015.

Метки:
  1. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Sming это фрамеворк для быстрой и удобной разработки своих прошивок под ESP8266 с использованием Arduino стиля управления GPIO, удобным встроенным инструментарием и возможностью подключения практически любых Arduino-совместимых библиотек.

    Благодаря большой кодовой базе Ардуино мира и мощности и доступности чипа ESP, можно создавать по настоящему интересные и функциональные проекты за считанные часы разработки.

    [​IMG]

    Возможности и преимущества
    • Скорость и удобство разработки
    • С++ и полноценный ООП
    • Работа с GPIO в Arduino стиле
    • Эффективное использование памяти и высокая производительность (на выходе - нативная прошивка)
    • Совместимость с большинством Arduino библиотек - используйте любые популярные датчики и устройства всего в несколько строк кода
    • Полноценная встроенная файловая система: spiffs
    • Встроенные классы HTTP клиента и Web сервера с удобным программным интерфейсом
    • Прекрасная поддержка JSON: ArduinoJson
    • Удобные обертки для основных системных API
    • Написано на базе последнего Espressif SDK
    Скачать самую свежую версию можно на GitHub: https://github.com/anakod/Sming (лицензия: LGPL)
    Если не хотите регистрироваться, можете просто скачать все файлы с помощью кнопки "Download ZIP".

    Инструкции по быстрой установке:
    - Для Windows
    - Для Linux
    - Для MacOS

    А так же у нас есть online-чат, в котором почти всегда кто-нибудь присутствует :)
    Там можно задать вопросы по Sming: по установке и настройке, по коду; предложить что-нибудь; помочь проекту!
    Чат (раскрыть)
    Здесь всегда можно получить самую свежую и наиболее актуальную информацию. Основной язык общения - английский (т.к. участники со всего мира), но некоторые знают русский, и с ними можно пообщаться в личном чате.
    В общем, добро пожаловать!
    (для входа в чат используется аккаунт GitHub)


    Поддержать развитие проекта
    Нравиться Sming Framework? Я буду благодарен Вашей поддержке, как donate, так и любой помощи с документацией и примерами.
    [​IMG]

    Некоторые примеры (остальные вы найдете внутри проекта):

    Мигаем диодом:
    Код (C):
    1. #define LED_PIN 2 // GPIO2
    2. ...
    3. pinMode(LED_PIN, OUTPUT);
    4. digitalWrite(LED_PIN, HIGH);
    DHT22
    Код (C):
    1. #include <Libraries/DHT/DHT.h> // Это обычная библиотека Arduino!
    2.  
    3. DHT dht(0, DHT22); // GPIO0
    4.  
    5. void init()
    6. {
    7.   dht.begin();
    8.   float h = dht.readHumidity();
    9.   float t = dht.readTemperature();
    10. }

    HTTP Client
    Код (C):
    1. HttpClient thingSpeak;
    2. ...
    3. thingSpeak.downloadString("http://api.thingspeak.com/update?key=XXXXXXX&field1=" + String(sensorValue), onDataSent);
    WEB Server
    Код (C):
    1.  
    2. server.listen(80);
    3. server.addPath("/", onIndex);
    4. server.setDefaultHandler(onFile);
    5.  
    6. Serial.print("Started: ");
    7. Serial.println(WifiStation.getIP());
    8. ...
    9.  
    10. void onIndex(HttpRequest &request, HttpResponse &response)
    11. {
    12.   TemplateFileStream *tmpl = new TemplateFileStream("index.html");
    13.   auto &vars = tmpl->variables();
    14.   vars["counter"] = String(counter);
    15.   vars["IP"] = WifiStation.getIP().toString();
    16.   vars["MAC"] = WifiStation.getMAC();
    17.   response.sendTemplate(tmpl);
    18. }
    P.S. Я автор данного проекта. Буду рад Вашим отзывам и предложениям, участию в тестировании или помощи по улучшению функционала платформы. С документацией дела пока что обстоят не очень, но я постарался подготовить достаточно большое количество простых и наглядных примеров по всем основным функциям платформы.
     
    Последнее редактирование: 15 май 2015
    Fanis, aliaksei, redzub и 9 другим нравится это.
  2. Andy Korg

    Andy Korg Moderator Команда форума

    Сообщения:
    410
    Симпатии:
    72
    Если позволите три вопроса:
    1. Как происходит общение с web сервером (через специально оформленные переменные как у pvvx или еще как-то?)
    2. JQuery - в wiki написано "At start ESP will download all requried files from remote server. All content, including JQuery and Bootstrap will be saved on device (and can work offline). Static files stored in GZIPed mode." Т.е. движок JQuery не встроен в прошивку и нужно будет отдельно загрузить?
    3. Подскажите пожалуйста сколько памяти в распоряжении разработчика - как оперативной, так и flash?
     
  3. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    1. Доступно несколько вариантов: можно отправлять файлы, текстовые строки, а так же работать с шаблонами в которые поставляются динамические переменные. Подробнее в примере: https://github.com/anakod/Sming/blob/master/HttpServer_Bootstrap/app/application.cpp

    2. Фрамеворк намного шире и не ограничен одним jQuery, можно использовать любые библиотеки и другие файлы. Другое дело что пока мало вариантов чтобы изначально закидывать файлы в прошивку (поэтому в семпле используется HTTP). Я планирую добавить FTP доступ для этой цели.

    3. На вскидку точно не скажу, но примерный размер доступного пространства в файловой системе ~210 КБ. Что касается оперативной памяти - сам фрамеворк не занимает почти ни сколько в базовом режиме работы, но около 1.5 КБ ест кеш файловой системы, если она подключена. В режиме сервера оверхид на каждый запрос можно посчитать, но он в любом случае совсем не большой (вероятно около 200-300 байт). Да, я забыл сказать главное: фрамеворк категорически не использует глючный espconn. Только нативный lwip, только хардкор :)
     
    Последнее редактирование: 20 мар 2015
    Serjkruch, Артемий и Victor нравится это.
  4. Andy Korg

    Andy Korg Moderator Команда форума

    Сообщения:
    410
    Симпатии:
    72
    Спасибо за ответы. Посмотрел пример и кажется понял, что переменные это строка вида {var} в html. Правильно?
     
  5. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Да, все верно. Для более полного понимания можете ещё посмотреть на примере реального проекта с использованием шаблонов: https://github.com/anakod/Sming/tree/master/MeteoControl
    --- добавлено: 20 мар 2015 в 13:01 ---
    Я бы ещё добавил, что Вам ничего не мешает генерировать ответ обычной текстовой строкой и отдавать ее, НО в чипе очень мало оперативной памяти, поэтому этот вариант стоит применять только для минимальных объёмов данных. В отличие от этого, встроенные в фрамеворк шаблоны загружаются из флеш и отдаются маленькими фрагментами, с подстановкой параметров на лету, что обеспечивает очень эффективное управление памятью.
     
    Последнее редактирование модератором: 20 мар 2015
  6. CHERTS

    CHERTS Moderator Команда форума

    Сообщения:
    483
    Симпатии:
    104
    А вот это очень хорошо, я уже 5 дней смотрю на Ваш проект, но пока ничего не тестировал.
    Думаю включить его в состав UDK не как пример, а как отдельная обертка над Espressif SDK, но нужно все тестировать и больше больше примеров... всяких разных, это залог успеха.
     
  7. CHERTS

    CHERTS Moderator Команда форума

    Сообщения:
    483
    Симпатии:
    104
    Эммм, что то рано я обрадовался, пытаюсь собрать SmingFramework, а в ответ гора ошибок:

    Ошибки (раскрыть)

    Код (Text):
    1. 5:30:42 **** Build of configuration Default for project SmingFramework ****
    2. mingw32-make.exe -f C:/Espressif/examples/Sming/Sming/Makefile all
    3. C+ system/stringconversion.cpp
    4. In file included from c:/Espressif/ESP8266_SDK/include/user_interface.h:11:0,
    5.                  from system/include/esp_systemapi.h:10,
    6.                  from include/user_config.h:27,
    7.                  from system/stringconversion.cpp:1:
    8. c:/Espressif/ESP8266_SDK/include/lwip/ip_addr.h:213:23: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Werror=literal-suffix]
    9.    LWIP_DEBUGF(debug, ("%"U16_F".%"U16_F".%"U16_F".%"U16_F,             \
    10.                        ^
    11. c:/Espressif/ESP8266_SDK/include/lwip/ip_addr.h:213:31: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Werror=literal-suffix]
    12.    LWIP_DEBUGF(debug, ("%"U16_F".%"U16_F".%"U16_F".%"U16_F,             \
    13.                                ^
    14. c:/Espressif/ESP8266_SDK/include/lwip/ip_addr.h:213:40: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Werror=literal-suffix]
    15.    LWIP_DEBUGF(debug, ("%"U16_F".%"U16_F".%"U16_F".%"U16_F,             \
    16.                                         ^
    17. c:/Espressif/ESP8266_SDK/include/lwip/ip_addr.h:213:49: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Werror=literal-suffix]
    18.    LWIP_DEBUGF(debug, ("%"U16_F".%"U16_F".%"U16_F".%"U16_F,             \
    19.                                                  ^
    20. In file included from c:/Espressif/ESP8266_SDK/include/lwip/ip.h:39:0,
    21.                  from c:/Espressif/ESP8266_SDK/include/lwip/tcp.h:42,
    22.                  from system/include/espinc/lwip_includes.h:15,
    23.                  from include/user_config.h:34,
    24.                  from system/stringconversion.cpp:1:
    25. c:/Espressif/ESP8266_SDK/include/lwip/ip_addr.h:213:23: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Werror=literal-suffix]
    26.    LWIP_DEBUGF(debug, ("%"U16_F".%"U16_F".%"U16_F".%"U16_F,             \
    27.                        ^
    28. c:/Espressif/ESP8266_SDK/include/lwip/ip_addr.h:213:31: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Werror=literal-suffix]
    29.    LWIP_DEBUGF(debug, ("%"U16_F".%"U16_F".%"U16_F".%"U16_F,             \
    30.                                ^
    31. c:/Espressif/ESP8266_SDK/include/lwip/ip_addr.h:213:40: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Werror=literal-suffix]
    32.    LWIP_DEBUGF(debug, ("%"U16_F".%"U16_F".%"U16_F".%"U16_F,             \
    33.                                         ^
    34. c:/Espressif/ESP8266_SDK/include/lwip/ip_addr.h:213:49: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Werror=literal-suffix]
    35.    LWIP_DEBUGF(debug, ("%"U16_F".%"U16_F".%"U16_F".%"U16_F,             \
    36.                                                  ^
    37. cc1plus.exe: all warnings being treated as errors
    38. mingw32-make.exe: *** [out/build/system/stringconversion.o] Error 1
    39. C:/Espressif/examples/Sming/Sming/Makefile:326: recipe for target 'out/build/system/stringconversion.o' failed
    40.  
    41. 15:30:45 Build Finished (took 2s.843ms)
    42.  
    43.  
     
  8. CHERTS

    CHERTS Moderator Команда форума

    Сообщения:
    483
    Симпатии:
    104
    Проблема решена, подправил C:\Espressif\ESP8266_SDK\include\lwip\ip_addr.h

    Код (Text):
    1.  
    2. --- ip_addr.h.orig   2014-12-19 15:07:44.000000000 +0500
    3. +++ ip_addr.h   2015-03-20 15:50:40.769937000 +0500
    4. @@ -210,7 +210,7 @@
    5. #define ip_addr_islinklocal(addr1) (((addr1)->addr & PP_HTONL(0xffff0000UL)) == PP_HTONL(0xa9fe0000UL))
    6. #define ip_addr_debug_print(debug, ipaddr) \
    7. -  LWIP_DEBUGF(debug, ("%"U16_F".%"U16_F".%"U16_F".%"U16_F,  \
    8. +  LWIP_DEBUGF(debug, ("%" U16_F ".%" U16_F ".%" U16_F ".%" U16_F,  \
    9.   ipaddr != NULL ? ip4_addr1_16(ipaddr) : 0,  \
    10.   ipaddr != NULL ? ip4_addr2_16(ipaddr) : 0,  \
    11.   ipaddr != NULL ? ip4_addr3_16(ipaddr) : 0,  \
    12.  
    но в UDK этого исправления нет, как следствие все кто использую UDK наступят на эти грабли
     
    Victor нравится это.
  9. CHERTS

    CHERTS Moderator Команда форума

    Сообщения:
    483
    Симпатии:
    104
    Один нескромный вопрос, а зачем во всех примерах uart инициализирвется на 230400 ? Стандартной 115200 не хватает? Без влезания в код с первого набега и не понять, в чем засада.
     
  10. CHERTS

    CHERTS Moderator Команда форума

    Сообщения:
    483
    Симпатии:
    104
    Пример Pressure_BMP180 не собирается, не хватает места в сегменте памяти

    Код (Text):
    1. mingw32-make.exe -f C:/Espressif/examples/Sming/Pressure_BMP180/Makefile all
    2. LD out/build/app.out
    3. c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: out/build/app.out section `.text' will not fit in region `iram1_0_seg'
    4. collect2.exe: error: ld returned 1 exit status
    5. mingw32-make.exe: *** [out/build/app.out] Error 1
    6. C:/Espressif/examples/Sming/Pressure_BMP180/Makefile:225: recipe for target 'out/build/app.out' failed
    Пример Basic_WiFi тоже не собирается, ошибка

    Код (Text):
    1. C+ app/application.cpp
    2. In file included from include/user_config.h:29:0,
    3.                  from app/application.cpp:1:
    4. app/application.cpp: In function 'void ready()':
    5. ../Sming/system/include/esp_systemapi.h:25:60: error: cannot pass objects of non-trivially-copyable type 'class IPAddress' through '...'
    6. #define debugf(fmt, ...) os_printf(fmt"\r\n", ##__VA_ARGS__)
    7.                                                             ^
    8. app/application.cpp:43:2: note: in expansion of macro 'debugf'
    9.   debugf("%d %s", WifiAccessPoint.getIP(), WifiAccessPoint.getMAC().c_str());
    10.   ^
    11. C:/Espressif/examples/Sming/Basic_WiFi/Makefile:329: recipe for target 'out/build/app/application.o' failed
    12. mingw32-make.exe: *** [out/build/app/application.o] Error 1
    Буду смотреть дальше...
     
  11. CHERTS

    CHERTS Moderator Команда форума

    Сообщения:
    483
    Симпатии:
    104
    Пример HttpServer_Bootstrap и HttpClient_ThingSpeak тоже не собираются, ошибки одинаковые

    Код (Text):
    1. ut/build/app_app.a(HttpClient.o): In function `HttpClient::getResponseHeader(String, String)':
    2. C:\Espressif\examples\Sming\HttpServer_Bootstrap/../Sming/SmingCore/Network/../Boards.h:17: undefined reference to `DateTime::DateTime()'
    3. C:\Espressif\examples\Sming\HttpServer_Bootstrap/../Sming/SmingCore/Network/../Boards.h:17: undefined reference to `DateTime::parseHttpDate(String)'
    4. C:\Espressif\examples\Sming\HttpServer_Bootstrap/../Sming/SmingCore/Network/../Boards.h:17: undefined reference to `DateTime::DateTime()'
    5. out/build/app_app.a(HttpClient.o): In function `HashMap<String, String>::contains(String) const':
    6. C:\Espressif\examples\Sming\HttpServer_Bootstrap/../Sming/SmingCore/Network/../Boards.h:17: undefined reference to `DateTime::parseHttpDate(String)'
    7. out/build/app_app.a(HttpClient.o): In function `String::operator==(String const&) const':
    8. C:\Espressif\examples\Sming\HttpServer_Bootstrap/../Sming/SmingCore/Network/../Boards.h:17: undefined reference to `DateTime::DateTime()'
    9. out/build/app_app.a(HttpClient.o): In function `HashMap<String, String>::contains(String) const':
    10. C:\Espressif\examples\Sming\HttpServer_Bootstrap/../Sming/SmingCore/Network/../Boards.h:17: undefined reference to `DateTime::DateTime()'
    11. out/build/app_app.a(HttpClient.o): In function `HashMap<String, String>::indexOf(String) const':
    12. C:\Espressif\examples\Sming\HttpServer_Bootstrap/../Sming/SmingCore/Network/../Boards.h:17: undefined reference to `DateTime::parseHttpDate(String)'
    13. C:\Espressif\examples\Sming\HttpServer_Bootstrap/../Sming/SmingCore/Network/../Boards.h:17: undefined reference to `DateTime::DateTime()'
    14. collect2.exe: error: ld returned 1 exit status
    15. C:/Espressif/examples/Sming/HttpServer_Bootstrap/Makefile:225: recipe for target 'out/build/app.out' failed
    16. mingw32-make.exe: *** [out/build/app.out] Error 1
    17.  
     
  12. CHERTS

    CHERTS Moderator Команда форума

    Сообщения:
    483
    Симпатии:
    104
    Остальняе примеры нормально собираются, но есть одно но, взять к примеру Basic_Blink, там всего то помигивание светодиодом, то есть управление GPIO, а в прошивку линкуется все подряд или нет?
     
  13. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Касательно первой ошибки - точно мой косяк, как-то вносил изменения в сдкашный файл для совместимости с си++11, но потом забыл об этом.
     
  14. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    Блин, если такую штуку да еще довести до полного вида Ардуино, ну то есть:
    - чтобы устанавливалось оно все как Ардуино одним екзешником и сразу работало
    - чтобы была пара кнопочек только на панели инструментов:
    -- скомпилировать (проверить код)
    -- загрузить в МК
    -- открыть встроенный терминал для проверки
    - и чтобы такой же богатый набор библиотек и человеческий API для встроенного железа
    Тогда, я даже боюсь представить, чтобы тогда было.
    Ибо Ардуино (а точнее AVRки) у других чипов выигрывают лишь за счет как раз набранного уже комьюнити и, главное - кучи библиотек и возможности почти любую хрень подключить чуть ли не 1 вызовом либы + 1-2 строчками кода.
    Это конечно по моему скромному мнению...

    Так вот, если все это взять, и конвертнуть на чип ESP, который с 512 кило памяти (ну да, многое занято, но и свободно не мало) с возможностью расширения до 16 мегабайт легко, 80 мегагерцами вычислительной (а то и все 160), и с WiFi наконец!
    "Вот она - рыба моей мечты!" - для домашних поделок и быстро что-то слабать для себя любимого на коленке :)

    anakod, не знаю, уместно ли, но просто скажу так: честь вам и хвала!
    CHERTS, и вам заодно, за ваш UDK!

    Даешь Espruino Esspruino, ребята! (тут маленькая засада - Espruino-то уже занято другим проектом)
     
    Evgen нравится это.
  15. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Наконец я добрался до компьютера и сейчас начинаю разбираться с найденными проблемами.

    Всем огромное спасибо за участие
     
  16. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Комит есть, завтра отпишусь по всем вопросам поподробнее.
     
    NeoroN и JustACat нравится это.
  17. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.126
    Симпатии:
    1.244
    Данный проект не поддерживает более 4Мегобайт и то протестировать и на 4-ре не могу - нет такой flash. Есть только 16 Мегобайт, но в коде написано, что более 4-х незя. И ещё известно, что SDK кеширует всего 1 Мег Flash и как будет работать 2 или 4 - совершенно не понятно.... Так-же не нашел, гуляя по исходникам, что когда будет установлен в программе прошивки Flash на 1 Мег (или больше), область сохранения SDK переместиться и не будет ли конфликта с файловой системой?
     
  18. ESP

    ESP Новичок

    Сообщения:
    1
    Симпатии:
    0
    Заинтересовал ваш проект, задумка очень хорошая!!!
    Возможность использовать arduino драйвера бля датчиков очень помогла бы многим.
    Лично для меня нихватает только MQTT. Может есть возможность прикрутить эту библиотеку MQTT.
     
  19. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Вышла новая версия Sming Framework v1.0.5
    Изменения:
    • Поддержка Espressif SDK v1.0
    • Исправление ошибок
    • Стандартная скорость порта изменена на 115200
    Теперь обо всем по порядку.

    А как Вы нашли его до анонса, если не секрет? :)

    Я весьма за, единственное есть просьба в таком случае поставить в первом посте ссылку на эту тему чтобы люди знали где задавать вопросы и вести обсуждение по Sming

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

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

    Вот с этим реальная проблема, причем раньше работало без проблем, но видимо после расширения функционала, места стало не хватать. Единственный вариант - перенести некоторые системные либы в область ROM. Возникла идея пересобрать libmath так, чтобы базовая арифметика оставалась в RAM а всякие флоат операции легли в ROM. Но как это сделать правильно пока еще не придумал.
    В качестве временного решения заблокировал функционал использующий pow в библиотеке, остальное работает без проблем.

    Тут несколько разных сторон и моментов. С одной стороны я не вижу больших проблем, т.к. код оперативную память не ест, а лишние N килобайт во флеш, большой роли (тем более для блинка :) не играют. С другой стороны текущий маке файл - явный костыль и я был бы рад любой помощи в его модернизации (могу рассказать поподробнее), т.к. сам с GNU compilers я фактически имею дело в первый или второй раз в жизни.

    Что касается остальных ошибок - жаль в Eclipse не очень удобно сделан полный Rebuild, трудно подобные маленькие ошибки сразу выявлять, а учитывая что фрамеворк активно развивается и примеров уже довольно много, трудновато получается отслеживать что нигде ничего не забыл обновить.

    Проект писался мной в одиночку, в свободное от основной работы время, поэтому сразу был заложен ряд ограничений и четкие рамки проекта. Основной целью было получить высокую совметимость с Ардуино, удобный инструментарий для работы с веб-протоколами и при этом не "жрать" кучу оперативной памяти как Lua прошивки. При этом никаких костылей заведомо не закладывалось, поэтому добавить поддержку модулей с нестандартным флеш, совершенно не должно стать проблемой (если кто-то готов помочь в этих направлениях). На данный момент Sming тестировался только на стандартном размере флеш (я сам тестировал на ESP-01 и ESP-03). Вполне вероятно что для других размеров достаточно будет обновить Make файл (который все равно хорошо бы переписать более изящно). Я буду благодарен если кто-то протестирует этот вопрос и отпишется здесь и/или поможет с добавлением поддержки больших флеш.

    Про SDK, не подскажу, а в коде проблем возникнуть не должно, используется подход аналогичный Lua прошивкам - ищем точку окончания кода прошивки, добавляем отступ и выравнивание, после этого все остальное (кроме служебных секторов настроек в самом конце) - это область файловой системы, она форматируется. Можете посмотреть подробнее тут: https://github.com/anakod/Sming/blob/master/Sming/Services/SpifFS/spiffs.c#L42

    Мне как-то не приходилось работать с этим протоколом, может что-нибудь посоветуете почитать? Что касается библиотеки, ссылку на которую Вы дали, вероятнее всего она прекрасно будет работать со Sming без всякой адаптации, т.к. фрамеворк не заменяет стандартные возможности SDK, он просто добавляет ряд удобных оберток, более простые типы (такие как String) и совместимость с Ардуино. Но вот в сторону более тесной интеграции и удобных оберток к MQTT, вероятно стоит посмотреть.
     
    JustACat и Victor нравится это.
  20. Max Garmash

    Max Garmash Новичок

    Сообщения:
    1
    Симпатии:
    0
    MQTT - фактически стандартная шина для телеметрии. Очень много проектов его поддерживают. Определенно нужно эту либу пробовать включить в поставку. Сам попробую поэкспериментировать на днях со сборкой может и без шаманства взлетит.
     

Поделиться этой страницей