Форум

Новые сообщения · Участники · Правила форума
Форум » Arduino » Наши проекты » Arduino и Ethernet Shield W5100 (Arduino и Ethernet Shield W5100 обсуждение цикла статей.)
Arduino и Ethernet Shield W5100
Администратор
Администратор
иконка админ
2015-12-08 16:13 #1
Arduino и Ethernet Shield W5100 обсуждение цикла статей.

Часть 1 - Начало проекта.
Часть 2 - Добавлено динамическое обновление данных и работа с SD картой.
Часть 3 - Добавлено оформление страницы.
Часть 4 - Добавлено управление реле.
Часть 5 - Добавлен регулятор мощности нагрузки в виде ползунка.
NEW!!! Часть 6 - Реализация включения реле по таймеру

Профиль

Администратор
TehnopageTeam
щит админа


Vetrinus
Vetrinus
2016-04-19 10:23 #241
Здравствуйте. 
Есть у меня ряд очень странных сложностей. Я несколько изменил скетч, дабы убрать пока что ненужный мне функционал, но у меня есть ряд фундаментальных проблем. Приведу скетч, дабы было ясно, что происходит:


Проблема первая:


Код
Starting SD initiations...
Chip select done
Searching index.htm... Found
Searching UI.css... Found
Searching script.js... Found
SD card init DONE
GET / HTTP/1.1
Host: 192.168.0.177
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,-AgяStarting SD initiations...
Chip select done
Searching index.htm... Found
Searching UI.css... Found
Searching script.js... Found
SD card init DONE


Еще не полностью прочитан запрос, но каким-то боком вылезла функция sd_info(). Я пробовал ее убирать ее вызов, ситуация все та же. Есть идеи, каким боком вообще SD карта попадает сюда? Я же слушаю буфер карты и пишу в буфер контроллера.


Код
while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.print(c);
        if (req_index < (REQ_BUF_SZ - 1)) {
          HTTP_req[req_index] = c; // save HTTP request character
          req_index++;
        }

Профиль
gawmer
gawmer
2016-04-19 15:31 #242
sd_init(); на SD.begin(4);

Профиль
Vetrinus
Vetrinus
2016-04-19 16:40 #243
Цитата 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
gawmer
2016-04-19 18:03 #244
ну вот как вам обьяснить , в скетче то ошибок нет, вы хотели инициализацию карты , вы ее получили, а карту то стартовать надо да, посмитрите тут примеры а то зависните и забросите усее.

Профиль

gawmer
TehnopageTeam
щит админа

Интересные статьи

Vetrinus
Vetrinus
2016-04-20 07:57 #245
Ну, а каков должен быть алгоритм?
Приведу свое понимание:
1) Поднимаем сеть
2) запускаем SD карту, spi select slave 4 пин
3)Смотрим, есть ли клиенты
4) Если есть, смотрим буфер шилда
5) Если он не пуст, переписываем в программный буфер для парсинга
6) Парсим строку и отдаем нужный файл
7) либо отдаем данные для ajax
8) Закрываем соединения
9) Очищаем буфер шилда

Но у меня контроллер перезагружается на этапе чтения буфера шилда. 
Setup start.. в ком порту. Причем тут SD карта вообще, ее даже близко в этом месте нет.
Снизойдите, пожалуйста. Хотябы номер пункта напишите, в котором ошибка, по вашему мнению.

Профиль
gawmer
gawmer
2016-04-20 12:01 #246
Если вы хотите спрятать пароль авторизации , у меня мысль такая- создать файл с именем пароля на сд и считывать имя файла для проверки, а не строку в файле или сам фаил на стороне , совпало пускаем , нет идем мимо

Профиль
Vetrinus
Vetrinus
2016-04-20 16:23 #247
А какая разница, с чем сравнивать, если и так и так источник находится на контроллере. А то, что сравнивать, в запросе, который не интерпретируется, т.к. контроллер перезагружается с нуля во время записи запроса в буфер...

Профиль
gawmer
gawmer
2016-04-21 13:04 #248
Профиль
Makumba
Makumba
2016-04-29 23:55 #249
Добрый вечер! Нужна ваша помощь. Делаю проект такой как в теме, только использую два датчик газа 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>

Профиль

Makumba
TehnopageTeam
щит админа


Makumba
Makumba
2016-04-30 00:28 #250

Добавлено (2016-04-30, 00:28)
---------------------------------------------
Когда отключаю плату Ethernet и по отдельности проверяю датчики все работают, причем mq-2 показывает всегда примерно 135 и когда подводишь источник газа быстро повышается, а mq-6 показывает примерно 400 и повышается только до 500 когда долго держать. Но как сделать чтоб когда и Ethernet ,была подключена и данные были точные? Когда несколько датчиков и к ардуино, тоже значения уже большая погрешность на mq-2 начинается с 200 и не сильно растет при воздействии газом. Возможно не хватает напряжения, так понимаю?


Прикрепления: 7667554.jpg (92.1 Kb) · 8368764.jpg (234.5 Kb) · 6105746.jpg (198.1 Kb)

Профиль
ilnar
ilnar
2016-04-30 13:18 #251
Makumba, попробуйте отдельное питание, через усб питание похоже не хватает.

Профиль
gawmer
gawmer
2016-04-30 21:30 #252
Вот в этой части скрипта

Указано 5 а вы обьявили 9
так будьте любездны смените уж как правильно должно быть

Сообщение отредактировал gawmer - Суббота, 2016-04-30, 21:31
Профиль
Soichi
Soichi
2016-05-01 17:11 #253
Всем привет. У меня в зале люстра управляется двумя реле, первое реле отвечает за одну лампу, второе за остальные две. Как переделать код так, чтобы при включении первых двух кнопок включалась и третья, соответственно при включении\выключении третьей включались\выключались первые две. Правильнее будет завести под это дело какую то другую функцию?

До этого для управления использовал связку w5100 и Mega, но без участия SD.
Ваш проект понравился гораздо больше, но вот пока не во всё врубаюсь ^^'


Прикрепления: 3312543.png (4.2 Kb)

Сообщение отредактировал Soichi - Воскресенье, 2016-05-01, 17:12
Профиль

Soichi
TehnopageTeam
щит админа


y2056
y2056
2016-05-04 12:38 #254
Господа всем доброго времени суток. Прошу помощи вашей. Взял пробную страницу по работе с датчиками и кнопками с веб интерфейса с этого сайта. Попробовал все отлично работает. Потом изменил дописал как себе надо и у меня перестал работать вывод инфо с датчиков. Кнопки работают, кто может подскажите плиз че не так прошивку и 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
pavlov-sm
2016-05-05 12:09 #255
Вот умеют же некоторые .Это я к 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>


Может неправильно сформировано. не знаю .Я сам только учусь. Может быть не прав.

Профиль
Форум » Arduino » Наши проекты » Arduino и Ethernet Shield W5100 (Arduino и Ethernet Shield W5100 обсуждение цикла статей.)
Поиск: