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

Souliss - open source облачная платформа и мобильное приложение

Anydy

New member
Приветствую!
Заинтересовался этим приложением Souliss, кое как получилось залить скетч через ардуинку на ESP тот который в примере....но вот как теперь подключиться к ESP с планшета с установленной Souliss не пойму...
Весь интернет перерыл...по этому вопросу нет ответа....вернее инструкций на русском, я в английском не очень и в программировании новичок
неужели ни кто не связывал этот модуль с этой программой? или есть более лучшие решения? без облаков, только ESP и андроид с защитой...чтобы например открыть ворота в гараже)))
Хотелось бы просто для начала понять как мигать светодиодом с программы souliss на модуле ESP в прямом подключении?
PS. какой то пример souliss для ардуины с сетевым шилдом W5100 заработал....светодиод управлялся! а вот с ESP что то не получается...
У меня дома сеть на статических ИП, но я так понимаю в скетче по ссылке выше ESP работает как DHCP сервер? Пробовал и статику и динамику...программа не соединяется....
Помогите куда копать! или ссылки плиз!
 

smerlin

Member
У меня Souliss заработал на ESP-07 (диод с релюхой висели на GPIO 14)

Вот как делаем:
Скачиваем Souliss и импортируем в ArduinoIDE (Эскиз->Include Library->Add .ZIPLibrary и выбираем скачанный только что файл).
Потом заливаем код в ESP (адрес ESP поставил 192. 168. 1. 34 - типичный адрес для устройства в моей локалке, у вас свой может быть)

// Configure the framework
[HASHTAG]#include[/HASHTAG] "bconf/MCU_ESP8266.h"
[HASHTAG]#include[/HASHTAG] "conf/Gateway.h"
[HASHTAG]#include[/HASHTAG] "conf/IPBroadcast.h"

[HASHTAG]#define[/HASHTAG] WIFICONF_INSKETCH
// ******Настройте ваши имя локальной сети Wi-Fi и пароль*****
[HASHTAG]#define[/HASHTAG] WiFi_SSID "ваш SSID Wi-Fi"
[HASHTAG]#define[/HASHTAG] WiFi_Password "ваш пароль Wi-Fi"

// *****Не забываем скачать последнюю версию библиотеки Souliss и импортировать в Arduino IDE
// Include framework code and libraries
[HASHTAG]#include[/HASHTAG] "WiFiUdp.h"
[HASHTAG]#include[/HASHTAG] "Souliss.h"

// *****Тут как я понял прописывается тип логики светодиода (нагрузки), хотя может и ошибаюсь, я настройку не трогал, так работает
[HASHTAG]#define[/HASHTAG] MYLEDLOGIC 0

// *****Прописываем сетевые настройки в соответствии с настройками вашего роутера
uint8_t ip_address[4] = {192, 168, 1, 34};
uint8_t subnet_mask[4] = {255, 255, 255, 0};
uint8_t ip_gateway[4] = {192, 168, 1, 1};
[HASHTAG]#define[/HASHTAG] Gateway_address 34
[HASHTAG]#define[/HASHTAG] myvNet_address ip_address[3]
[HASHTAG]#define[/HASHTAG] myvNet_subnet 0xFF00
[HASHTAG]#define[/HASHTAG] myvNet_supern Gateway_address

// **** А вот тут номер пина УПРАВЛЯЕМОГО диода или релюхи ****
[HASHTAG]#define[/HASHTAG] OUTPUTPIN 14
//**** А вот тут номер пина КНОПКИ ****
[HASHTAG]#define[/HASHTAG] INPUTPIN 12

void setup()
{
Initialize();

// Устанавливаем параметры сети
Souliss_SetIPAddress(ip_address, subnet_mask, ip_gateway);
SetAsGateway(myvNet_address);

// Define a simple LED light logic
Set_SimpleLight(MYLEDLOGIC);

pinMode(OUTPUTPIN, OUTPUT); // Включаем диод
pinMode(INPUTPIN, INPUT); // Переключаем пин кнопки в состояние ВХОДА

}

void loop()
{
// Здесь начинаем играть
EXECUTEFAST() {
UPDATEFAST();

// Мы обрабатываем логику и соответствующий вход
// и делаем это каждые 50 миллисекунд
FAST_50ms() {
// Управляем диодом в соответствии с командой
LowDigIn(INPUTPIN, Souliss_T1n_ToggleCmd, MYLEDLOGIC);
Logic_SimpleLight(MYLEDLOGIC);
DigOut(OUTPUTPIN, Souliss_T1n_Coil, MYLEDLOGIC);

}

// Здесь реализована обратная связь от управляемого устройства
FAST_GatewayComms();

}
}
Код залили, изучили - пол дела сделали)
Теперь устанавливаем на свой смартфон SoulissApp - есть в Google Market (бесплатное и поддерживает русский язык)
Запускаем и заходим в "Настройки - Сеть - Локальный адрес Souliss" ставим ip-адрес ESP (у меня это был 192.168.1.34)
Затем заходим "Настройки - БД Souliss" и жмем "GetSoulissNodes" - т.е. опрашиваем все наши узлы (а он у нас один) и записываем в базу.
В разделе Функции есть подраздел Ручной режим, там и должен отобразиться наш "Узел 0" и индикатор "в сети" позеленеть.
Готово, можно играться с ВКЛ/ВЫКЛ и ТАЙМЕРОМ.
Замечу что приложение поддерживает голосовое управление. Правда я в него не вдавался...
 
Последнее редактирование:

smerlin

Member
В планах заставить OpenHAB видеть и управлять модулем без использования SoulissApp
 

smerlin

Member
Всё, сегодня воплотил планы: прикрутил модуль ESP под управлением Souliss к серверу OpenHAB без всяких посредников (mqtt-брокеров, http-серверов и т.п.). OpenHAB официально поддерживает Souliss. Теперь управляю с компьютера вкл/выкл диодом, также со смартфона с помощью мобильного приложения OpenHAB или с помощью голосового ассистента ДУСЯ (наш русский ответ Siri - неплохая весч! купил его официально еще когда он стоил 100 руб.). Осталось повесить полезную нагрузку вместо диода и выложу процесс в эту ветку, если интересно кому.
 

Anydy

New member
Спасибо, попробую повторить Ваш пример.
Но вопрос остается открытым ... Как это сделать без роутера, только модуль ESP в режиме АР + Souliss?
Например в гараже модуль с реле, подьезжаешь - телефон уже зацепился к АР, достаточно просто ткнуть кнопку в приложении и ворота открылись .... роутер тут ни к чему.
 

smerlin

Member
Например в гараже модуль с реле, подьезжаешь - телефон уже зацепился к АР, достаточно просто ткнуть кнопку в приложении и ворота открылись .... роутер тут ни к чему.
Совершенно с Вами согласен: для такой задачи он не нужен. Достаточно модуля и приложения на смартфоне SoulissApp для его контроля (в нем даже можно создавать кое-какие сценарии поведения узлов сети). Но я сознательно выбрал в качестве "мозгового центра" OpenHAB, т.к. это дает возможность более гибко настраивать логику поведения узлов, а так же избежать многих ошибок при программировании (возможности отладки на микроконтроллере весьма ограничены, а тут полный функционал). Да и мобильное приложение у OpenHab тоже имеется (правда логика все равно выполняется на сервере).

Для управления двигателем автоматических ворот вижу 2 пути:
1) Собрать устройство, посылающее сигнал на приемник ворот (т.е. собрать пульт под управлением ESP модуля);
2) Собрать устройство, управляющее непосредственно приводом ворот (т.е. модуль ESP должен будет САМ включать привод).
Более правильным, наверное, является 1 вариант, тут не придется лезть внутрь самого привода и его автоматики, но элементная база решения, думаю, будет более обширной и затратной. Во 2-м случае скорее всего элементная база будет дешевле, но придется разобраться в принципах функционирования автоматики привода. Что выбрать - решать вам.
 
Последнее редактирование:

Anydy

New member
Так все же, может Souliss клиентом цепляться к ESP AP?
В качестве ворот в гараже это один из примеров, можно просто электромагнит поставить или моторы открытия дверей от авто, а ворота будут распахиваться с помощью пружин или бытовых доводчиков, закрывать вручную.
Тут важный фактор цена вопроса - ESP + БП + реле +мотор с двери авто =300 -400р.
За такую цену есть смысл сделать управление много какими устройствамми, от лампочки до кормушки животных. Та же WiFi розетка стоит 3-6т.р. За такую цену люди будут по старинке руками включать, а вот за 500р. заинтересуются! Понравится, захочет развивать, вот тогда будем и роутеры ставить и Openhab настраивать и т.д.
Хотелось простое и дешевое решение - софт под андроид и контроллер с реле. У меня не получилось связать Souliss с ESP AP (без роутера).
Есть пример скетча для ESP и приложение андроид, но там только одна кнопка ВКЛ/ВЫКЛ ... по сути то что надо, но придется изучать программирование под андроид)))
 

smerlin

Member
Anydy, может только немного не так как вы себе представляете. Попробую объяснить в 2 предложениях.
Все узлы умного дома на ESP8266, AVR, Arduino и практически на любом микроконтроллере могут быть под управлением Souliss. Вот какие на данный момент поддерживаются. Для ESP8266 программа пишется на Arduino IDE, в которую импортирована библиотека Souliss, заливается в каждый узел, все узлы должны находиться в одной локальной сети на уровне протокола TCP/IP. Затем выстраивается сеть более высокого уровня поверх топологии TCP/IP - сеть Souliss-устройств (узлов), потом выбирается один узел в качестве шлюза (принудительно вами программируется или программируется так, чтобы узлы его сами выбирали). Предусмотрено автоматическое переключение шлюзов (например, если основной отказал или просто выключен, переключиться на запасной). В качестве шлюзов нужно выбирать модули с большей памятью, т.к. там осуществляется сбор инфы ото всех других узлов. Программируется логика (все на ArduinoIDE) и заливается по узлам. Какие функции библиотеки Souliss при этом понадобятся можно посмотреть и изучить здесь. Можно даже заставить один узел выполнять команды удаленно через другой, или запросить данные с датчиков с удаленного узла через первый узел, в общем много чего...
Чтобы вся эта сеть где-то отображалась и как-то контролировалась есть приложение на андроиде SoulissApp, через него и можно открывать ворота, включать лампочки и поливать грядки, а так же программировать сценарии поведения узлов, и никакие роутеры не нужны, если только вы не задумаете созданный вами монстродом подключить к интернету и управлять им из вне (например полить грядки на даче, находясь на работе или в отпуске в Турции, в Египет сейчас не летают....)
 
Так все же, может Souliss клиентом цепляться к ESP AP?
Может:
Код:
    SetAccessPoint();
Далее настраиваете SoulissApp на IP модуля ESP8266 (192.168.4.1). Ну и в программе в ArduinoIDE добавляете нужные вам устройства https://github.com/souliss/souliss/wiki/Typicals

@smerlin а подскажи можно в этом самом souliss`e передавать свои числовые значения? Например, мне нужно из программы на Андроиде установить значение переменной (какого-либо своего параметра) в программе в ESP8266. Соответственно также получать из ESP.
 

smerlin

Member
@smerlin а подскажи можно в этом самом souliss`e передавать свои числовые значения? Например, мне нужно из программы на Андроиде установить значение переменной (какого-либо своего параметра) в программе в ESP8266. Соответственно также получать из ESP.
В этом нет необходимости: Soulis библиотека служит только для связи с узлами, имеющими конкретные физические параметры, и управления ими. Для передачи "своих" данных никто не отменял "обычное" программирование на Arduino IDE и стандартные для него библиотеки для связи с ESP.
 
Ну вот а я уже обрадовался, что нашел удобное приложение на андрюше для управления без необходимости наличия интернета (работа с AP). Ужасть как лень писать свое под Андрюшу и/или АйОС.((
 
Да там 4 параметра входных и 3 выходных типа int (относительно ESP). Далее от них рассчитывается время (период) включения клапана и запускается подпрограмма обработки внешних прерываний с импульсного датчика. Изменение параметров требуется редко, сохраняются в еепром. На данный момент все это работает на ардуино и параметры задаются смартфоном по блютуз через модуль HC-05, но прога написана только для андрюши и не на всех телефонах нормально стыкуется с HC-05. Хотелось бы отвязаться от "голубоглаза", модуля HC-05 и сделать все на одном модуле ESP, благо его аппаратных средств более чем достаточно для моей задачи. Реализацию общения с юзером (интерфейс) я вижу так:
1. Написание приложений для Android и iOS.
2. Вебморда с сервером в ESP.
3. Применения приложений IoT (поддерживающих работу с ESP как с точкой доступа без интернета). Но у них своя специфика и ограничение по "конкретным физическим параметрам". Хотя я может плохо искал и что то нужное все такие существует)

Вроде как 2-й вариант самый простой. Но придется заняться web программированием разве что))
 

smerlin

Member
Ну 3 пункт вряд ли найдете, первые 2 реальны. И я бы начал именно со 2 пункта. Но возможно в Солис тоже есть инструменты, я, честно говоря, не изучал его досконально, просто бегло пробежал. Думаю должен существовать способ в SoulissApp "прикрутить" к узлу дополнительные параметры и считывать/менять их. В крайнем случае можно попробовать написать разработчику Солис, они тоже заинтересованы в развитии своего проекта.
 

jirafff

New member
smerlin, а можно код посмотреть из видео?
Интересует, как реализовано управление выключателем.
 

smerlin

Member
Код стандартный из примера Солиса, я его выложил под спойлером в моём первом сообщении в этой теме. (я его немного отредактировал)
 
Последнее редактирование:
Сверху Снизу