|
Arduino и Ethernet Shield W5100
|
|
|
|
Администратор
2015-12-08 16:13 #1
Arduino и Ethernet Shield W5100 обсуждение цикла статей.
Часть 1 - Начало проекта. Часть 2 - Добавлено динамическое обновление данных и работа с SD картой. Часть 3 - Добавлено оформление страницы. Часть 4 - Добавлено управление реле. Часть 5 - Добавлен регулятор мощности нагрузки в виде ползунка. NEW!!! Часть 6 - Реализация включения реле по таймеру
Профиль
|
|
|
|
Vetrinus
2016-04-19 16:40 #241
Цитата gawmer (  ) sd_init(); на SD.begin(4); SD.begin(4); внутри функции
Код void sd_init() { Serial.println("Starting SD initiations..."); byte step_init = 0; if (SD.begin(4)) { Serial.println("Chip select done"); step_init++; } else { Serial.println("Chip selecting failed"); return; } Serial.print("Searching index.htm... "); if (SD.exists("index.htm")) { Serial.println("Found"); step_init++; } else { Serial.println("Not Found - ERROR"); } Serial.print("Searching UI.css... "); if (SD.exists("UI.css")) { Serial.println("Found"); step_init++; } else { Serial.println("Not Found - ERROR"); } Serial.print("Searching script.js... "); if (SD.exists("script.js")) { Serial.println("Found"); step_init++; } else { Serial.println("Not Found - ERROR"); } if (step_init == 4) { Serial.println ("SD card init DONE"); } else { Serial.print("SD init FAILED"); } }
Добавлено (2016-04-19, 16:01) --------------------------------------------- У меня, кстати, мега, китайская, если это что-то значит
Добавлено (2016-04-19, 16:22) --------------------------------------------- Немного изменил скетч. Добился такого результата:
Код Setup start Ethernet start Starting SD initiations... Chip select done Searching index.htm... Found Searching UI.css... Found Searching script.js... Found SD card init DONE loop start GET / HTTP/1.1 Host: 192.168.0.177 Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Upgrade-Insecur после чего контроллер не реагирует ни на что, кроме перезагрузки Перезалил скетч с меги на уно. Результат один в один такой же. Я явно чего-то не понимаюДобавлено (2016-04-19, 16:40) --------------------------------------------- Добавил задержку между записью символов в буфер. Код while (client.connected()) { if (client.available()) { char c = client.read(); Serial.print(c); delay(2); HTTP_req[req_index] = c; // save HTTP request character req_index++;
Привело вот к такому результату Код Setup start Ethernet start Starting SD initiations... Chip select done Searching index.htm... Found Searching UI.css... Found Searching script.js... Found SD card init DONE loop start loop start loop start loop start loop start GET / HTTP/1.1 Host: 192.168.0.177 Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) Setup start Ethernet start Starting SD initiations... Chip select done Searching index.htm... Found Searching UI.css... Found Searching script.js... Found SD card init DONE loop start loop start loop start ... Я в прострации, честно говоря
Сообщение отредактировал Vetrinus - Вторник, 2016-04-19, 16:23
Профиль
|
|
|
|
gawmer
2016-04-19 18:03 #242
ну вот как вам обьяснить , в скетче то ошибок нет, вы хотели инициализацию карты , вы ее получили, а карту то стартовать надо да, посмитрите тут примеры а то зависните и забросите усее.
Профиль
|
|
|
|
Vetrinus
2016-04-20 07:57 #243
Ну, а каков должен быть алгоритм? Приведу свое понимание: 1) Поднимаем сеть 2) запускаем SD карту, spi select slave 4 пин 3)Смотрим, есть ли клиенты 4) Если есть, смотрим буфер шилда 5) Если он не пуст, переписываем в программный буфер для парсинга 6) Парсим строку и отдаем нужный файл 7) либо отдаем данные для ajax 8) Закрываем соединения 9) Очищаем буфер шилда
Но у меня контроллер перезагружается на этапе чтения буфера шилда. Setup start.. в ком порту. Причем тут SD карта вообще, ее даже близко в этом месте нет. Снизойдите, пожалуйста. Хотябы номер пункта напишите, в котором ошибка, по вашему мнению.
Профиль
|
|
|
|
gawmer
2016-04-20 12:01 #244
Если вы хотите спрятать пароль авторизации , у меня мысль такая- создать файл с именем пароля на сд и считывать имя файла для проверки, а не строку в файле или сам фаил на стороне , совпало пускаем , нет идем мимо
Профиль
|
|
|
|
Vetrinus
2016-04-20 16:23 #245
А какая разница, с чем сравнивать, если и так и так источник находится на контроллере. А то, что сравнивать, в запросе, который не интерпретируется, т.к. контроллер перезагружается с нуля во время записи запроса в буфер...
Профиль
|
|
|
|
|
|
Makumba
2016-04-29 23:55 #247
Добрый вечер! Нужна ваша помощь. Делаю проект такой как в теме, только использую два датчик газа mq-2 и mq-6, и датчик температуры влажности dht11. Реле не использую. У меня датчики газа не реагируют на газ из зажигалки ни от плиты, не на дым, постоянно такие значения и сами по себе то вверх то вниз меняются. Не сильно +- 30. и температура тоже в помещении всегда 22, 23 градуса ниже ни разу не опускалось. Может что в коде не так или со схемой не то? Код #include <SPI.h> #include <Ethernet.h> #include <SD.h> #include <DHT.h>
#define DHTPIN 7 #define DHTTYPE DHT11 #define REQ_BUF_SZ 40
DHT dht(DHTPIN, DHTTYPE); File webFile;
char HTTP_req[REQ_BUF_SZ] = {0}; // buffered HTTP request stored as null terminated string char req_index = 0; // index into HTTP_req buffer byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; IPAddress ip(192, 168, 1, 20); EthernetServer server(80); void setup() { SD.begin(4); Ethernet.begin(mac, ip); server.begin(); dht.begin(); }
void loop() {
// listen for incoming clients EthernetClient client = server.available(); if (client) {
// an http request ends with a blank line boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); if (req_index < (REQ_BUF_SZ - 1)) { HTTP_req[req_index] = c; // save HTTP request character req_index++; } if (c == '\n' && currentLineIsBlank) { if (StrContains(HTTP_req, "GET /")) { if (StrContains(HTTP_req, "/ ") || StrContains(HTTP_req, "/index.htm")) { sendHtmlFile(client, "index.htm"); } else if (StrContains(HTTP_req, "/favicon.ico")) { sendFile(client, "favicon.ico"); } else if (StrContains(HTTP_req, "/temp.png")) { sendFile(client, "temp.png"); } else if (StrContains(HTTP_req, "/humid.png")) { sendFile(client, "humid.png"); } else if (StrContains(HTTP_req, "/flame.png")) { sendFile(client, "flame.png"); } else if (StrContains(HTTP_req, "/my.css")) { sendFile(client, "my.css"); } else if (StrContains(HTTP_req, "ajax_flame")) { sendBaseAnswer(client); int smoke_gas = 0; //пин на котором подключен MQ-2 int sensorReading = analogRead(smoke_gas); int LPG_gas = 1; //пин на котором подключен MQ-6 int sensorReading1 = analogRead(LPG_gas); int t = dht.readTemperature(); int f = dht.readTemperature(true); int h = dht.readHumidity(); int hif = dht.computeHeatIndex(f, h); int hic = dht.computeHeatIndex(t, h, false); char buff[32]; sprintf(buff, "%d:%d:%d:%d:%d:%d:%d:", sensorReading, sensorReading1, t, f, h, hif, hic); client.println(buff); sendBaseAnswer(client); } } req_index = 0; StrClear(HTTP_req, REQ_BUF_SZ); break; } if (c == '\n') { // you're starting a new line currentLineIsBlank = true; } else if (c != '\r') { // you've gotten a character on the current line currentLineIsBlank = false; } } } // give the web browser time to receive the data delay(1); // close the connection: client.stop(); } } bool sendHtmlFile(EthernetClient client, char *fileName) { webFile = SD.open(fileName); sendBaseAnswer(client); return sendFile(client, webFile); } bool sendFile(EthernetClient client, char *fileName) { webFile = SD.open(fileName); sendHttpOkAnswer(client); client.println(); return sendFile(client, webFile); } bool sendFile(EthernetClient client, File &webFile) { if (webFile) { while (webFile.available()) client.write(webFile.read()); // send web page to client webFile.close(); return 1; } return 0; } void sendBaseAnswer(EthernetClient client) { sendHttpOkAnswer(client); client.println(F("Content-Type: text/html")); client.println(F("Connection: close")); client.println(); } void sendHttpOkAnswer(EthernetClient client) { client.println(F("HTTP/1.1 200 OK")); }
void StrClear(char *str, char length) { for (int i = 0; i < length; i++) { str [i]= 0; } }
char StrContains(char *str, char *sfind) { char found = 0; char index = 0; char len; len = strlen(str); if (strlen(sfind) > len) { return 0; } while (index < len) { if (str [index]== sfind[found]) { found++; if (strlen(sfind) == found) { return 1; } } else { found = 0; } index++; } return 0; } index.htm Код <html>
<head> <meta http-equiv='content-type' content='text/html; charset=UTF-8'> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"> <title>Газоанализатор WEB контроль</title> <link type="text/css" rel="StyleSheet" href="/my.css" /> <script> function GetFlameState() { nocache = "&nocache=" + Math.random() * 1000000; var request = new XMLHttpRequest(); request.onreadystatechange = function() { if (this.readyState == 4) { if (this.status == 200) { if (this.responseText != null) { var arrayOfStrings = this.responseText.split(":");
document.getElementById("flame_txt").innerHTML = arrayOfStrings[0]; document.getElementById("flame2_txt").innerHTML = arrayOfStrings[1]; document.getElementById("tempc_txt").innerHTML = arrayOfStrings[2]; document.getElementById("tempv_txt").innerHTML = arrayOfStrings[3]; document.getElementById("humid_txt").innerHTML = arrayOfStrings[4]; document.getElementById("indc_txt").innerHTML = arrayOfStrings[5]; document.getElementById("indv_txt").innerHTML = arrayOfStrings[6]; for(var i = 1 ; i < 5 ; i++) if(arrayOfStrings[6+i] == "1") document.getElementById("led_"+i).setAttribute("class","button_enabled"); else document.getElementById("led_"+i).setAttribute("class","button_disabled"); } } } } request.open("GET", "ajax_flame" + nocache, true); request.send(null); setTimeout('GetFlameState()', 1000); } function onClick(pin){ var request = new XMLHttpRequest(); request.open("GET", "\setpin?pin=" + pin , false); request.send(null); } function PWM(){ value = document.getElementById("led_PWM").value; var request = new XMLHttpRequest(); request.open("GET", "\setpin?pin=5?value=" + value, false); request.send(null); } </script>
</head>
<body onload="GetFlameState()"> <div class="form"> <div class="header">Газоанализатор WEB контроль </div> <hr noshade size="1px" color="white"> <h3>Детектор загазованности</h3> <table align="center"> <tr> <!-- <td><img src='flame.png' /></td> --> <td valign="center">Датчик дыма</td> <td><span id="flame_txt"> 0</span></td> </tr>
<tr> <!-- <td><img src='flame.png' /></td> --> <td valign="center">Датчик газа</td> <td><span id="flame2_txt"> 0</span></td> </tr>
<tr> <!-- <td><img src='temp.png' /></td> --> <td valign="center">Температура</td> <td><span id="tempc_txt">0</span> °C</td> <td><span id="tempv_txt">0</span> °F</td> </tr>
<tr> <!-- <td><img src='humid.png' /></td> --> <td valign="center">Влажность</td> <td><span id="humid_txt">0</span> %</td> </tr>
<tr> <!-- <td><img src='temp.png' /></td> --> <td valign="center">Индекс тепла</td> <td><span id="indc_txt">0</span> °C</td> <td><span id="indv_txt">0</span> °F</td> </tr> </table> <center> <hr noshade size="1px" color="white"> <h3>Управление нагрузками</h3> <button type="button" id="led_1" class="button_disabled" onClick="onClick(1)">Реле №1</button> <button type="button" id="led_2" class="button_disabled" onClick="onClick(2)">Реле №2</button> <button type="button" id="led_3" class="button_disabled" onClick="onClick(3)">Реле №3</button> <button type="button" id="led_4" class="button_disabled" onClick="onClick(4)">Реле №4</button><br> <hr noshade size="1px" color="white"> <h3>Регулировка мощности</h3><input type="range" min="0" max="255" id="led_PWM" step="2.55" oninput="PWM()" value="0" class="rangeP"> <hr noshade size="1px" color="white"> </center> </div> </body> </html>
Профиль
|
|
|
|
|
|
ilnar
2016-04-30 13:18 #249
Makumba, попробуйте отдельное питание, через усб питание похоже не хватает.
Профиль
|
|
|
|
gawmer
2016-04-30 21:30 #250
Вот в этой части скрипта
Указано 5 а вы обьявили 9 так будьте любездны смените уж как правильно должно быть
Сообщение отредактировал gawmer - Суббота, 2016-04-30, 21:31
Профиль
|
|
|
|
Soichi
2016-05-01 17:11 #251
Всем привет. У меня в зале люстра управляется двумя реле, первое реле отвечает за одну лампу, второе за остальные две. Как переделать код так, чтобы при включении первых двух кнопок включалась и третья, соответственно при включении\выключении третьей включались\выключались первые две. Правильнее будет завести под это дело какую то другую функцию?
До этого для управления использовал связку w5100 и Mega, но без участия SD. Ваш проект понравился гораздо больше, но вот пока не во всё врубаюсь ^^'
Сообщение отредактировал Soichi - Воскресенье, 2016-05-01, 17:12
Профиль
|
|
|
|
y2056
2016-05-04 12:38 #252
Господа всем доброго времени суток. Прошу помощи вашей. Взял пробную страницу по работе с датчиками и кнопками с веб интерфейса с этого сайта. Попробовал все отлично работает. Потом изменил дописал как себе надо и у меня перестал работать вывод инфо с датчиков. Кнопки работают, кто может подскажите плиз че не так прошивку и html выкладываю. код ардуино мега Код // listen for incoming clients EthernetClient client = server.available(); if (client) {
// an http request ends with a blank line boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); if (req_index < (REQ_BUF_SZ - 1)) { HTTP_req[req_index] = c; // save HTTP request character req_index++; } if (c == '\n' && currentLineIsBlank) { if (StrContains(HTTP_req, "GET / ") || StrContains(HTTP_req, "GET /index.htm")) { client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connnection: close"); client.println(); webFile = SD.open("index.htm"); } else if (StrContains(HTTP_req, "GET /favicon.ico")) { webFile = SD.open("images/favicon.ico"); if (webFile) { client.println("HTTP/1.1 200 OK"); client.println(); } } else if (StrContains(HTTP_req, "GET /nebo.jpg")) { webFile = SD.open("images/nebo.jpg"); if (webFile) { client.println("HTTP/1.1 200 OK"); client.println(); } } else if (StrContains(HTTP_req, "ajax_flame")) { client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: keep-alive"); client.println(); digitalWrite(13, !digitalRead(13)); int chk; chk = DHT.read(DHT11_PIN); temp1_1 = DHT.temperature; humid1_1 = DHT.humidity; client.print(Us); client.print(":"); client.print(Is); client.print(":"); client.print(Ps); client.print(":"); client.print(Fs); client.print(":"); client.print(Tout); client.print(":"); client.print(Bout); client.print(":"); client.print(Vout); client.print(":"); client.print(Zout); client.print(":"); client.print(temp1_1); client.print(":"); client.print(humid1_1); client.print(":"); client.print(temp1_2); client.print(":"); client.print(humid1_2); client.print(":"); client.print(temp1_3); client.print(":"); client.print(humid1_3); client.print(":"); client.print(temp1_4); client.print(":"); client.print(humid1_4); client.print(":"); client.print(temp1_5); client.print(":"); client.print(humid1_5); client.print(":"); client.print(temp1_6); client.print(":"); client.print(humid1_6); client.print(":"); client.print(temp1_7); client.print(":"); client.print(humid1_7); client.print(":"); client.print(119+i1); client.print(":"); client.print(119+i1); //23 client.print(":"); client.print((digitalRead(37)) ? "1" : "0"); client.print(":"); client.print((digitalRead(38)) ? "1" : "0"); client.print(":"); client.print((digitalRead(39)) ? "1" : "0"); client.print(":"); client.print((digitalRead(40)) ? "1" : "0");
} else if (StrContains(HTTP_req, "setpin?pin=1")) { pin1 = !pin1; digitalWrite(37, pin1); client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connnection: close"); client.println(); } else if (StrContains(HTTP_req, "setpin?pin=2")) { pin2 = !pin2; digitalWrite(38, pin2); client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connnection: close"); client.println(); } else if (StrContains(HTTP_req, "setpin?pin=3")) { pin3 = !pin3; digitalWrite(39, pin3); client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connnection: close"); client.println(); } else if (StrContains(HTTP_req, "setpin?pin=4")) { pin4 = !pin4; digitalWrite(40, pin4); client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connnection: close"); client.println(); }
if (webFile) { while (webFile.available()) { client.write(webFile.read()); // send web page to client } webFile.close(); } req_index = 0; StrClear(HTTP_req, REQ_BUF_SZ); break; } if (c == '\n') { // you're starting a new line currentLineIsBlank = true; } else if (c != '\r') { // you've gotten a character on the current line currentLineIsBlank = false; } } } // give the web browser time to receive the data delay(1); // close the connection: client.stop(); } html Код <html>
<head> <meta http-equiv='content-type' content='text/html; charset=Windows-1251'> <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"> <title>Данные с датчиков</title> <link type="text/css" rel="StyleSheet" href="my.css" />
<script> function GetFlameState() { nocache = "&nocache=" + Math.random() * 1000000; var request = new XMLHttpRequest(); request.onreadystatechange = function() { if (this.readyState == 4) { if (this.status == 200) { if (this.responseText != null) { var arrayOfStrings = this.responseText.split(":");
document.getElementById("Us").innerHTML = arrayOfStrings[0]; document.getElementById("Is").innerHTML = arrayOfStrings[1]; document.getElementById("Ps").innerHTML = arrayOfStrings[2]; document.getElementById("Fs").innerHTML = arrayOfStrings[3]; document.getElementById("Tout").innerHTML = arrayOfStrings[4]; document.getElementById("Bout").innerHTML = arrayOfStrings[5]; document.getElementById("Vout").innerHTML = arrayOfStrings[6]; document.getElementById("Zout").innerHTML = arrayOfStrings[7]; document.getElementById("temp1_1").innerHTML = arrayOfStrings[8]; document.getElementById("humid1_1").innerHTML = arrayOfStrings[9]; document.getElementById("temp1_2").innerHTML = arrayOfStrings[10]; document.getElementById("humid1_2").innerHTML = arrayOfStrings[11]; document.getElementById("temp1_3").innerHTML = arrayOfStrings[12]; document.getElementById("humid1_3").innerHTML = arrayOfStrings[13]; document.getElementById("temp1_4").innerHTML = arrayOfStrings[14]; document.getElementById("humid1_4").innerHTML = arrayOfStrings[15]; document.getElementById("temp1_5").innerHTML = arrayOfStrings[16]; document.getElementById("humid1_5").innerHTML = arrayOfStrings[17]; document.getElementById("temp1_6").innerHTML = arrayOfStrings[18]; document.getElementById("humid1_6").innerHTML = arrayOfStrings[19]; document.getElementById("temp1_7").innerHTML = arrayOfStrings[20]; document.getElementById("humid1_7").innerHTML = arrayOfStrings[21]; document.getElementById("temp1_8").innerHTML = arrayOfStrings[22]; document.getElementById("number").innerHTML = arrayOfStrings[23];
for(var i = 1 ; i < 9 ; i++) if(arrayOfStrings[23+i] == "1") document.getElementById("led_"+i).setAttribute("class","button_enabled"); else document.getElementById("led_"+i).setAttribute("class","button_disabled"); } } } } request.open("GET", "ajax_flame" + nocache, true); request.send(null); setTimeout('GetFlameState()', 1000); } function onClick(pin){ var request = new XMLHttpRequest(); request.open("GET", "\setpin?pin=" + pin, false); request.send(null); } </script>
<!скрипт вывода даты и текущего времени>
<b><center>
<script type="text/javascript"> function clock() { var d = new Date(); var month_num = d.getMonth() var day = d.getDate(); var hours = d.getHours(); var minutes = d.getMinutes(); var seconds = d.getSeconds();
month=new Array("января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря");
if (day <= 9) day = "0" + day; if (hours <= 9) hours = "0" + hours; if (minutes <= 9) minutes = "0" + minutes; if (seconds <= 9) seconds = "0" + seconds;
date_time = "Сегодня - " + day + " " + month[month_num] + " " + d.getFullYear() + " г. Текущее время - "+ hours + ":" + minutes + ":" + seconds; if (document.layers) { document.layers.doc_time.document.write(date_time); document.layers.doc_time.document.close(); } else document.getElementById("doc_time").innerHTML = date_time; setTimeout("clock()", 1000); } </script> </b></center>
<! Текстовые поля - прямоугольники> <style type="text/css"> #Us, #Is, #Ps, #Fs, #control, #Tout, #Bout, #Vout, #Zout, #temp1_1, #humid1_1, #temp1_2, #temp1_3, #temp1_4, #temp1_5, #temp1_6, #temp1_7, #temp1_8, #humid1_2, #humid1_3, #humid1_4, #humid1_5, #humid1_6, #humid1_7, #number { margin: 3px 3px 3px 3px; width: 90px; height: 20px; border-radius: 10px; /* закругление ячеек */ font-size: 12pt; font-weight: bold; color: white; text-align: center; padding: 3px; /* Поля вокруг содержимого ячеек */ } </style>
<! Дата и время> <style type="text/css"> #doc_time{ margin: 10px 10px 10px 10px; width: 80px; height: 60px; font-size: 12pt; font-weight: bold; color: Blue; text-align: center; padding: 1px; /* Поля вокруг содержимого ячеек */ }
</head>
<body>
<!=======================================================================================================>
<BR>
<table border=1 bgcolor="#FFFFFF" bordercolor="#548DD4"cellpadding=5 cellspacing=5 align=center background= "images/nebo.jpg">
<!==ЗАГОЛОВОК==>
<tr> <td colspan="8"> <center><strong><span style="color: rgb(0, 0, 255);">Система домашней автоматизации Aduino</span></center>
<center><strong><span style="color: rgb(0, 0, 255);" id="doc_time"></span></center> <script type="text/javascript">clock();</script> </td> </tr>
<!==ПЕРВАЯ СТРОКА МЕНЮ==>
<tr>
<! Параметры сети и время> <tr> <td><center><b>Напряжение <br> в сети </b></center> <br> <div id="Us" ></div></td> <td><center><b>Ток в сети </b></center> <br> <div id="Is" ></div></td> <td><center><b>Потребляемая <br> мощность </b></center> <br> <div id="Ps" ></div></td> <td><center><b>Частота сети </b></center> <br> <div id="Fs" ></div></td> <td><center><b>Температура <br> на улице </b></center> <br> <div id="Tout" ></div></td> <td><center><b>Давление </b></center> <br> <div id="Bout" ></div></td> <td><center><b>Скорость <br> ветра </b></center> <br> <div id="Vout" ></div></td> <td><center><b>Направление <br> ветра </b></center> <br> <div id="Zout" ></div></td>
</tr>
<!==ВТОРАЯ СТРОКА МЕНЮ==>
<! Параметры температура влажности и давления> <tr>
<td><center><b>Температура <br> на балконе </b></center> <br> <div id="temp1_1"> </div></td> <td><center><b>Влажность <br> на балконе </b></center> <br> <div id="humid1_1"></div></td> <td><center><b>Температура <br> в детской </b></center> <br> <div id="temp1_2"> </div></td> <td><center><b>Влажность <br> в детской </b></center> <br> <div id="humid1_2"></div></td> <td><center><b>Температура <br> в кабинете </b></center> <br> <div id="temp1_3"> </div></td> <td><center><b>Влажность <br> в кабинете </b></center> <br> <div id="humid1_3"></div></td> <td><center><b>Температура <br> в спальне </b></center> <br> <div id="temp1_4"> </div></td> <td><center><b>Влажность <br> в спальне </b></center> <br> <div id="humid1_4"></div></td>
</tr>
<!==ТРЕТЬЯ СТРОКА МЕНЮ
<! Параметры температуры влажности итд> <tr>
<td><center><b>Температура <br> в гостинной</b></center> <br> <div id="temp1_5"> </div></td> <td><center><b>Влажность <br> в гостинной </b></center> <br> <div id="humid1_5"></div></td> <td><center><b>Температура <br> в погребе </b></center> <br> <div id="temp1_6"> </div></td> <td><center><b>Влажность <br> в погребе </b></center> <br> <div id="humid1_6"></div></td> <td><center><b>ххх <br> ххх </b></center> <br> <div id="temp1_7"> </div></td> <td><center><b>ххх <br> ххх </b></center> <br> <div id="humid1_7"></div></td> <td><center><b>ххх <br> ххх </b></center> <br> <div id="temp1_8"> </div></td> <td><center><b>Устройство <br> в запросе </b></center> <br> <div id="number"></div></td>
</tr>
<! Управление выходами контроллера> <tr> <td><center><b>Выход 1</b></center><div id="out1_1"></div></td>
<td><center><b>Выход 2</b></center><div id="out2_1"></div></td>
<td><center><b>Выход 3</b></center><div id="out3_1"></div></td>
<td><center><b>Выход 4</b></center><div id="out4_1"></div></td>
<td></td> <td></td> <td></td> <td></td> </tr>
<tr> <td><center><button type="button" id="led_1" class="button_disabled" onClick="onClick(1)">Кабинет </button></center></td> <td><center><button type="button" id="led_2" class="button_disabled" onClick="onClick(2)">Детская </button></center></td> <td><center><button type="button" id="led_3" class="button_disabled" onClick="onClick(3)">Спальня </button></center></td> <td><center><button type="button" id="led_4" class="button_disabled" onClick="onClick(4)">Гостинная </button></center></td> <td><center><button type="button" id="led_5" class="button_disabled" onClick="onClick(5)">Фонари </button></center></td> <td><center><button type="button" id="led_6" class="button_disabled" onClick="onClick(6)">Балкон </button></center></td> <td><center><button type="button" id="led_7" class="button_disabled" onClick="onClick(7)">ХХХ </button></center></td> <td><center><button type="button" id="led_8" class="button_disabled" onClick="onClick(8)">ХХХ </button></center></td> </tr>
</table>
</body> </html>
конкретно не работает функция ajax_flame я там даже включил изменение состояния светодиода нет ответа никакого не пашет хотя функция с кнопками работает.
Профиль
|
|
|
|
pavlov-sm
2016-05-05 12:09 #253
Вот умеют же некоторые .Это я к y2056 Если сумеете сделать то вам респект . И положите файлы для народа.У меня даже не формируется html. Пустой экран . И вы делаете как я понял на меге. Много выходов задействовано.и dht 11 вроде минусовую температуру не видят.И вроде часовая плата стоит у вас.
Ваша
Код <td><center><b>Температура <br> в спальне </b></center> <br> <div id="temp1_4"> </div></td> <td><center><b>Влажность <br> в спальне </b></center> <br> <div id="humid1_4"></div></td>
Из проекта
Код <td>--><td valign="center">Температура №1 </td><td><span id="temp1_txt"> 0</span> °C</td> <td><td valign="center">Влажность на улице</td><td><span id="humid_txt">0</span> %</td>
Может неправильно сформировано. не знаю .Я сам только учусь. Может быть не прав.
Профиль
|
|
|
|
y2056
2016-05-05 21:14 #254
Всем спасибо. Сам нашел свой косяк все офигенно заработало если у кого есть вопросы пишите помогу в силу своих знаний а пока вот что вышло
Добавлено (2016-05-05, 20:54) --------------------------------------------- pavlov-sm ответ к вам. мега у меня тупо как сервак просто на дуине не хватает памяти а так у меня мега по вай фаю, задействован модуль NRF2401 собирает все данные и управляет также выключателями как то так.
Добавлено (2016-05-05, 20:58) --------------------------------------------- pavlov-sm, да и часовой платы у меня нет время синхронизируется с компом
Добавлено (2016-05-05, 20:59) --------------------------------------------- Хочется конечно на малине это все реализовать она по шустрее но пока так.
Добавлено (2016-05-05, 21:01) --------------------------------------------- Администратор, вам тоже огромное спасибо на ваши данные я и опирался со скриптами пока у меня туговато но я нашел свой косяк. Но все равно вам спасибо. Материал оч нужный.
Добавлено (2016-05-05, 21:14) --------------------------------------------- косяк был здесь у меня а надо Код <body onload="GetFlameState()"> поэтому и не было обращения.
Сообщение отредактировал y2056 - Четверг, 2016-05-05, 21:15
Профиль
|
|
|
|
Администратор
2016-05-05 23:20 #255
y2056, Подскажи, как ты считываешь данные со счетчика электроэнергии. Очень интересно использовать.
Профиль
|
|