Arduino Mega Server для esp8266

Модератор: Alex

Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: Arduino Mega Server для esp8266

Сообщение ser009 » Пн янв 23, 2017 1:06 pm

Пошел покупать ESP-12F, а там оказывается ESP-32 продают. По мощнее железки.
artko
Сообщения: 51
Зарегистрирован: Пн дек 10, 2012 12:17 am
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Re: Arduino Mega Server для esp8266

Сообщение artko » Пн янв 23, 2017 1:11 pm

ser009 писал(а):Пошел покупать ESP-12F, а там оказывается ESP-32 продают. По мощнее железки.
при цене, равной фактически OrangePI Zero - пущай дальше продают, как по мне :)
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для esp8266

Сообщение serghei » Пн янв 23, 2017 1:26 pm

СпойлерПоказать
Free memory: 34048 (73%)
Flash speed: 40 MHz
Flash mode: 2
Flash size: 4194304
Flash real size: 524288
SPIFFS size: 4292348816
Program size: 3142768
Sketch size: 279664
Free for sketch: 2863104
C размером SPIFFS это какой то глюк или компилятор шалит ? ) Какие параметры выбирали при компиляции ? Вечная перезагрузка была и при 16М модуле. Только один раз стартанул, показал ВЕБ , и больше ничего не смог с ним поделать. Похоже не в ту область заливает файлы.
И для первого старта берите готовые модули NodeMcu , потом переходите на WeMos D1 mini. Тоже самое , но поменьше и куча готовых шилдов придачу.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: Arduino Mega Server для esp8266

Сообщение ser009 » Вт янв 24, 2017 5:10 am

ser009 писал(а):Json так и не был реализован?
Вот кусок кода с моего предыдущего проекта
Arduino
СпойлерПоказать
void get_struct_JSON_HTML_SD(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
if (type == WebServer::POST)
{
server.httpFail();
return;
}

server.httpSuccess("application/json");


/* if we're handling a GET or POST, we can output our data here.
For a HEAD request, we just stop after outputting headers. */

if (type == WebServer::HEAD)
return;

Element *pTemp = lst.pHead; //создается временный элемент

if (lst.pHead == NULL) //если список пуст, то
{
Streamprint(server,"NULL"); //выводим соответствующее сообщение
}
else //если все такие он не пуст, то
{
unsigned int last_modul_ID=pTemp->modul_ID;

Streamprint(server,"{\"n%d\":{", pTemp->modul_ID);
while(pTemp != NULL) //пока врем. элем. не будет указывать на хвост
{
if(pTemp->modul_ID != last_modul_ID){
Streamprint(server,",\"n%d\":{",pTemp->modul_ID);
}
else
{

}

Streamprint(server,"\"s%d\":{\"id\":%d,\"value\":",pTemp->sensor_numder,pTemp->sensor_type);
server.print(check_send_value (pTemp->sensor_value, pTemp->sensor_type));
Streamprint(server,",");
Streamprint(server,"\"time\":\"%d:%d:%d-%d.%d.%d\"",pTemp->hour_struct,pTemp->minute_struct,pTemp->second_struct,pTemp->day_struct,pTemp->month_struct,pTemp->year_struct);

Streamprint(server,"}");

last_modul_ID = pTemp->modul_ID;
pTemp = pTemp->next;

if(pTemp->modul_ID != last_modul_ID) Streamprint(server,"}");
else Streamprint(server,",");


}
Streamprint(server,",\"s0\":{\"id\": 0,\"value\": 0}}");
}
}
код HTML-странички
СпойлерПоказать
<!DOCTYPE html>
<html><head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

<title>Mega2560R3 controller</title>


<script src="java/jquery.js"></script>
<script src="java/b_min.js"></script>
<script type="text/javascript" src="java/farbtastic.js"></script>
<link rel="stylesheet" href="css/b_min.css">
<link rel="stylesheet" href="css/dash.css">
<link rel="stylesheet" href="css/farbtastic.css" type="text/css" />

<script>

$(document).ready(function(){

var hostAdress = location.hostname;
$.getJSON('/json/static', function(data) {
$.each(data, function(key, val) {
});
$("#Device_VERSION").html(data.Version);
$("#Device_DATA").html(data.Data);

Function3 ();
});
});

$(function(){
$('#RELE_OFF').click(function() {
$.get('/wifi?name=4&node_command=2&node_number_sensor=6&node_value=0',
function(data){});
return false;
});
$('#RELE_ON').click(function() {
$.get('/wifi?name=4&node_command=2&node_number_sensor=6&node_value=1',
function(data){});
return false;
});
$('#RGB_AUTO').click(function() {
$.get('/wifi?name=4&node_command=2&node_number_sensor=2&node_value=0',
function(data){});
return false;
});
$('#RGB_MANUAL').click(function() {
$.get('/wifi?name=4&node_command=2&node_number_sensor=2&node_value=1',
function(data){});
return false;
});
});

function Function3 () {
var hostAdress = location.hostname;
$.getJSON('/get_struct', function(obj) {
$("tr").empty();
$.each(obj, function( key, value) {
//key - n2,n3,n4.....нода

if ($.isPlainObject(value)) {
$.each(value, function(n, node_case){
// n - s0,s1,s2.....номер сенсора
//node_case.id,node_case.value


if ( n !='id' && n !='value'){
var tr = document.createElement("tr");
var td_1 = document.createElement("td");
td_1.className = "td_1";
tr.appendChild(td_1);
//td_1.innerHTML = key;


if (key == 'n4') {
td_1.innerHTML = '<FONT color="#9370DB">RGB Client</FONT>' + ' Adress:' + key;
var td_2 = document.createElement("td");
td_2.className = "td_2";
tr.appendChild(td_2);
//td_2.innerHTML = n;
n = n.substr(1, 10);


td_2.innerHTML = n ;

var td_3 = document.createElement("td");

td_3.className = "td_3";
tr.appendChild(td_3);


switch (node_case.id) {//ID датчика в более менее нормальный вид
case 1:
td_3.innerHTML = 'ID: <FONT color="red">1</FONT> Button';
break
case 2:
td_3.innerHTML = 'ID: <FONT color="red">2</FONT> Датчик ds18b20 температуры';

if (n == '1') {
if (node_case.value < '0'){
Device_Temperature.innerHTML='<FONT color="RoyalBlue4" font size="5">' + node_case.value + '</FONT>';
Device_Temperature_UPTIME.innerHTML='<FONT color="Brown"font size="3">' + node_case.time + '</FONT>';
}
else if (node_case.value > '0' || node_case.value < '30'){
Device_Temperature.innerHTML='<FONT color="PaleTurquoise2" font size="5">' + node_case.value + '</FONT>';
Device_Temperature_UPTIME.innerHTML='<FONT color="Brown"font size="3">' + node_case.time + '</FONT>';
}
else if (node_case.value > '30'){
Device_Temperature.innerHTML='<FONT color="Red" font size="5">' + node_case.value + '</FONT>';
Device_Temperature_UPTIME.innerHTML='<FONT color="Brown"font size="3">' + node_case.time + '</FONT>';
}
}
break
case 3:
td_3.innerHTML = 'ID: <FONT color="red">3</FONT> ds1990';
break
case 4:
td_3.innerHTML = 'ID: <FONT color="red">4</FONT> Analog in';
break
case 5:
td_3.innerHTML = 'ID: <FONT color="red">5</FONT> Digital in';
break
case 6:
td_3.innerHTML = 'ID: <FONT color="red">6</FONT> DHT температура C';
break
case 7:
td_3.innerHTML = 'ID: <FONT color="red">6</FONT> DHT влажность %';
break
case 8:
td_3.innerHTML = 'ID: <FONT color="red">8</FONT> Давление кПА';
break
case 9:
td_3.innerHTML = 'ID: <FONT color="red">9</FONT> расход л/мин';
break
case 10:
td_3.innerHTML = 'ID: <FONT color="red">10</FONT> BH1750 освещенность люмен';
break
case 11:
td_3.innerHTML = 'ID: <FONT color="red">11</FONT> задымление';
break
case 12:
td_3.innerHTML = 'ID: <FONT color="red">12</FONT> загазованность мг/м3';
break
case 13:
td_3.innerHTML = 'ID: <FONT color="red">14</FONT> PIR движение';
break
case 14:
td_3.innerHTML = 'ID: <FONT color="red">14</FONT> Analog_Light_Analog %';
break
case 15:
td_3.innerHTML = 'ID: <FONT color="red">15</FONT> BMP085 мм рт. ст.';
break
case 16:
td_3.innerHTML = 'ID: <FONT color="red">16</FONT> BMP085 Температура oC';
break
case 17:
td_3.innerHTML = 'ID: <FONT color="red">17</FONT> BMP085 высота над уровнем моря М';
break
case 18:
td_3.innerHTML = 'ID: <FONT color="red">18</FONT> Voltage Напряжение на ноде V';
break
case 19:
td_3.innerHTML = 'ID: <FONT color="red">19</FONT> Rele';
if (n == '6') {
if (node_case.value == 1){
Device_Rele.innerHTML = '<span class=\"glyphicon glyphicon-flash\"></span>';
Device_Rele_UPTIME.innerHTML='<FONT color="Brown"font size="3">' + node_case.time + '</FONT>';
}
else
{
Device_Rele.innerHTML = '<span class=\"glyphicon glyphicon-off\"></span>';
Device_Rele_UPTIME.innerHTML='<FONT color="Brown"font size="3">' + node_case.time + '</FONT>';
}
}
break
case 20:
td_3.innerHTML = 'ID: <FONT color="red">20</FONT> IR Command';
break
case 21:
td_3.innerHTML = 'ID: <FONT color="red">21</FONT> IR Command Script 1';
break
case 22:
td_3.innerHTML = 'ID: <FONT color="red">22</FONT> IR Command Script 2';
break
case 23:
td_3.innerHTML = 'ID: <FONT color="red">23</FONT> IR Command Script 3';
break
case 24:
td_3.innerHTML = 'ID: <FONT color="red">24</FONT> IR Command Script 4';
break
case 25:
td_3.innerHTML = 'ID: <FONT color="red">25</FONT> IR Command Script 5';
break
case 26:
td_3.innerHTML = 'ID: <FONT color="red">26</FONT> EnergyMonitor V rms';
break
case 27:
td_3.innerHTML = 'ID: <FONT color="red">27</FONT> EnergyMonitor real Power';
break
case 28:
td_3.innerHTML = 'ID: <FONT color="red">28</FONT> EnergyMonitor apparent Power';
break
case 29:
td_3.innerHTML = 'ID: <FONT color="red">29</FONT> EnergyMonitor I rms';
break
case 30:
td_3.innerHTML = 'ID: <FONT color="red">30</FONT> RGB-Type (0-auto,1-manual)';
if (n == '2') {
RGB_TYPE.innerHTML = '<FONT color="RoyalBlue4"font size="5">' + node_case.value + '</FONT>';
RGB_TYPE_UPTIME.innerHTML='<FONT color="Brown"font size="3">' + node_case.time + '</FONT>';
}
break
case 31:
td_3.innerHTML = 'ID: <FONT color="red">31</FONT> RGB-Hue';
if (n == '3') {
RGB_HUE.innerHTML = '<FONT color="RoyalBlue4"font size="5">' + node_case.value + '</FONT>';
RGB_HUE_UPTIME.innerHTML='<FONT color="Brown"font size="3">' + node_case.time + '</FONT>';
}
break
case 32:
td_3.innerHTML = 'ID: <FONT color="red">32</FONT> RGB-Saturation';
if (n == '4') {
RGB_SAT.innerHTML = '<FONT color="RoyalBlue4"font size="5">' + node_case.value + '</FONT>';
RGB_SAT_UPTIME.innerHTML='<FONT color="Brown"font size="3">' + node_case.time + '</FONT>';
}
break
case 33:
td_3.innerHTML = 'ID: <FONT color="red">33</FONT> RGB-Values';
if (n == '5') {
RGB_VAL.innerHTML = '<FONT color="RoyalBlue4"font size="5">' + node_case.value + '</FONT>';
RGB_VAL_UPTIME.innerHTML='<FONT color="Brown"font size="3">' + node_case.time + '</FONT>';
}
break


case 200:
td_3.innerHTML = 'ID: <FONT color="red">200</FONT> Free_RAM';
Free_RAM.innerHTML = '<FONT color="Red4"font size="5">' + node_case.value + '</FONT>';
break
case 201:
td_3.innerHTML = 'ID: <FONT color="red">201</FONT> Uptime';
break
case 202:
td_3.innerHTML = 'ID: <FONT color="red">202</FONT> Lost_Packet';
break
case 203:
td_3.innerHTML = 'ID: <FONT color="#1e90ff">203</FONT> Interval to send packets ';
break
case 240:
td_3.innerHTML = 'ID: <FONT color="red">240</FONT> Errors';
if (n == '8') {
Lost_Packet.innerHTML = '<FONT color="red"font size="5">' + node_case.value + '</FONT> %';
Lost_Packet_UPTIME.innerHTML='<FONT color="Brown"font size="3">' + node_case.time + '</FONT>';
}
break
default:
//alert('Я таких значений не знаю')

}

//td_3.innerHTML = node_case.id;
var td_4 = document.createElement("td");
td_4.className = "td_4";
tr.appendChild(td_4);

switch (node_case.id) {//ID датчика в более менее нормальный вид
case 202:
td_4.innerHTML = '<FONT color="red">'+node_case.value+'</FONT>';
break
case 200:
td_4.innerHTML = '<FONT color="#6495ED">'+node_case.value+'</FONT>';
break
case 240:
td_4.innerHTML = '<FONT color="#red">'+node_case.value+'</FONT>' + ' %';
break

case 19:
if (node_case.value == 1){
td_4.innerHTML = '<span class=\"glyphicon glyphicon-flash\"></span>';
}
else
{
td_4.innerHTML = '<span class=\"glyphicon glyphicon-off\"></span>';
}
break
default:
td_4.innerHTML = node_case.value

}

//td_4.innerHTML = node_case.value;

var td_5 = document.createElement("td");
td_5.className = "td_5";
tr.appendChild(td_5);

td_5.innerHTML = node_case.time




var parent_table = document.getElementById("parent_table");
parent_table.appendChild(tr);
}





}
});
}
});
});

}
setInterval(Function3, 3000);
</script>


</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">WebServer Mega 2560R3</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="/index.htm">Главная</a></li>

<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Клиенты<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/energy.htm">Energy Monitor Client</a></li>
<li><a href="/rgb.htm">RGB Client</a></li>
<li><a href="/weather.htm">Weather Client</a></li>
<li><a href="/client.htm">Client</a></li>
<li><a href="/ir.htm">IR Client</a></li>
<li><a href="/light.htm">Свет</a></li>
</ul>
</li>
</ul>

<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Настройки<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/getwire.htm">1-Wire</a></li>
<li class="divider"></li>
<li><a href="/Net.htm">настройки сети</a></li>
<li><a href="/rele.htm">управление реле</a></li>
<li><a href="/pin.htm">настройки входов</a></li>
<li><a href="/wifi.htm">беспроводные клиенты</a></li>
<li><a href="/Pass.htm">беспроводое управление</a></li>
<li><a href="/upload.htm">Загрузить файл</a></li>
</ul>
</li>
</ul>

<li><a href="/info.htm">Помощь</a></li>
</ul>

</div>
</div>
</div>
<div class="container-fluid">
<div class="row">
<div class="col-sm-2 col-md-2 sidebar">
<ul class="nav nav-sidebar">
<li><a href="/energy.htm">Energy Monitor Client</a></li>
<li><a href="/rgb.htm">RGB Client</a></li>
<li><a href="/weather.htm">Weather Client</a></li>
<li><a href="/ir.htm">Client</a></li>
<li class="active"><a href="/ir.htm">IR Client</a></li>
<li><a href="/light.htm">Свет</a></li>
</ul>
<ul class="nav nav-sidebar">
<form method="get" action="/wifi">
<legend>Send command to client</legend>
<div class="input-group">
<span class="input-group-addon">Адрес ноды</span>
<input type="number" name="name" id="name" class="form-control" placeholder="Укажите адрес ноды" required min="0" max="5555" autocomplete="off">
</div>

<div class="input-group">
<span class="input-group-addon">Команда</span>
<input type="number" name="node_command" id="node_command" class="form-control" placeholder="Укажите тип команды 1-чтение 2-уставка" required min="1" max="2" autocomplete="off">
</div>

<div class="input-group">
<span class="input-group-addon">Номер сенсора</span>
<input type="number" name="node_number_sensor" id="node_number_sensor" class="form-control" placeholder="Укажите номер сенсора" required min="1" max="255" autocomplete="off">
</div>

<div class="input-group">
<span class="input-group-addon">Значение</span>
<input type="number" name="node_value" id="node_value" class="form-control" placeholder="Укажите значение если указанно чтение то значение 0" required min="-32767" max="32767" autocomplete="off">
</div>
<br>
<input type="submit" value="Отправить" alt="Submit" />
</form>
</ul>
</div>





<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
<h1 class="page-header">RGB Client</h1>

<div class="panel panel-default">
<div class="panel-heading"><h4>Состояние датчиков: </h4></div>
<div class="panel-body">
<p>Тут можно управлять и видеть состояние RGB клиента</p>
</div>

</div>

<div class="row placeholders">
<div class="col-xs-6 col-sm-2 placeholder">
<div class="panel panel-info">
<h4> Type (0-auto,1-manual) </h4>
<br>
<span class="text-muted"><div style="display : inline" id="RGB_TYPE">Загрузка...</div></span><br>
<span class="text-muted"><div style="display : inline" id="RGB_TYPE_UPTIME">Загрузка...</div></span>
<br>
<a href="#" class="btn btn-default" id="RGB_AUTO">Auto</a>
<a href="#" class="btn btn-default" id="RGB_MANUAL">Manual</a><br />
<br>



</div>
</div>
<div class="col-xs-6 col-sm-2 placeholder">
<div class="panel panel-info">
<h4> Hue </h4>
<br>
<span class="text-muted"><div style="display : inline" id="RGB_HUE">Загрузка...</div></span><br>
<span class="text-muted"><div style="display : inline" id="RGB_HUE_UPTIME">Загрузка...</div></span>
<form method="get" action="/wifi">
<input type="hidden" name="name" id="name" class="form-control" value="4">
<input type="hidden" name="node_command" id="node_command" class="form-control" value="2">
<input type="hidden" name="node_number_sensor" id="node_number_sensor" class="form-control" value="3">
<br>
<input name="node_value" id="node_value" class="form-control" placeholder="от 0.00 до 6.00" required pattern="\-?\d+(\.\d{0,})?" autocomplete="off">
<br>
<input type="submit" class="btn btn-default" value="Отправить" alt="Submit" />
</form>
<br>
</div>
</div>
<div class="col-xs-6 col-sm-2">
<div class="panel panel-info">
<h4> Saturation </h4>
<br>
<span class="text-muted"><div style="display : inline" id="RGB_SAT">Загрузка...</div></span><br>
<span class="text-muted"><div style="display : inline" id="RGB_SAT_UPTIME">Загрузка...</div></span>
<form method="get" action="/wifi">
<input type="hidden" name="name" id="name" class="form-control" value="4">
<input type="hidden" name="node_command" id="node_command" class="form-control" value="2">
<input type="hidden" name="node_number_sensor" id="node_number_sensor" class="form-control" value="4">
<br>
<input name="node_value" id="node_value" class="form-control" placeholder="от 0.00 до 1.00" required pattern="\-?\d+(\.\d{0,})?" autocomplete="off">
<br>
<input type="submit" class="btn btn-default" value="Отправить" alt="Submit" />
</form>
<br>
</div>
</div>
<div class="col-xs-6 col-sm-2 placeholder">
<div class="panel panel-info">
<h4>Values</h4>
<br>
<span class="text-muted"><div style="display : inline" id="RGB_VAL">Загрузка...</div></span><br>
<span class="text-muted"><div style="display : inline" id="RGB_VAL_UPTIME">Загрузка...</div></span>
<form method="get" action="/wifi">
<input type="hidden" name="name" id="name" class="form-control" value="4">
<input type="hidden" name="node_command" id="node_command" class="form-control" value="2">
<input type="hidden" name="node_number_sensor" id="node_number_sensor" class="form-control" value="5">
<br>
<input name="node_value" id="node_value_2" class="form-control" placeholder="от 0.00 до 1.00" required pattern="\-?\d+(\.\d{0,})?" autocomplete="off">
<br>
<input type="submit" class="btn btn-default" value="Отправить" alt="Submit" />
</form>
<br>
</div>
</div>



</div>

<div class="row placeholders">
<div class="col-xs-6 col-sm-2 placeholder">
<div class="panel panel-info">
<h4> Температура RGB клиента </h4>
<br>
<span class="text-muted"><div style="display : inline" id="Device_Temperature">Загрузка...</div></span><br>
<span class="text-muted"><div style="display : inline" id="Device_Temperature_UPTIME">Загрузка...</div></span>
</div>
</div>
<div class="col-xs-6 col-sm-2 placeholder">
<div class="panel panel-info">
<h4>Реле</h4>
<br>
<span class="text-muted"><div style="display : inline" id="Device_Rele">Загрузка...</div></span><br>
<span class="text-muted"><div style="display : inline" id="Device_Rele_UPTIME">Загрузка...</div></span>
<br>
<a href="#" class="btn btn-default" id="RELE_ON">ON</a>
<a href="#" class="btn btn-default" id="RELE_OFF">OFF</a><br />
<br>

</div>
</div>
<div class="col-xs-6 col-sm-2">
<div class="panel panel-info">
<h4>Free RAM </h4>
<br>
<span class="text-muted"><div style="display : inline" id="Free_RAM">Загрузка...</div></span>
</div>
</div>
<div class="col-xs-6 col-sm-2 placeholder">
<div class="panel panel-info">
<h4>Lost_Packet</h4>
<br>
<span class="text-muted"><div style="display : inline" id="Lost_Packet">Загрузка...</div></span><br>
<span class="text-muted"><div style="display : inline" id="Lost_Packet_UPTIME">Загрузка...</div></span>
</div>
</div>

</div>



<div class="table-responsive table-bordered">
<table class="table table-striped">
<tbody id="parent_table">
<tr>
<td><b>node</b></td>
<td><b>key</b></td>
<td><b>ID</b></td>
<td><b>Value</b></td>
<td><b>Change</b></td>
</tr>
</tbody>
</table></div>



<br>
<hr><b>Версия: </b>
<div style="display : inline" id="Device_VERSION">Загрузка...</div>
<br>
<b>Дата обновления: </b>
<div style="display : inline" id="Device_DATA">Загрузка...</div>

</div>
</body>
Единственное неудобство было в том, что данные обновлялись за счет обновления всей страницы. Время обновления страницы setInterval(Function3, 3000);

*** Сообщение запрещено. Сообщение похоже на спам. ***
artko
Сообщения: 51
Зарегистрирован: Пн дек 10, 2012 12:17 am
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Re: Arduino Mega Server для esp8266

Сообщение artko » Вт янв 24, 2017 4:08 pm

Сегодня заливал spiffs в другой модуль, пустой. Самая последняя версия ESP8266 Sketch Data Upload не работает с иде 1.6.7, и не только у меня, судя по гуглу.
Однако 0.2.0 версия - отлично залила все как нужно, работает.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для esp8266

Сообщение serghei » Чт янв 26, 2017 4:40 pm

Coolerr писал(а):А иконка у всех не грузится?
Alexsis_76 писал(а):добавте и загрузится
Добавил. На одном сервере появилась только на вкладке "Edit" . На другом в упор не хочет нигде))).
СпойлерПоказать
Favicon.jpg
Favicon.jpg (131.31 КБ) 8582 просмотра
УПС. 3 раза перегрузил сервера, появилась иконка только при открытой вкладке " Edit".
Только сейчас сообразил, что при полноэкранном выводе появилась вертикальная прокрутка. Что на мониторе 16:9,что 4:3. Откуда ???))).
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Coolerr
Сообщения: 20
Зарегистрирован: Ср янв 18, 2017 11:54 pm
Благодарил (а): 3 раза
Поблагодарили: 0

Re: Arduino Mega Server для esp8266

Сообщение Coolerr » Сб янв 28, 2017 9:06 pm

И снова здравствуйте, написал я вот такую фиговину, правда в версии процессинга 3.2.3
СпойлерПоказать

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

import processing.svg.*;


import shapes3d.*;

Ellipsoid AddEllipsoid (int slices, int segments, String textureFile, float radius) 
{
  Ellipsoid aShape = new Ellipsoid(this, slices, segments);
  aShape.setTexture(textureFile);
  aShape.drawMode(Shape3D.TEXTURE);
  aShape.setRadius(radius);
  return aShape;
}

Ellipsoid earth;    
float rotx = -0.3;
float roty = -0.3;
float distance = 0;
int tailleEllipse=1300;
void setup()
{
  size(1000,600, P3D);
  frameRate(30);

  // create the earth
  earth = AddEllipsoid (180,180, "karta-mira-s-gorodam122i.jpg",800);
  
}

void draw()
{
  camera(0, 0, tailleEllipse+distance, 0, 0, 0, 0, 1, 0);
  if (mousePressed) 
    if (mouseButton == LEFT){
      rotx = constrain(rotx + (pmouseY-mouseY)*0.003,-360, 360);
      roty = constrain(roty +(mouseX-pmouseX)*0.003,-360, 360);
    
  }
  rotateX (rotx);
  rotateY (roty);
  background(0);
  // lightning earth 
  ambientLight(255,255,255);
  directionalLight(20, 20, 20, -150, 40, -140);
  earth.draw(); 

  // reset the lights
  noLights();
  ambientLight(180,180,180);
}
void mouseWheel(MouseEvent event) {
  tailleEllipse+=event.getCount()*20;
} 


Что дальше с этим делать? Как вставить в страничку?
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для esp8266

Сообщение serghei » Чт фев 02, 2017 10:43 am

После запуска уже 10-го сервера WeMos+Sd нарвался на такую картинку
СпойлерПоказать
error_nrf24.jpg
error_nrf24.jpg (96.17 КБ) 8299 просмотров
Все остальное отображается нормально. Я вижу,что проблема с названием имени , но не могу сообразить где - в Ажаксе , скрипте или на самой странице. SD карточке всего 3 недели , ну может сотню раз заливал файлы.
Единственное что не нравится - тяжело запускается в первый раз ( 16 гигов). С 4-х гиговой намного легче.
В ранних версиях АМС в Ажаксе есть код
СпойлерПоказать

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


void responseDash(WiFiClient cl) {
  String s = tagXmlVersion();
  s += "\n<inputs>\n";  // В ранних версиях
    s += makeModules();
    s += makeTag("auth",    "", String(authMode));
    s += makeTag("uptime",  "", uptimeString());
    s += makeTag("freeRAM", "", String(freeMem()));

 
В 016 есть замена
СпойлерПоказать

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

void responseSDcard(WiFiClient cl) {
  String s = tagXmlVersion();
  s += openInputs();  // в 016 версии 
    #ifdef SD_INFO_FEATURE
      s += makeTag("sdType",   "", String(sdType()));
      s += makeTag("sdSystem", "", String(sdFileSystem()));
      s += makeTag("sdSize",   "", String(sdVolumeSize()));
    #endif
    #ifdef SD_FILES_FEATURE
      //s += makeTag("sdRootDir","", s); // s.substring(0, 300)
    #endif    
  s += closeInputs();
  cl.println(s);
}

Это для ускорения загрузки страниц? К вечеру карту конечно проверю. Куда ещё копать?
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Mega Server для esp8266

Сообщение alexsis_76 » Чт фев 02, 2017 11:15 am

это ошибки xml,там собственно все и написано
amc неправильно страницу собрал
s += openInputs() наверное вынесено в отдельную функцию
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для esp8266

Сообщение serghei » Чт фев 02, 2017 11:22 am

Так кто её собирает? Скрипт на карте или код в ЕСП ? Просто залил старую прошивку в новую Wemos и такое здрасте ))
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ответить