Страница 2 из 16

Virtuino HMI на Андроид

Добавлено: 12.10.2017{, 09:10}
Fuji1604
Блок пользователя, для работы с программой визуализации Virtuino на андроид.
Описание и блокиПоказать
Подключение к андроиду через WiFi или БТ, выбирается соответствующим блоком.
Добавил блоки приема и отправки текста.
Изменил блоки передачи переменных, теперь с блока DV можно сразу получать переменные разных типов.

Входами и выходами virtuino управляет напрямую, переделывать библиотеку не вижу смысла (все переменные программа пересылает в виде integer или float), т.к. придется это делать при каждом обновлении библиотеки. Для передачи сигнала с кнопки или регулятора используйте в программе virtuino виртуальный вывод DV. В программе используйте блок приема DV в котором укажите индекс переменной (сделал отдельным входом, так схема платы становится более читабельной)

Для увеличения количества переменных (по умолчанию их 32 DV и 32 V)необходимо:
1. открыть файл VirtuinoEsp8266_WebServer.h или VirtuinoBluetooth.h библиотеки Virtuino, найти следующие строки:
#define wf_virtualDigitalMemorySize 32 // DV virtual memory size
#define wf_virtualAnalogMemorySize 32 // V virtual memory size
2. Установить необходимое количество переменных, точно такое же количество установить в приложении на андроиде (вкладка "Больше настроек").
3. После этого производить компиляцию проекта.
VIRTUINO.ubl
(980.09 КБ) 626 скачиваний
v2 - разделил блок ESP на блок подключения к вайфай и блок создающий точку доступа
VIRTUINO2.ubl
(1.38 МБ) 679 скачиваний

Блоки для подключения через ESP с прошивкой ESP-LINK

ESP-LINK2

Настройка приложения
СкриншотыПоказать
Безымянный1.jpg
Безымянный.jpg
Безымянный11.jpg
Безымянный11d.jpg
Обсуждение программы на старом сайте

Virtuino

Добавлено: 08.02.2018{, 21:10}
Fuji1604
Скинь проект, завтра на работе гляну

Virtuino HMI на Андроид

Добавлено: 09.02.2018{, 13:55}
dizzyy
так даже с примеров ардуино иде не идет связь..
таки наверное надо прошивать есп , но какая прошивка....
и очень огромным код получается для нано... одна кнопка это больше 50% памяти, а 2 текстовых поля и одна шкала в RemoteXY это 22% , но функционал не сравить... это или все пересаживать на есп12 или одну нано чисто на передачу (я про свой проект, для простенького контроля нано с головой)

Virtuino HMI на Андроид

Добавлено: 10.02.2018{, 23:22}
dizzyy
Fuji1604, поделитесь ссылкой на прошивку есп

Virtuino HMI на Андроид

Добавлено: 11.02.2018{, 07:51}
Fuji1604
Проивку вроде http://remotexy.com/ru/help/esp8266-firmware-update/ здесь брал, в понедельник скажу точно

Отправлено спустя 19 минут :
Прошивал по описанному там методу

Virtuino HMI на Андроид

Добавлено: 11.02.2018{, 15:22}
dizzyy
с NANO+ESP-1 никак..
на другой библиотеке для WEMOS и NodeMCU виртуино нормально проходит соединение..
вот по ESP-1
СпойлерПоказать
Безымянный.JPG
что не так :unsure: :unsure: :unsure:

Virtuino HMI на Андроид

Добавлено: 11.02.2018{, 15:31}
Fuji1604
И все таки, какая скорость есп? На фото 115200, а к нано она у тебя подключена к софтсериал, он нестабильно работает на скорости 115200. Переведи есп на скорость 9600

Отправлено спустя 2 минуты 17 секунд:
Либо подключай есп к нано через хардсериал (пины 0 и 1) и в настройке блока виртуино укажи этот порт

Virtuino HMI на Андроид

Добавлено: 11.02.2018{, 17:31}
dizzyy
Fuji1604 писал(а):
11.02.2018{, 15:34}
И все таки, какая скорость есп?
СпойлерПоказать
virtuino.DEBUG=true; // set this value TRUE to enable the serial monitor status.It is neccesary to get your esp8266 local ip
Serial.begin(9600); // Enable this line only if DEBUG=true

espSerial.begin(9600); // Enable this line if you want to use software serial (Uno, Nano etc.)
//Serial1.begin(115200);
115200 это на мониторе через хардсериал нано (вместо переходника)
простой код передать число
СпойлерПоказать
#include "VirtuinoEsp8266_WebServer.h"

#include <SoftwareSerial.h>

// *************Код для использования SoftwareSerial*****************
SoftwareSerial espSerial= SoftwareSerial(2,3); // arduino RX pin=10 arduino TX pin=11
VirtuinoEsp8266_WebServer virtuino(espSerial); // Скорость Вашего esp8266 устройства, вероятно, в 115200. Поэтому используйте тестовый код, чтобы изменить скорость в бодах на 9600 SoftwareSerial не работает в 115200
// ********************Код для использования HardwareSerial*************************
// VirtuinoEsp8266_WebServer virtuino(Serial1); // Включите эту строку и отключите все линии SoftwareSerial
//Откройте файл VirtuinoESP8266_WebServer.h на virtuino папке библиотеки
//и отключите строку: #define ESP8266_USE_SOFTWARE_SERIAL
int in_124434332_1;
byte Index_124434332_1;
void setup()
{
virtuino.DEBUG=true; // установите TRUE для получения IP адреса платы, и мониторинга
Serial.begin(9600); // Включите эту строку только если DEBUG=true

espSerial.begin(9600); // Включите эту строку, если Вы используете use software serial (Uno, Nano и др.)
//Serial1.begin(115200); // Включите эту строку, если Вы используете hardware serial (Mega, DUE и др.)

virtuino.connectESP8266_toInternet("Wi-Fi","12121212",80); // Параметры подключения ESP8266 к WiFi. Port=80
virtuino.esp8266_setIP(192,168,0,150); // Установить статический IP адрес.

//virtuino.createLocalESP8266_wifiServer("Wi-Fi","12121212",80,2); //Включите эту строку для использования ESP8266 в качестве точки доступа. Port=80
//Не используйте меньше чем восемь знаков для пароля.
//Точка доступа ESP8266 ip=192.168.4.1 по умолчанию.

virtuino.password="1234"; // Установите пароль в свой веб-сервер
//избегайте специальных знаков как ! $ = # % & * в пароле. Использование только числа или текстовые символы


}
void loop()
{




//Плата:1
virtuino.run(); //необходимая команда, чтобы связаться с приложением для Android Виртуино

in_124434332_1 = 256;
Index_124434332_1 = 1;
virtuino.vDigitalMemoryWrite(Index_124434332_1,in_124434332_1);





}

Virtuino HMI на Андроид

Добавлено: 11.02.2018{, 20:29}
dizzyy
может делаю что не так
Rx повесил через делитель, прошивка без проблем , общение с esp-1 через порт без проблем, команды отрабатывает...
а вот через софт и хард сериал ни вкакую..
не передает ат команды ..

вот та часть VirtuinoEsp8266_WebServer.cpp на которой только Server init... отрабатывает
СпойлерПоказать
void VirtuinoEsp8266_WebServer::connectESP8266_toInternet(String wifiNetworkName,String wifiNetworkPassword, int port){
clearESP_buffer(1000);
if (DEBUG) Serial.println( "Server init...");
espSerial->println("AT+GMR");
waitForResponse("OK",1000);

espSerial->println("AT+CWMODE=1"); // configure as client
waitForResponse("OK",1000);

//--- connect
espSerial->print("AT+CWJAP=\"");
espSerial->print(wifiNetworkName);
espSerial->print("\",\"");
espSerial->print(wifiNetworkPassword);
espSerial->println("\"");
waitForResponse("OK",10000);

espSerial->println("AT+CIFSR"); // get ip address
waitForResponse("OK",1000);

espSerial->println("AT+CIPMUX=1"); // configure for multiple connections
waitForResponse("OK",1000);

espSerial->print("AT+CIPSERVER=1,");
espSerial->println(port);
waitForResponse("OK",1000);

Virtuino HMI на Андроид

Добавлено: 12.02.2018{, 07:05}
Fuji1604
dizzyy писал(а):
10.02.2018{, 23:22}
Fuji1604, поделитесь ссылкой на прошивку есп
Вот прошивка моего модуля

Отправлено спустя 5 часов 51 минуту 59 секунд:
Проверил, ЕСП в качестве клиента подключается
#include "VirtuinoEsp8266_WebServer.h"
#include <SoftwareSerial.h>
// *************Код для использования SoftwareSerial*****************
SoftwareSerial espSerial= SoftwareSerial(2,3); // arduino RX pin=2 arduino TX pin=3
VirtuinoEsp8266_WebServer virtuino(espSerial); // Скорость Вашего esp8266 устройства, вероятно 115200. Измените через конфигуратор скорость ESP на 9600 т.к. SoftwareSerial не работает на скорости 115200
// ********************Код для использования HardwareSerial*************************
// VirtuinoEsp8266_WebServer virtuino(Serial1); // Включите эту строку и отключите все линии SoftwareSerial
//Откройте файл VirtuinoESP8266_WebServer.h на virtuino папке библиотеки
//и отключите строку: #define ESP8266_USE_SOFTWARE_SERIAL
byte Index_178293911_1;
bool bool_178293911_1;
byte byte_178293911_1;
int out_178293911_1;
int in_124434332_1;
byte Index_124434332_1;
void setup()
{
virtuino.DEBUG=true; // установите TRUE для получения IP адреса платы, и мониторинга
Serial.begin(115200); // Включите эту строку только если DEBUG=true

espSerial.begin(9600); // Включите эту строку, если Вы используете use software serial (Uno, Nano и др.) Измените через конфигуратор скорость ESP на 9600
//Serial1.begin(115200); // Включите эту строку, если Вы используете hardware serial (Mega, DUE и др.)

virtuino.connectESP8266_toInternet("DIR300","79038188",80); // Параметры подключения ESP8266 к WiFi. Port=80
//virtuino.esp8266_setIP(192,168,0,140); // Установить статический IP адрес, через запятые

//virtuino.createLocalESP8266_wifiServer("DIR300","79038188",80,2); //Включите эту строку для использования ESP8266 в качестве точки доступа. Port=80
//Не используйте меньше чем восемь знаков для пароля.
//Точка доступа ESP8266 ip=192.168.4.1 по умолчанию.

virtuino.password="1234"; // Установите пароль в свой веб-сервер
//избегайте специальных знаков как ! $ = # % & * в пароле. Использование только числа или текстовые символы

}
void loop()
{
//Плата:1
virtuino.run(); //необходимая команда, чтобы связаться с приложением для Android Виртуино

Index_178293911_1 = 0;
bool_178293911_1=virtuino.vDigitalMemoryRead(Index_178293911_1);
byte_178293911_1=virtuino.vDigitalMemoryRead(Index_178293911_1);
out_178293911_1 = virtuino.vDigitalMemoryRead(Index_178293911_1);
in_124434332_1 = out_178293911_1;
Index_124434332_1 = 1;
virtuino.vDigitalMemoryWrite(Index_124434332_1,in_124434332_1);
}
Проверь напряжение после делителя на TX, если на делителе напряжение ниже 3,6в то ЕСП сатанеет и начинает слать в порт ардуины всякий шлак. Когда сделал 3,6в проблемы прекратились.
СпойлерПоказать
настройки есп.jpg
тест есп клиента.flp
(531.5 КБ) 177 скачиваний

Virtuino HMI на Андроид

Добавлено: 26.02.2018{, 00:33}
brig62
Fuji1604 писал(а):
12.02.2018{, 12:57}
ЕСП в качестве клиента подключается
При помощи блока можно подключится в таком режиме? Что за пароль подключения к Virtuino? Где он задается? Или 1234 уже стоит по умолчанию?

Virtuino HMI на Андроид

Добавлено: 26.02.2018{, 07:18}
Fuji1604
Пароль для защиты от несанкционированных подключений в сети, 1234 по умолчанию
Вводится здесьПоказать
Screenshot_2018-02-26-09-15-41-153_com.virtuino_automations.virtuino.png
Для настройки ардуино в качестве клиента выберите блок VIRTUINO ESP, нажмите Редактировать и закоментируйте строки "точки доступа", раскоментируйте строки "вайфай клиента".

Virtuino HMI на Андроид

Добавлено: 26.02.2018{, 08:26}
brig62
Fuji1604 писал(а):
26.02.2018{, 07:18}
закоментируйте строки "точки доступа"
Эти?
СпойлерПоказать
//virtuino.createLocalESP8266_wifiServer(SSID,PASSWORD,80,2); //Включите эту строку для использования ESP8266 в качестве точки доступа. Port=80
//Не используйте меньше чем восемь знаков для пароля.
//Точка доступа ESP8266 ip=192.168.4.1 по умолчанию.
Если да, то они вроде бы и так закоментированы.
Fuji1604 писал(а):
26.02.2018{, 07:18}
раскоментируйте строки "вайфай клиента"
это какие строки? Взгляд падает только на
//virtuino.esp8266_setIP(192,168,0,140); // Установить статический IP адрес, через запятые

Virtuino HMI на Андроид

Добавлено: 26.02.2018{, 09:11}
Fuji1604
У вас все правильно, должен сам подключится к сети, статический ip можно раскоментировать и настроить нужный адресс, так проще искать его в сети

Virtuino HMI на Андроид

Добавлено: 26.02.2018{, 09:36}
brig62
Fuji1604 писал(а):
26.02.2018{, 09:11}
должен сам подключится к сети
Кто? У меня ESP с другой прошивкой. Подключен к домашней сети в качестве клиента. Через сериал порт к нано. Телефон тоже к этой сети подключен. В такой конфигурации Каскада например работает. OPC сервер с компа тоже.
Fuji1604 писал(а):
26.02.2018{, 09:11}
так проще искать его в сети
Кто кого искать должен по IP? Я бы думал, что приложение должно искать ESP в локальной сети. Неужели наоборот? Что то мне не понятно пока. Кто на ком стоял? (c)

Отправлено спустя 22 минуты 10 секунд:
Получается надо указать IP телефона?

Отправлено спустя 2 минуты 5 секунд:
А "Параметры подключения ESP8266 к WiFi" закоментировать, раз он и так уже к сети подключен?

Virtuino HMI на Андроид

Добавлено: 26.02.2018{, 12:21}
Fuji1604
Блок VIRTUINO ESP изначально настроен на подключение к сети WiFi. Ничего менять в нем не нужно, только в параметрах пользователя прописать имя вашей точки доступа и пароль.

Прошивка ESP не должна играть роли, т.к. АТ каманды у всех одинаковы.
brig62 писал(а):
26.02.2018{, 10:00}
Получается надо указать IP телефона?
нет, в телефоне указываешь IP адрес ESP полученный при ее подключении к сети WiFi.

Вы как то уже пробовали подключаться, что в мониторе порта пишет?
Примеры из библиотеки виртуино работают?

Virtuino HMI на Андроид

Добавлено: 26.02.2018{, 12:46}
brig62
Fuji1604 писал(а):
26.02.2018{, 12:21}
Блок VIRTUINO ESP изначально настроен на подключение к сети WiFi. Ничего менять в нем не нужно, только в параметрах пользователя прописать имя вашей точки доступа и пароль.
Не пойму зачем прописывать все это в блок, если пароль и сеть уже прописаны в ESP и он подключен к сети.
СпойлерПоказать
2018-02-26_12-26-48.png
Fuji1604 писал(а):
26.02.2018{, 12:21}
нет, в телефоне указываешь IP адрес ESP полученный при ее подключении к сети WiFi.
Понятно
Fuji1604 писал(а):
26.02.2018{, 12:21}
Вы как то уже пробовали подключаться, что в мониторе порта пишет?
Через монитор порта не подключался. Не владею этим. Подключался через OPC
СпойлерПоказать
2018-02-26_12-32-31.png
Работает стабильно. С планшета Каскадой подключался. Тоже нормально.
Fuji1604 писал(а):
26.02.2018{, 12:21}
Примеры из библиотеки виртуино работают?
Прежде чем что то конкретное пробовать, хочу разобраться с подключением. Что бы быть уверенным в нем. А не гадать, что не работает. Когда разберусь, то попробую светодиодом поморгать. Кстати, это так должно выглядеть?
СпойлерПоказать
2018-02-26_12-45-06.png
2018-02-26_12-45-06.png (2.55 КБ) 2621 просмотр

Virtuino HMI на Андроид

Добавлено: 26.02.2018{, 14:50}
Fuji1604
brig62 писал(а):
26.02.2018{, 12:46}
Не пойму зачем прописывать все это в блок, если пароль и сеть уже прописаны в ESP и он подключен к сети.
Библиотека виртуино расчитана на самостоятельное подключение к сети через есп с помощью АТ команд, как быть в вашем случае я пока не знаю, пробуйте подключится как есть или напишите разработчику виртуино, опишите ваш случай, он подскажет.

Virtuino HMI на Андроид

Добавлено: 26.02.2018{, 16:44}
brig62
Fuji1604 писал(а):
26.02.2018{, 14:50}
пробуйте подключится как есть или напишите разработчику виртуино
Разработчик грек? Выбираю первый вариант. Он (разработчик) вообще что нибудь говорит о версии прошивки ESP? Мне еще два модуля идут из поднебесной. Тот, что в наличии, перепрошивать не планирую. Если к прошивке определенные требования, то лучше подожду. Чем с бубном пляски устраивать.

Virtuino HMI на Андроид

Добавлено: 26.02.2018{, 17:03}
Fuji1604
Да, разработчик грек, пишите ему в почту, отвечает довольно таки быстро, я писал ему на русском.
Отправьте ему свою версию прошивки ESP или ссылку, думаю он поймет суть проблемы.

Virtuino HMI на Андроид

Добавлено: 26.02.2018{, 19:24}
brig62
Что я сделал неправильно?

Код: Выделить всё

#include "VirtuinoEsp8266_WebServer.h"

//#include <SoftwareSerial.h>
// *************Код для использования SoftwareSerial*****************
//SoftwareSerial espSerial=  SoftwareSerial(10,11); // arduino RX pin=10  arduino TX pin=11
//VirtuinoEsp8266_WebServer virtuino(espSerial); // Скорость Вашего esp8266 устройства, вероятно, в 115200. Поэтому используйте тестовый код, чтобы изменить скорость в бодах на 9600 SoftwareSerial не работает в 115200
// ********************Код для использования  HardwareSerial*************************
VirtuinoEsp8266_WebServer virtuino(Serial1); // Включите эту строку и отключите все линии SoftwareSerial
//Откройте файл VirtuinoESP8266_WebServer.h на virtuino папке библиотеки
//и отключите строку: #define ESP8266_USE_SOFTWARE_SERIAL
byte Index_178293911_1;
bool bool_178293911_1;
byte byte_178293911_1;
int out_178293911_1;
void setup()
{
pinMode(13, OUTPUT);

 // virtuino.DEBUG=true;                                            // установите  TRUE для получения IP адреса платы, и мониторинга
  //Serial.begin(9600);                                             // Включите эту строку только если DEBUG=true

 // espSerial.begin(9600);                  // Включите эту строку, если Вы используете use software serial (Uno, Nano и др.)
 Serial1.begin(9600);               // Включите эту строку, если Вы используете hardware serial (Mega, DUE и др.)

 virtuino.connectESP8266_toInternet("Keenetic-7231_Ext","Ybreitywbz",80);  // Параметры подключения ESP8266 к WiFi. Port=80
 //virtuino.esp8266_setIP(192,168,0,140);                                    // Установить статический IP адрес.

//virtuino.createLocalESP8266_wifiServer("Keenetic-7231_Ext","Ybreitywbz",80,2);   //Включите эту строку для использования ESP8266 в качестве точки доступа. Port=80
                                                                                      //Не используйте меньше чем восемь знаков для пароля. 
                                                                                      //Точка доступа ESP8266 ip=192.168.4.1 по умолчанию.
 
  virtuino.password="1234";         // Установите пароль в свой веб-сервер
                                                   //избегайте специальных знаков как ! $ = # % & * в пароле. Использование только числа или текстовые символы


}
void loop()
{




//Плата:1
   virtuino.run();         //необходимая команда, чтобы связаться с приложением для Android Виртуино

Index_178293911_1 = 1;
bool_178293911_1=virtuino.vDigitalMemoryRead(Index_178293911_1);
byte_178293911_1=virtuino.vDigitalMemoryRead(Index_178293911_1);
out_178293911_1 = virtuino.vDigitalMemoryRead(Index_178293911_1);
digitalWrite(13, bool_178293911_1);




}
Компиляция останавливается с ошибкой на строке
Serial1.begin(9600); // Включите эту строку, если Вы используете hardware serial (Mega, DUE и др.)