Перейти к содержимому

Open

Фотография
* * * * - 3 Голосов

SmartTank (OpenSource проект)


Лучший Ответ balabollng , 09 Февраль 2019 - 10:34

Чуть было время на море, и... случайно, случился новый релиз - http://ds1.tinyled.r...09-beta/smt.zip

Был ряд багов, которые поправлены:
1. Добавлена работа с RTC + NTP;
2. Пофикшены найденые баги с приложением Lucerna.

В опытной эксплуатации уже несколько дней. Все стабильно.

В архиве также найдете файл pins.png там описание за что отвечает каждый пин. 

 

Чуть позже будет видео по прошивке. И ряд видео по разработке под контроллер. Сразу скажу, что есть очень солидный базис для создания универсальных приложений для различного типа IoT устройств. Как пример этого, устанавливаемые приложения можно будет конфигурировать по использованию железа. Можно будет установить НЕСКОЛЬКО приложений на одном устройстве, которые будут реализовывать разные функции. Например, вы захотите из одного контроллера сделать и контроллер света и дозатор. Дозатор и автодилив и т.д. При этом, знать нужно будет только JavaScript. 

 

Использование:

1. Распаковываете архив;

2. Появятся две папки: leds; smtflasher; apps;

3. Включаете контроллер в USB и находите на какой COM порт он подключился;

4. Запускаете "flashing.bat" из папки "smtflasher", вводите нужный COM порт. Ждете завершения прошивки. Если что-то пошло не так, нужно прочитать что и устранить проблему. Попробовать еще раз. 

5. ВНИМАНИЕ: если вы уже прошивали контроллер чем-то, то сначала лучше всего его полностью очистить. Для этого запустите "erase.bat". Так же выберите нужный COM порт и после этого выполните п.4

6. После прошивки, желательно перезагрузить контроллер. 

7. Появится WiFi сеть wf_test это сеть прошивки. Пароль 12345678

8. После подключения к контроллеру запустите Chrome и введите в адресной строке http://192.168.4.1 должна открыться страница прошивки. Поздравляю, вы установили платформу "SmartTank" на контроллер!

9. Теперь следует установить приложение "Lucerna". Для этого зайдите в раздел "Настройки". Найдите подраздел "Приложение" и установите пакет "lucerna.smt" который находится в папке "apps". 

8. После установки приложения, его требуется настроить. Для этого укажите количество каналов в вашем светильнике, в подразделе "Освещение" раздела "Настройки". Выбрав количество каналов, кликнете на каждом из них и выберите спектр диодов установленного на данном канале. Вы можете воспользоваться имеющимися профилями из папки "leds".

9. После того как вы сконфигурировали приложение, сохраните настройки. Теперь им можно пользоваться. Для этого зайдите в пункт меню "Рабочий стол".

10. Настройте график освещения так, как считаете нужным используя видео, которые размещены в этом топике. Сохраните график. Контроллер тут же начнет его исполнять.

Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 335

#1 balabollng

balabollng

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 5 094

Отправлено 03 Февраль 2018 - 23:06

Друзья,

я долго рассуждал, стоит ли OpenSource проект "выделки". Решил, что - да. За то время, которое я присутствовал на форуме, я отметил, что появляется народ, который хотел бы что-то добавить в имеющиеся решения. Чем-то они их не устраивали. Но т. к. все проекты закрыты, все это приводит к дублированию функционала, а не к его развитию (пожалуй исключением является контроллер Олега). В итоге, зачастую, народ что-то начинает, но не завершает, просто потому, что сложно одному покрыть такой пласт задач. Т. с. баркас разбивается о быт...

В общем, проект начинается с простых тезисов:
1. Все наработки общедоступны;
2. Любой может использовать код в некоммерческих целях при условии ссылки на тему;
3. Любой может участвовать в развитии проекта. Для этого делаются pull-реквесты в проект;
4. Участники проекта, т.е. те кто реально создал код для данного проекта, может использовать собственный код (только свой) в собственных коммерческих решениях. Данный пункт направлен на развитие интеграции с уже существующими решениями и мотивации участия профессиональных разработчиков в проекте.

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

Первой задачей ставится создание контроллера света на базе ESP32.

Репозитории:

https://github.com/rpiontik/athom_web - Проект WEB-интерфейса. Для сборки требует NodeJS, NPM. Используется VUE, Vuetify

Актуальная WEB-страница прошивки Прикрепленный файл  platform.html   676,86К   149 скачиваний

Полезное видео на русском о контроллере ESP32 -

https://www.youtube....h?v=A7JXQJ8DSQY

 

Alpha версия прошивки

 

Первое приложение Lucerna 1.0 (управление светом)

 

P.S. Вполне возможно, что позже данный проект разовьется в экосистему, где лидерами по другим направлениям будет другие люди. Это совершенно нормально. Я обещаю, что любой активный (создавший свои форк) форумчанин сможет развивать свое направление независимо. Это неотъемлемая часть проекта. С одним условием - все остается в этой теме. За исключением решения принятого администрацией форума.


  • Nazguluz, sartin и serpantins это нравится

#2 serpantins

serpantins

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 1 203
  • Меня зовут:aleks
  • Откуда:Москва

Отправлено 04 Февраль 2018 - 09:54

Роман, доброго времени суток. 

"Первой задачей ставится создание контроллера света на базе ESP32." - Роман, главное, что бы контроллер мог работать и настраиваться в автономном режиме без всяких "облаков".... корректно работать с термодатчиками.... и https бы таки нужен.

По скольку давно "сижу" на есп 8266 с софтом , написанным Василием, то по функционалу там все здорово, единственное что не хватает калькулятора спектра\ цветовой температуры. 

Есть скрипты, снятые с аи гидра 52, могу скинуть.



#3 balabollng

balabollng

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 5 094

Отправлено 04 Февраль 2018 - 10:19

Я предполагаю сюда перебазировать лучшее по опыту. 

 

Облако будет как опция. Собственное. Специально для данного проекта. Некоммерческое. Т.е. контроллер работать будет без Интернет.

 

Главное фишкой, которая будет реализована в этом контроллере будет возможность создавать WEB-приложения с внятной концепцией. Устанавливаться они смогут как напрямую на контроллер, так и через репозиторий приложений. 

 

Т.е. любые мульки можно будет доустанавливать безпроблемно.

 

https для ESP32 вполне по силам. Поэтому он будет.

 

Все, что вы считаете полезным - кидайте. Повторюсь, проект этот не мой, а наш. Просто я его начал.


  • serpantins это нравится

#4 balabollng

balabollng

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 5 094

Отправлено 04 Февраль 2018 - 12:44

Это означает, что коммерсант не может брать деньги за установку прошивки. Т.е. должен это делать бесплатно. Т.е. если его продукт стоит Х, он не может увеличить его стоимость из-за того, что туда установлена прошивка из этого проекта. Т.е. продукт должен остаться по стоимости Х. Он также не может брать деньги за поддержку или включать эти деньги в стоимость продукта. Т. к. ему достаточно выгоды от того, что он может ставить эту прошивку нахаляву в свои изделия. Т.е. повторюсь, поддержку клиента он должен осуществлять сам. Бесплатно. 

 

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

 

 

Абсолютно бесполезное начинание.

 

К счастью, ни одно ваше предсказание не сбылось. Надеюсь и это не сбудется. Очень надеюсь, что удастся создать общедоступную платформу, которая двинет развитие автоматики в МА. Если в этом мешают личные амбиции, предлагаю просто держать их при себе. Не лить грязью на то, что хочется сделать чистым. 


  • Шкет, lexx8691 и sartin это нравится

#5 lexx8691

lexx8691

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 5 520
  • Меня зовут:Алексей
  • Откуда:Новосибирская обл. р. п. Чаны.

Отправлено 04 Февраль 2018 - 13:00

Ну так то да. Только это дело совести каждого. Я иногда ставлю прошивку Василия, но еще до этого имел с ним беседу и получил на это разрешение.  Просто некоторые хотят именно ее и если правообладатель не против то почему нет? Все равно железо одно и то же и соответственно стоимость в светильнике учтена именно железа. 

 

Дима, мое дело указать условия. Если для тебя нормой считается вести себя неприлично, это твое дело. Мне безразлично. И бегать я за тобой не буду пытаясь образумить.

 

Доверие. Такое простое слово - доверие. На иное просто нет времени. 

Тут такое дело, одно сделал пару светильников и продал, другое дело 20-200 штук, все равно все вылезет наружу, сообщество моряков тесно общается ;) И будет ну очень неудобно. Верно?


  • balabollng это нравится

#6 balabollng

balabollng

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 5 094

Отправлено 05 Февраль 2018 - 10:09

Значит делать буду. Просто делать. Просто делать мир лучше. 


  • Haskycoral и Сергей М это нравится

#7 Gum

Gum

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 297

Отправлено 05 Февраль 2018 - 10:55

А можно немного более о проекте? Какой язык разработки? Написано ли уже хоть что то? Чем эта прошивка будет отличаться от подобных на esp8266, например от тинилед?

Главное фишкой, которая будет реализована в этом контроллере будет возможность создавать WEB-приложения с внятной концепцией. Устанавливаться они смогут как напрямую на контроллер, так и через репозиторий приложений. 

А можно чуть подробнее, что значит веб-приложения. Вы собираетесь писать репозиторий приложений?


  • balabollng это нравится

#8 balabollng

balabollng

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 5 094

Отправлено 05 Февраль 2018 - 11:01

Привет! Отличаться всем. Ничего общего. О стеке технологий чуть позже напишу. В дороге сейчас.

#9 Sleepy

Sleepy

    Продвинутый пользователь

  • Администраторы
  • Cообщений: 12 507
  • Меня зовут:Николай
  • Откуда:Москва

Отправлено 05 Февраль 2018 - 11:24

Тема зачищена. Прошу прекратить обсуждать личность, мотивы, коммерцию и т.д.  Оставляем только обсуждение технической составляющей.


С Уважением, Николай.

Я не отвечаю на "аквариумные" вопросы в личке. Пишите на форум, пожалуйста.


#10 balabollng

balabollng

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 5 094

Отправлено 05 Февраль 2018 - 13:37

В общем суть такая:

1. Платформа будет делиться на три уровня входжения:

1.1. Системный разработчик. Стек: C, Eclipse работа со скриптами сборки. Все материалы по развертыванию тут - https://esp-idf.read....io/en/latest/;

1.2. JavaScript (WEB) разработчик. Он же прикладник. Стек: Собственно JavaScript, HTML, CSS, VUE, Webpack ;

1.3. Пользователь/тестеровщик. Просто использует прошивку подготовленную сообществом.

 

Разработка прошивки ведется на С под Linux. Как установить все необходимое, можно узнать тут - https://esp-idf.read...inux-setup.html. Как настроить Eclipse можно узнать тут - https://esp-idf.readthedocs.io/en/v2.0/eclipse-setup.html

 

В качестве WEB сервера используется mongoose - https://github.com/cesanta/mongoose. Для скриптов исполняющихся на контроллере будет иcпользоваться V7 (JavaScript) - https://github.com/cesanta/v7

 

Концепция такова, что контроллер будет иметь собственную роль. Например контроллер света. И для этой роли реализовывать API REST, который будет документирован. Т.е. обращаясь к контроллеру через HTTP можно будет его конфигурировать без посредников. Без обаков и т.д. Например можно сделать приложение для PC которое будет его конфигурировать. Или Android приложение.

 

У контроллера будет собственный WEB сервер, на который можно будет поставить приложения. Приложения можно будет найти в репозитории приложений. В этом случае, пользователь зайдет на контроллер через браузер, он отдаст приложение как WEB страницу. И уже WEB приложение используя REST API будет конфигурировать контроллер.

 

У приложения будет несколько уровней исполнения кода:

1. Terminal - web-страница, открывающаяся на контроллере;

2. Standalone script - JavaScript который будет выполняться контроллером при наступлении неких событий;

3. Server script - скрипт который будет выполняться на сервере проекта;

4. WEB application - приложение доступное из WEB.

 

Все четыре уровня будут связаны единой шиной событий. Это значит, что событие сгенерированное на любой уровне может получить любой иной уровень. В режиме приближенном к online. Таким образом будет создаваться экосистема устройств. 

 

Вот как-то так. 



#11 Gum

Gum

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 297

Отправлено 05 Февраль 2018 - 14:25

Т.е.Web-приложение это htm-страничка с JS.

Т.е. обращаясь к контроллеру через HTTP можно будет его конфигурировать без посредников

Как Slac16?

1. Terminal - web-страница, открывающаяся на контроллере;

Т.е. как в SLAC16.

2. Standalone script - JavaScript который будет выполняться контроллером при наступлении неких событий;

Вы хотите чтобы ESP32 мог сам интерпретировать JS?

3. Server script - скрипт который будет выполняться на сервере проекта;

Т.е. выполняться на вашем сервере в интернете? А зачем это? Можете привести практический пример?

4. WEB application - приложение доступное из WEB.

Это как у тинилед?


  • bbasil это нравится

#12 balabollng

balabollng

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 5 094

Отправлено 05 Февраль 2018 - 14:44

1. Как fullrest application.
2. Как везде;
3. Да;
4. Нет. Там такого нет.

#13 balabollng

balabollng

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 5 094

Отправлено 05 Февраль 2018 - 15:30

Ну или mjs - https://github.com/cesanta/mjs

 

Будем пробовать. 



#14 serpantins

serpantins

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 1 203
  • Меня зовут:aleks
  • Откуда:Москва

Отправлено 05 Февраль 2018 - 15:57

 

Т.е. выполняться на вашем сервере в интернете? А зачем это? Можете привести практический пример?

 

А как же тогда будет работать тотальный контроль по сбору статистики ;)  и в случае ай яй яй - отрубить устройство, к примеру....что то на автономное устройство уже не похоже



#15 serpantins

serpantins

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 1 203
  • Меня зовут:aleks
  • Откуда:Москва

Отправлено 05 Февраль 2018 - 16:01

