• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Делюсь опытом Загружаем прошивку 'Sputnik' и ESP уже в Интернете

edgi

Member
Хотелось бы видеть на первой странице пересечение что умеет данная прошивка какие функции есть и т.д. а не как прошивать и что такое IDE.
 

view24

Member
По просьбе Дмитрия из Сочи, специалиста по Дракону привожу пример виртуального объекта, общение с которым через облако bortx осуществляется. Любители "класть" сервера уже потирают руки. Объект на JS состряпан. Прозрачен до предела, работает без видимых задержек. А идея простая - работа через get запросы, но через два порта. Один порт принимает отчет о работе объекта, другой порт для прослушивания команд через long polling. Лично попробовал с частотой запроса 10 гц работать. Работает! Итак объект по адресу http://bortx.ru/test.htm текст ниже, а проверить мешает ли издевательство над сервером пилотному проекту под web камерой - это на сайте http://bortx.ru вкладка ВИДЕО.

Код:
<html>
<!-- Пример обращения к облачному серверу bortx. С точки зрения объекта -
(данный тест)  работа идет по двум портам.

Порт 6110 для отправки данных с объекта на панель.
Один раз отправляет строку с форматом, показывая какие переменный надо
задействовать в панели. Строка запроса должна например содержать:
?id=test;format=count,activ,reset;

Далее, шлются данные через запятую, раз в сек, раз в минуту, с нужной частотой,
но с учетом того, что хранятся последние 10000 точек.
?id=test1data=1,0,0;
?id=test1data=2,1,0;
и т.д.

Порт 6010 для отправки данных с панели на объект
в режиме long polling
шлем запрос на порт 6010
?id=test1

Затем ждем callback события прихода данных например в формате:
command=on;var=activ;

Если на панели ничего не нажато, то через минуту приходит ping
ping=;

т.е. связь не потеряна, а если пинг не приходит, надо организовать новый get запрос,
но это в примере не показано.

Для теста только 3 id можно задействовать test1,test2,test3

-->                                         
                       


count:<input id='count'><br>
<script LANGUAGE="JavaScript" SRC="http://bortx.ru/ajax.js"></script>
<script>
id="test1";
document.write("id="+id+"<br>");
document.write("<a target=_blank href='http://bortx.ru/"+id+"'>To dashboard </a><br>");
count=0;
activ=1;
send_data("id="+id+";format=count,activ,reset;");//
timer=setInterval("cycle();",1000);
send_and_wait(); // запускаем long polling

/////////////////////////////////////////////////////
function send_data(x){         // послать серверу формат и данные и не ждать
$.ajax({
url: 'http://bortx.ru:6110/?to6110='+x,
success: function(data) {}});
}; // end send_comm

//////////////////////////////////////////////////////
function send_and_wait(){         // Послать запрос и ждать ответа 

$.ajax({
  url: 'http://bortx.ru:6010/?to6010=id='+id+';device=test;',

success: function(data) {
//alert(data);
mes_proc(data);
send_and_wait();
            },
        
error: function (status) {
alert("send_loop - error:"+status);
send_and_wait();
                             }                 
    });
}; // end send_and_wait

/////////////////////////////////////
function mes_proc(mes){ // обработка команды
//alert (mes);
if (mes.indexOf('activ')>-1 && mes.indexOf('=off') >-1) {activ=0;};
if (mes.indexOf('activ')>-1 && mes.indexOf('=on') >-1) {activ=1;};
if (mes.indexOf('reset')>-1) {count=0;};
                               };

/////////////////////////////////////
function cycle(){ // в цикле setInterval
count=count+activ;
send_data('id='+id+';data='+count+','+activ+',1;');
document.getElementById('count').value=count;
                               };


</script>
 

view24

Member
Про Дмитрия из Сочи несправедливо не отметил, что кроме языка Дракон он еще и специалист по роботам и по SFC (Sequential Function Chart), знание о существование которого уже вызывает у меня бесконечное уважение.
 

alex286

New member
view24, Прекрасный проект! И именно для тех, кто "не в теме"! Не обращайте внимания на брюзжание...

Кстати ни одного вопроса по СУЩЕСТВУ проекта. Пока идут разговоры , что "такое уже есть".. И что? Это все, что вы можете спросить?
Я например спрошу, про то, что меня интересует в преддверии дачного лета, проект "автоматическая теплица для приусадебного хозяйства"..
Даже готов стать тестером такого проекта.. :)

P.S. Сейчас пробую использовать возможности проекта WiFi-IoT Firmware Builder :: Main , но пока получается слабо.
 

view24

Member
view24, Прекрасный проект! И именно для тех, кто "не в теме"! Не обращайте внимания на брюзжание...

Кстати ни одного вопроса по СУЩЕСТВУ проекта. Пока идут разговоры , что "такое уже есть".. И что? Это все, что вы можете спросить?
Я например спрошу, про то, что меня интересует в преддверии дачного лета, проект "автоматическая теплица для приусадебного хозяйства"..
Даже готов стать тестером такого проекта.. :)

P.S. Сейчас пробую использовать возможности проекта WiFi-IoT Firmware Builder :: Main , но пока получается слабо.
Спасибо. Пробуйте. Все поддерживается. Я на связи.
 

miasoft

New member
Рассчитываю поставить рекорд по скорости освоения ESP8266 nodemcu. Товарищу чайнику, знающему TTL 5v, хотелось бы чем-нибудь поуправлять на расстоянии через интернет. Простое решение - берем nodemcu, прошивку sputnik.bin, прошивальшик - Flasher для Windows, usb-кабель.


Прошиваем, перезагружаем и работаем.



Прошивка и описание на сайте BortX
 

miasoft

New member
Отличная работа!
Можно более подробное описание:
1) Панель управления - d0,d1,d2,d3 LED - нормально защелкиваются и отщелкиваются, а остальные либо не защелк или защелкиваются, но потом не переключаются. Какой-то другой режим? Не ясно.
2) Более подробное описание функциональных кнопок на панели.
3) Как использовать термистор (NTC 10K)? Возможно? И если ДА, то куда прописать коэффициенты?
 

view24

Member
Отличная работа!
Можно более подробное описание:
1) Панель управления - d0,d1,d2,d3 LED - нормально защелкиваются и отщелкиваются, а остальные либо не защелк или защелкиваются, но потом не переключаются. Какой-то другой режим? Не ясно.
2) Более подробное описание функциональных кнопок на панели.
3) Как использовать термистор (NTC 10K)? Возможно? И если ДА, то куда прописать коэффициенты?
Спасибо за внимание. Отвечаю:
1) В текущей версии прошивки sputnik D0....D4 - управляющие выводы, D5-D8 считывают информацию. Поэтому кнопки D5-D8 не стоит нажимать, они отражают только уровень на них присутствующий.
2) Ответил на сайте http://bortx.ru . Часть кнопок - это Ваши переменные, Кнопки внизу - перемещение во времени, кнопки справа масштабирование уровней значений переменных. Вспоминаем осциллограф.
3)Подать напряжение от схемы термистора на A0. Как осуществить преобразование 0-1024 в температуру сегодня появилось на сайте после проявленного Вами интереса, что бывает не то, чтобы редко, а вообще - нет этого интереса. :)
Задавайте вопросы, отвечу.
 

miasoft

New member
По умолчанию переменные названы A0 написал(а):
почему-то упорно не переименовывается A0=Ua0
Надо ли после каждого изменения конфигурации нажимать RESTART?

можно задать линейное преобразование для A0, указав коэффициенты для формулы y=k*x+b
да, для термистора это работает, но только в узком диапазоне. Я имел ввиду коэффициенты для уравнения Стэйнхарта. Термистор привлекателен своей ценой - 5 руб за штуку!

Тайм-аут = 90 сек и после этого перезагрузка - не слишком ли мало? Можно ли сделать настраиваемым этот параметр?
 

view24

Member
A0=что-то; - точка с запятой необходима. Рестарт необходим, чтобы это все сервере переписалось.
Для А0 предусмотрено только линейное преобразование.
Насчет тайм-аута, пинг происходит автоматически, если от сервера не прошло подряд два пинга c интервалом в минуту, то перезагрузка. Насчет указания параметров пинга и тайм-аута - эта идея мне нравиться, ибо на http://bortx.ru/bx101 и http://bortx.ru/bx102 как можно заметить по маркеру перезагрузки не редкость. Правда, эти объекты за proxy Squid находятся.
 

miasoft

New member
@view24,
что-то сегодня нет связи с "облачным сервером":
Creating AP:<:bx5882>
HTTP server started
ssid:my*********
password:my********

Connecting to ROUTER:<my******><my****>
----- >C O N T R O L< :2 TimeOut:2
.... ----- >C O N T R O L< :3 TimeOut:3
.......... ----- >C O N T R O L< :4 TimeOut:4
........ ----- >C O N T R O L< :5 TimeOut:5
.... ----- >C O N T R O L< :6 TimeOut:6
.......... ----- >C O N T R O L< :7 TimeOut:7
......
WiFi connected
IP address:
192.168.10.103
bortx.ru/6010 connection failed
----- >C O N T R O L< :14 TimeOut:14
bortx.ru/6110 connection failed
url=http://bortx.ru:6110?
id=bx5882;format=Tmp,D0,D1,D2,D3,LED,D5,D6,Svet,D8,T_scan,Marker;;data=22.85,0,0,0,0,0,1,0,0,0,2,1021,0;;device=esp;pass=;
2
21234
t_stop_scan:22000bortx.ru/6010 connection failed
это только у меня? Я ничего не менял...
 

miasoft

New member
Все нормально у Вас. Информация идет.
да. сейчас идёт, вижу. Но сейчас я работаю через проводной ИНЕТ. Ошибки по тайм-ауту были при работе через 3G модем. Но (!) день назад и через 3G-modem(TELE2) всё нормально работало. Вывод - есть зависимость от провайдера(качество связи и т.д.), может надо как-то
дать возможность доп. настройки тайм-аута для коннекта или проверки портов 6ххх?
 

view24

Member
@view24,
что-то сегодня нет связи с "облачным сервером":

это только у меня? Я ничего не менял...
Все нормально у Вас. Информация идет.
@view24,
что-то сегодня нет связи с "облачным сервером":

это только у меня? Я ничего не менял...
Информация у Вас идет. Работает сервер или нет - смотрите на сайте http://bortx.ru закладка Видео. UpTime 99.99999999999%
Может быть Ваш интернет блокируется на IP сервера - все-таки это Нидерланды. Может где-то уже и Нидерланды запретили.
Далее, пароль можете поставить в Локальной форме, чтоб кнопки на Вашей панели никто не нажимал.
 
Сверху Снизу