• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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

shiotiny

New member
Разработал прошивку для ESP8266 (модуль ESP-07)

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

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

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

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

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

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

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

shiotiny/ShIoTinyBin

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

Главная

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

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

shiotiny@yandex.ru
 

nikolz

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

shiotiny

New member
Если чел не знает ничего , то у него есть выбор - изучать вашу уникальную систему кубиков или изучить широко применяемую систему ардуина.
Сравнительная сложно примерно одинаковая
Я НЕ считаю свою прошивку "самой-самой лучшей".

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

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

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

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

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

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

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

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



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

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

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


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

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

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

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

nikolz

Well-known member
я не против, тем более визуальное программирование - как эпидемия гриппа периодически появляется в различных областях приложения компов
но за почти полувековое существование так и не дало существенных побегов.
Появится энтузиаст -сделает , но без постоянной поддержки и разъяснений оно умирает.
Желаю Вам успехов.
 

shiotiny

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

И пошло.

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

Ну не взлетит так не взлетит:=)
 

shiotiny

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

ShIoTiny
 

pvvx

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

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

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

pvvx

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

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

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

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

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

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

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

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

shiotiny

New member
Замыкание кнопки на GSM-WiFi модеме/роутере в 01:00 на 5 сек каждый день.
В этой версии платы нет часов реального времени. Поэтому в этой версии можно только раз в 24 часа замыкать кнопку, примерно как я нарисовал.

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

И более сложную - если нет соединения с AP, то замкнуть кнопку на 5 сек, пробовать соединиться через 30 сек (время загрузки GSM-WiFi роутера). Повторять пока не соединится.
Для этого надо будет добавить узел, который показывает есть или нет связь с точкой доступа. Такого узла сейчас нет. Я добавлю и напишу. Спасибо за идею.
 

Вложения

nikolz

Well-known member
полагаю что визуальное программирование - очень подходит для детей даже дошкольников
Вот уж действительно кто не может изучить СИ но может что-то мастерить .
 

pvvx

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

pvvx

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

shiotiny

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

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

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

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

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

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

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

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

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




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

Вложения

shiotiny

New member
Для этого есть Arduino с примерами. Большинство просто копирует куски кода как кубики.
Ну если кому-то хочется ардуину - да за ради бога:) Хоть С++, хоть голый ассемблер.
Система поддерживающая "оверлеи" имеет преимущество и в коммерческих версиях...
Не знаю как там - в коммерческих версиях.
На ESP с 2-4 мегабайтами можно и такое замутить.

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

pvvx

Активный участник сообщества
Зачем? Знаю кучу самодельщиков, которые вообще не программисты - пользуются готовыми решениями. А самоделки у них в области металл, садоводства и других "искусств".
Но он сможет обратиться к соседу/ребенку и тот на айфоне слепит ему нужный модуль/драйвер.
Ну есть куча "выключателей света" на ESP. и работают как-то. Значит достаточно стабилен для тех применений.
При наличии оператора.
Кстати, вот добавил проверку связи с AP. Прошивку обновил.
Хорошо, спасибо. Жду встроенные часы с NTP :)
 

shiotiny

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


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

pvvx

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

shiotiny

New member
Вы сами написали опровержение - "соцсети...", данный сайт, ...
Тут, за историю этого форума, 99% таких. Сюда и обратятся.
На этом сайте доля процента от доли процентов пользователей соцсетей сидит. Большинство "детей" сроду ни о каком ESP и ардуино не слышали.

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

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

shiotiny

New member
Вот еще один вариант опредедения пропадания связи. С посощью пинга. Можно пинговать до 8 IP


 

pvvx

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