Как мне кажется, задумка по аналогии с бесплатными, ну как пример,  php движками.....а "вкусняшки" и прочее, скорее всего будут в отдельном коммерческом исполнении за таньгу

Задумка хорошая, но понравится ли она в конечном варианте конечному потребителю.... время покажет

 

Роман, что то еще по мимо есп32 будет из железа в связке или только есп?

П. с. если проект будет реально бескорыстный и в первую очередь для обычных моряков, то, готов буду поделиться своими наработками по лед сборкам (бюджетным вариантом), драйверам.... но только в совокупности с этим проектом... повторюсь, как проекты Василия! 



#16 balabollng

balabollng

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 5 094

Отправлено 05 Февраль 2018 - 16:30

А как же тогда будет работать тотальный контроль по сбору статистики ;)  и в случае ай яй яй - отрубить устройство, к примеру....что то на автономное устройство уже не похоже

 

Боюсь, что пояснения тут вызовут массу демагогии. Просто не нужной на текущий момент. Просто потому, что до этой стадии еще нужно дойти. 

 

Что же касается частностей, то в итоге будет виртульный аквакомпьютер. Можно будет управлять всеми устройствами из одной точки. Если это нужно будет. В который раз повторюсь.

 

Коммерческой версии не будет. Повторяю еще раз. Надеюсь крайний. Вообще. Никак. Это исключительно некоммерческий проект. Полностью.

 

Еще раз объясняю. Не понимаю, что тут не ясного, но еще раз - весь проект в сырцах. Что еще не понятно? Какие там манипуляции возможны? Что за глупости? Не верите в "чистоту"? Форкаетесь от проекта и делаете свою ветку. На любом уровне автономности. Я пилю то, что мне интересно и является пиком доступной технологии на моем текущем уровне знаний. Это мой мотиватор. 


  • DrJohnZoidberg это нравится

#17 balabollng

balabollng

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 5 094

Отправлено 05 Февраль 2018 - 16:37

Ну что ж... mJS прекрасно взлетело. На нем и остановлюсь :) 



#18 balabollng

balabollng

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 5 094

Отправлено 06 Февраль 2018 - 12:13

Ну что ж. Созрела следующая концепция.

 

Будет несколько уровней:

1. Системный;

2. Приложения;

3. Шина;

4. Облако.

 

Пока остановлюсь на первых двух.

 

На системном уровне прошивка будет сообщать конфигурацию устройства через API метод - /config/json Тут будет в JSON возвращаться конфигураци железки с информацией о настройках, установленных приложениях и доступной аппаратной периферии. А также, о тех приложениях, которые эту периферию уже используют. 

 

Приложение будет иметь манифест - manifest.json В этом файле для приложения будут описывать требуемые ресурсы для его работы. При установке пользователю как в Android будет сообщаться какими ресурсами приложение хочет воспользоваться. Пользователь будет соглашаться с этим или нет. 

 

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

 

Использованием Интернет также будет запрашиваться. Т.е. уровень безопасности тут будет отличным. 

 

Что касается паролей. Пароли отдаваться через API не будут. Установить их можно будет, а вот получить - нет. Таким образом, можно будет гарантированно избежать их получения сторонними приложениями. Установка нового пароля, для пущей надежности, будет производиться через старый. Таким образом и сменить стороннему приложению пароль без ведома пользователя не удасться. 

 

Т.е. и тут вопросы с безопасностью будут сняты.

 

Ну и последний рубеж - трафик. Тут все красиво - ssl.


  • serpantins это нравится

#19 avfv

avfv

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 240
  • Меня зовут:Андрей
  • Откуда:Санкт-Петербург

Отправлено 06 Февраль 2018 - 15:16

Здравствуйте, Роман. Интересная концепция, но конечно хотелось бы описания уровней 3 и 4. Как именно скрипт получит доступ к периферии соседних контроллеров? Нужен будет некий центральный хаб/облако, куда все подключаются через wifi+ssl ?



#20 balabollng

balabollng

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 5 094

Отправлено 06 Февраль 2018 - 16:15

Не думаю, что облако будет обязательным. Пока такую формулировку оставлю. 

 

Хочется сделать шину на уровне локальной сети тоже. В частности по широковещательному UDP. 

 

К перефирии других устройств доступа не будет. В шину можно будет "кинуть" событие. Это событие услышит другое устройство, если оно подписано на него, и выполнит логику завязанную на событие. При необходимости, в обратную сторону пошлет подтверждение. 

 

Простой пример. Есть датчик температуры. Он ее замеряет и шлет раз в секунду в шину меседж с данными о ней. Неопределенное количество других устройств может слушать шину и например показывать замерянные значения. Или предпринимать какие-то действия. Например экранчик показывать.

 

Подчеркиваю, что не замещение хардварной связи устройств. Это расширение. Новый уровень взаимодейсвтия. 






Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Ветка управляется: