Arduino Mega Server для esp8266
Модератор: Alex
- ser009
- Сообщения: 595
- Зарегистрирован: Сб окт 13, 2012 9:55 am
- Благодарил (а): 4 раза
- Поблагодарили: 43 раза
Re: Arduino Mega Server для esp8266
Пошел покупать ESP-12F, а там оказывается ESP-32 продают. По мощнее железки.
-
- Сообщения: 51
- Зарегистрирован: Пн дек 10, 2012 12:17 am
- Благодарил (а): 2 раза
- Поблагодарили: 4 раза
Re: Arduino Mega Server для esp8266
при цене, равной фактически OrangePI Zero - пущай дальше продают, как по мнеser009 писал(а):Пошел покупать ESP-12F, а там оказывается ESP-32 продают. По мощнее железки.
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server для esp8266
СпойлерПоказать
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
И для первого старта берите готовые модули 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 писал(а):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}}");
}
}
{
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}}");
}
}
СпойлерПоказать
<!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>
<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>
*** Сообщение запрещено. Сообщение похоже на спам. ***
-
- Сообщения: 51
- Зарегистрирован: Пн дек 10, 2012 12:17 am
- Благодарил (а): 2 раза
- Поблагодарили: 4 раза
Re: Arduino Mega Server для esp8266
Сегодня заливал spiffs в другой модуль, пустой. Самая последняя версия ESP8266 Sketch Data Upload не работает с иде 1.6.7, и не только у меня, судя по гуглу.
Однако 0.2.0 версия - отлично залила все как нужно, работает.
Однако 0.2.0 версия - отлично залила все как нужно, работает.
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server для esp8266
Coolerr писал(а):А иконка у всех не грузится?
Добавил. На одном сервере появилась только на вкладке "Edit" . На другом в упор не хочет нигде))).Alexsis_76 писал(а):добавте и загрузится
СпойлерПоказать
Только сейчас сообразил, что при полноэкранном выводе появилась вертикальная прокрутка. Что на мониторе 16:9,что 4:3. Откуда ???))).
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 20
- Зарегистрирован: Ср янв 18, 2017 11:54 pm
- Благодарил (а): 3 раза
- Поблагодарили: 0
Re: Arduino Mega Server для esp8266
И снова здравствуйте, написал я вот такую фиговину, правда в версии процессинга 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;
}
Что дальше с этим делать? Как вставить в страничку?
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server для esp8266
После запуска уже 10-го сервера WeMos+Sd нарвался на такую картинку
Все остальное отображается нормально. Я вижу,что проблема с названием имени , но не могу сообразить где - в Ажаксе , скрипте или на самой странице. SD карточке всего 3 недели , ну может сотню раз заливал файлы.
Единственное что не нравится - тяжело запускается в первый раз ( 16 гигов). С 4-х гиговой намного легче.
В ранних версиях АМС в Ажаксе есть код
В 016 есть замена
Это для ускорения загрузки страниц? К вечеру карту конечно проверю. Куда ещё копать?
СпойлерПоказать
Единственное что не нравится - тяжело запускается в первый раз ( 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()));
СпойлерПоказать
Код: Выделить всё
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
-
- Сообщения: 791
- Зарегистрирован: Пт янв 22, 2016 10:08 am
- Благодарил (а): 6 раз
- Поблагодарили: 63 раза
Re: Arduino Mega Server для esp8266
это ошибки xml,там собственно все и написано
amc неправильно страницу собрал
s += openInputs() наверное вынесено в отдельную функцию
amc неправильно страницу собрал
s += openInputs() наверное вынесено в отдельную функцию
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server для esp8266
Так кто её собирает? Скрипт на карте или код в ЕСП ? Просто залил старую прошивку в новую Wemos и такое здрасте ))
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS