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

ShIoTiny - визуально программируемая плата

Тема в разделе "Раздел для начинающих", создана пользователем shiotiny, 8 сен 2019.

  1. shiotiny

    shiotiny Читатель

    Сообщения:
    27
    Симпатии:
    5
    Разработал прошивку для ESP8266 (модуль ESP-07)

    Возможно, что заинтересует начинающих.

    Вкратце: вы рисуете программу в браузере. Ничего на комп устанавливать НЕ НУЖНО! Главное, чтобы был WiFi.

    Поддержка MQTT, UDP, трех входов и трех выходов, АЦП, датчики температуры и влажности.

    Подробнее - на сайте http://shiotiny.ru/ в разделе Документация

    Статьи на хабре.

    ShIoTiny: малая автоматизация, интернет вещей или «за полгода до отпуска»
    ShIoTiny: узлы, связи и события или особенности рисования программ
    ShIoTiny: вентиляция влажного помещения (проект-пример)
    ShIoTiny и окружающий мир: подключение датчиков к бинарным входам, дребезг контактов и другие вопросы
    ShIoTiny и окружающий мир: аналоговые датчики или АЦП для самых маленьких

    Репозиторий с бинарями и документацией.

    shiotiny/ShIoTinyBin

    И еще - начал делать сайт (есть идеи по портированию и развитию). Но это пока заготовка сайта.

    Главная

    Пишите, пробуйте, ищите глюки.

    Если кому лень прошивать ESP-07 - можете написать мне, платы ещё есть.

    shiotiny@yandex.ru
     
  2. nikolz

    nikolz Гуру

    Сообщения:
    4.924
    Симпатии:
    454
    всегда интересно читать об опыте других.
    Но возникает вопрос, почему предложенное вами решение для разработки устройств на ESP Вы считаете лучше и проще чем разработка например на СИ или ардуине?
    Поясню
    Если чел не знает ничего , то у него есть выбор - изучать вашу уникальную систему кубиков или изучить широко применяемую систему ардуина.
    Сравнительная сложно примерно одинаковая
    Возможность и поддержка ардуины многократно больше.
    Полагаю что выбор очевиден,
     
  3. shiotiny

    shiotiny Читатель

    Сообщения:
    27
    Симпатии:
    5
    Я НЕ считаю свою прошивку "самой-самой лучшей".

    Я исхожу из того, что разным людям нужны разные прошивки. Ведь цели то у людей тоже разные.

    Вы, как мне кажется, смотрите с той точки зрения, что надо вникнуть до самого нутра в каждую железку. Освоить язык С++ и внутренние регистры. Повозиться с TCP на низком уровне. И с этой точки зрения вы, несомненно, правы.

    Но попробуйте взглянуть с другой стороны.

    Есть масса народу-самодельшиков, кто НЕ хочет возиться с установкой компиляторов, разбираться с внутренними регистрами и языком С. А тем более с нюансами программирования MQTT и веб-страниц. Не так то просто даже на ардуине реализовать нормальные веб-страницы и множество настроек. Им просто хочется решить какую-нибудь несложную практическую задачу.
    Скажем, управление вентиляцей или освещением. Задание несложного алгоритма работы насоса или полива.

    И вот для этих людей, моя прошивка, возможно подойдет.

    Достоинства моей прошивки: не надо ничего устанавливать на комп. Ни компиляторов, ни сред. Только браузер, который есть у всех.

    Насчет сложности - тоже вопрос спорный. У меня все режимы работы точка доступа, станция, автономный; все IP и SSL - настраиваются с веб-страницы. Написать это на ардуине - не шибко то просто.

    Вот пример - контроллер управления вентиляцией из моей статьи.

    [​IMG]

    Эту схему можно понять практически не зная как оно работает внутри. Достаточно знать, что Input - то сухой-контакт-кнопка, Relay-реле (выход), ну и что такое MQTT.
    Попробуйте то же сделать на ардуине и прикиньте сколько это займет времени. Это даже если вы ее знаете. А если вы вообще не знаете С++ - то вообще задача непростая.

    Вторая категория людей, кому нравится "рисовать программы" - это подростки. Им же хочется покруче и побыстрее. А тут тебе - и с сотового по MQTT управлять можно и состояния датчиков смотреть.

    Да и проще, когда имея под рукой любой ноут-бук можно поправить алгоритм без перепрошивки всего чипа.


    У моей прошивки есть недостатки: она не быстро работает. Не поддерживает кучи датчиков (но это пока). Работает только на ESP-07 (тоже только пока). Заточена только под одну конкретную распиновку - три бинарных входа, три реле, один датчик DHT11/22 или DS1820/22. Ну и АЦП.

    Поэтому, я всего лишь предлагаю свой подход, тем, кому это интересно.

    Если человеку интересно сделать что-то на С++ - его право. Но есть же и LUA и JavaScript на ESP8266. Почему не быть визуальному программированию?:)

    Каждый выбирает сам. Мое дело - донести свои разработки до людей. Если кому интересно - попробуют, покритикуют. Кому не интересно - я не заставляю:)
     
    Grem_line и nikolz нравится это.
  4. nikolz

    nikolz Гуру

    Сообщения:
    4.924
    Симпатии:
    454
    я не против, тем более визуальное программирование - как эпидемия гриппа периодически появляется в различных областях приложения компов
    но за почти полувековое существование так и не дало существенных побегов.
    Появится энтузиаст -сделает , но без постоянной поддержки и разъяснений оно умирает.
    Желаю Вам успехов.
     
  5. shiotiny

    shiotiny Читатель

    Сообщения:
    27
    Симпатии:
    5
    Спасибо.
    Я изначально для себя делал.
    Потом как то заинтересовались знакомые.

    И пошло.

    Там по ссылкам довольно подробная инструкция.

    Ну не взлетит так не взлетит:=)
     
    Grem_line нравится это.
  6. shiotiny

    shiotiny Читатель

    Сообщения:
    27
    Симпатии:
    5
    Вот, добавил на сайт версию онлайн редактора, чтобы можно было поиграться (там нет кнопок связи с устройством - так как без устройства они не работают. В прошивек эти кнопки есть).

    ShIoTiny
     
    nikolz нравится это.
  7. pvvx

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

    Сообщения:
    8.961
    Симпатии:
    1.300
    @shiotiny подскажите пожалуйста, как мне на этом визи-вик нарисовать простую программу:

    Замыкание кнопки на GSM-WiFi модеме/роутере в 01:00 на 5 сек каждый день.

    И более сложную - если нет соединения с AP, то замкнуть кнопку на 5 сек, пробовать соединиться через 30 сек (время загрузки GSM-WiFi роутера). Повторять пока не соединится.
     
  8. pvvx

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

    Сообщения:
    8.961
    Симпатии:
    1.300
    Могу объяснить, зачем это. Для модемов у Мегафона существует такое: Интернет на всё ночью (с 1.00 до 06.59) – безлимитно, но требуется перерегистрация в сети. Без разрыва сессии тарификация трафика остается по дневному стандарту.

    И ещё вижу несоответствия в объяве о “Есть масса народу-самодельшиков, кто НЕ хочет возиться с установкой компиляторов, разбираться с внутренними регистрами и языком С. А тем более с нюансами программирования MQTT и веб-страниц.”

    Вашим же языком: Ведь цели то у людей тоже разные. Но их все объединяет одна задача – надежность работы сети.

    Обеспечить это в городе не составляет особых проблем. В пригороде и регионах в основном это GSM связь. У неё не сверх стабильность, что требует дополнительных решений. Например: местного MQTT с прочими серверами… Т.е. вашему “самодельшику” придется погружаться в глубинные дебри программирования многих устройств на многих языках.

    Что это всё может означать? Что созданная вами система является узкоспециализированной не только по решаемым задачам, но и по региональному использованию.

    На самом деле модули ESP не обладают никакой стабильностью и не годится для простого контроллера полива газона. Исправить это можно, повесив к модулю дополнительный аппаратный WDT. Т.к. у вас предусмотрено исключительно внешнее управление, то и это не решает всей картины стабильности связи с модулем… Тут уже требуется поддержка наличия какой-либо автономности, чего пока нет ...

    Представьте, что у вас есть выключатель света или будильник, но он “нестабилен” – то работает, то нет. Зачем нужно такое устройство?

    Но и тут есть ответ – для “поиграться” и с целями изучить или получить простейшие навыки в программировании. Это и есть основной ареал ESP8266/ESP32. От туда и растут ноги сообщения (https://esp8266.ru/forum/threads/shiotiny-vizualno-programmiruemaja-plata.4532/#post-64790).
     
  9. shiotiny

    shiotiny Читатель

    Сообщения:
    27
    Симпатии:
    5
    В этой версии платы нет часов реального времени. Поэтому в этой версии можно только раз в 24 часа замыкать кнопку, примерно как я нарисовал.

    Я хотел сделать таймер-эмулятор RTC, но как его устанавливать? Откуда время брать?
    Следующая версия наверное с RTC будет.

    Для этого надо будет добавить узел, который показывает есть или нет связь с точкой доступа. Такого узла сейчас нет. Я добавлю и напишу. Спасибо за идею.
     

    Вложения:

    • 24hour5sec.png
      24hour5sec.png
      Размер файла:
      23,3 КБ
      Просмотров:
      2
  10. nikolz

    nikolz Гуру

    Сообщения:
    4.924
    Симпатии:
    454
    полагаю что визуальное программирование - очень подходит для детей даже дошкольников
    Вот уж действительно кто не может изучить СИ но может что-то мастерить .
     
  11. pvvx

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

    Сообщения:
    8.961
    Симпатии:
    1.300
    C NTP сервера.
    Внешняя микросхема RTC хорошо, но это дополнительный костыль. Если к модулю уже добавлен внешний MCU для обеспечения WDT и прочих плюшек, то его часы обычно стабильнее ESP... Но вы взяли за основу ESP-глюк...
    Если на ESP обеспечена достаточная стабильность работы, то его точности счета может вполне хватить. Но беда в его нестабильности - зависаниях от внешних сигналов WiFi с выводом из этого глюка только аппаратным сбросом. Остальное - программные ошибки...
    Да, тогда можно будет написать какое условие...
     
  12. pvvx

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

    Сообщения:
    8.961
    Симпатии:
    1.300
    Для этого есть Arduino с примерами. Большинство просто копирует куски кода как кубики.
    Развитие этой темы - программируемый модуль в вашу систему. В web-свалке был разобран и испытан данный подход и модули названы "оверлеями". Их свойства - они могут быть загружены на исполнение с сети или со встроенного диска. Это кусок программного кода с данными, грузящегося в остаток IRAM. Собирается и транслируется используя карту процедур и данных основной прошивки полученных после её сборки. Устанавливать компиляторы пользователю не требуется - это всё размещается на внешнем Cloud/сервере...
    В итоге с сервера можно скачать во внутренний диск сотни этих оверлеев. Но, из аппаратных ограничений ESP, в одно время может использоваться только один - возможно последовательное исполнение с передачей данных в выделенной RAM области...
    Почему так - такие модули позволяют работать на низком уровне без ограничения встроенными функциями, чего невозможно обеспечить языками типа LUA. Нужен какой-то драйвер внешней микросхемы-датчика - скачал оверлей и он есть.
    Система поддерживающая "оверлеи" имеет преимущество и в коммерческих версиях...
     
  13. shiotiny

    shiotiny Читатель

    Сообщения:
    27
    Симпатии:
    5
    Зачем? Знаю кучу самодельщиков, которые вообще не программисты - пользуются готовыми решениями. А самоделки у них в области металл, садоводства и других "искусств".
    Да и "надёжность работы сети" не обязательно нужна. Ну дойдут данные чуть позже - для многих задач это не критично.

    Да я и не спорю, что область применения ограничена той периферией, что на ней установлена. Но так и большинство задач, что решают на ESP - это померять нару-тройку параметров, проверить несколько условий и кинуть куда-то данные или включить-выключить что-то.

    Какая связь с регионом - не понимаю.

    Так я и не говорю, что мой модуль - супернадёжен или может всё и сразу.

    Ну есть куча "выключателей света" на ESP. и работают как-то. Значит достаточно стабилен для тех применений.

    И это тоже.

    Кстати, вот добавил проверку связи с AP. Прошивку обновил.

    [​IMG]
    [​IMG]

    Вот простейший вариант. При пропадании связи с АР - каждуюу минуту будет включать реле на 5 сек.
     

    Вложения:

  14. shiotiny

    shiotiny Читатель

    Сообщения:
    27
    Симпатии:
    5
    Ну если кому-то хочется ардуину - да за ради бога:) Хоть С++, хоть голый ассемблер.
    Не знаю как там - в коммерческих версиях.
    На ESP с 2-4 мегабайтами можно и такое замутить.

    Но, на самом деле - популярных датчиков всего около пары десятков наверное.
    Обычно: температура, давление, влажность, сухой контакт, иногда - аналоговый сигнал. Реальное время. Пинг сети. Так что довольно широкий класс задач я даже без времени и пинга решу:) Только надёжность под сомнением.
     
  15. pvvx

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

    Сообщения:
    8.961
    Симпатии:
    1.300
    Но он сможет обратиться к соседу/ребенку и тот на айфоне слепит ему нужный модуль/драйвер.
    При наличии оператора.
    Хорошо, спасибо. Жду встроенные часы с NTP :)
     
  16. shiotiny

    shiotiny Читатель

    Сообщения:
    27
    Симпатии:
    5
    Вы думаете, что каждый.. ну хотя бы десятый в состоянии слепить драйвер? Ребенок?
    Нет, есть, конечно и такие дети. Но их очень немного. То, что они сидят за компом - не значит, что они умеют программировать. Для них там есть куда более интересные вещи - игры, соцсети...


    Со встроенными часами сложнее - время ж надо ещё и обрабатывать. И что делать, если нет связи с NTP. Без часов реального времени тяжко.
     
  17. pvvx

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

    Сообщения:
    8.961
    Симпатии:
    1.300
    Вы сами написали опровержение - "соцсети...", данный сайт, ...
    Тут, за историю этого форума, 99% таких. Сюда и обратятся.
    Что делать если нет MQTT. Так вроде стоит вопрос? :)
    Есть MQTT, но нет NTP - парадокс.
    В крайнем случае напишите скрипт в роутере - передать время через MQTT :)
     
  18. shiotiny

    shiotiny Читатель

    Сообщения:
    27
    Симпатии:
    5
    На этом сайте доля процента от доли процентов пользователей соцсетей сидит. Большинство "детей" сроду ни о каком ESP и ардуино не слышали.

    Ничего парадоксального. Есть масса задач, где RTC не нужен.

    Проблема не в том, чтоб к NTP законнектится, а в том как построить обработку времени. Это же не число. А в виде таймстампа - неудобно пользователю.
     
  19. shiotiny

    shiotiny Читатель

    Сообщения:
    27
    Симпатии:
    5
    Вот еще один вариант опредедения пропадания связи. С посощью пинга. Можно пинговать до 8 IP


    [​IMG]
     
  20. pvvx

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

    Сообщения:
    8.961
    Симпатии:
    1.300
    Пользователь у вас смотрит на картинки, где всё отображается через javascript -> до балды в каком формате часы.
    Возможно неудобно вам в ESP, но не javascript-у перевести в любой формат...
     

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