ds18b20 вывод температуры на web

sluggard
Offline
Зарегистрирован: 19.01.2013

Добрый день уважаемые!

Посмотрите пожалуйста мой код, хочу чтоб при заходе на веб страницу ардуины выводилось показание температуры, но что то не выходит каменный цветок...

#include <OneWire.h>
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 0, 111 }; // ip in lan
byte gateway[] = { 192, 168, 0, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port

int valReley1 = 0;

OneWire  ds(10);  // линия 1-Wire будет на pin 10
  
String readString; 

//////////////////////

void setup(){


  //start Ethernet
  Ethernet.begin(mac, ip, gateway, gateway, subnet);
  server.begin();

  //enable serial data print 
  Serial.begin(9600); 
  Serial.println("web temp test 1.0"); // so I can keep track of what is loaded
}

void loop(){

  byte i;
  byte present = 0;
  byte data[12];
  byte addr[8];
   
  if ( !ds.search(addr)) {
      Serial.print("No more addresses.\n");
      ds.reset_search();
  }
 
  if ( OneWire::crc8( addr, 7) != addr[7]) {
      Serial.print("CRC is not valid!\n");
  }
   
  if ( addr[0] != 0x10) {
      Serial.print("Device is not a DS18S20 family device.\n");
  }
 
  ds.reset();
  ds.select(addr);
  ds.write(0x44,1);         // запускаем конвертацию
   
  delay(1000);     // скорее всего достаточно 750ms
  // we might do a ds.depower() here, but the reset will take care of it.
   
  present = ds.reset();
  ds.select(addr);   
  ds.write(0xBE);         // считываем ОЗУ датчика
 
  for ( i = 0; i < 9; i++) {           // обрабатываем 9 байт
    data[i] = ds.read();
  }
   
  // высчитываем температуру :)
  int HighByte, LowByte, TReading, Tc_100;
  LowByte = data[0];
  HighByte = data[1];
  TReading = (HighByte << 8) + LowByte;
  Tc_100 = TReading/2;
  Serial.print(" T = ");Serial.print(Tc_100);
  Serial.println();

  
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();

        //read char by char HTTP request
        if (readString.length() < 100) {

          //store characters to string 
          readString += c; 
          //Serial.print(c);
        } 
        
        //if HTTP request has ended
        if (c == '\n') {
          
          
          Serial.println(readString); //print to serial monitor for debuging 

          client.println("HTTP/1.1 200 OK"); //send new page
          client.println("Content-Type: text/html");
          client.println();

          client.println("<HTML>");
          client.println("<HEAD>");
          client.println("<TITLE>Arduino Bistab Relay Control</TITLE>");
          client.println("<meta http-equiv='refresh' content='30;URL=http://192.168.0.111/'>");
          client.println("</HEAD>");
          client.println("<BODY>");


          
          client.print("<hr>Температура = "); client.print(Tc_100);
          
          client.println("</BODY>");
          client.println("</HTML>");
 
          delay(1);
          //stopping client
          client.stop();

          //clearing string for next read
          readString="";

        }
      }
    }
  }
}

 

ustas
Offline
Зарегистрирован: 12.03.2012

Мало данных, чтобы помочь.

Что конкретно "не выходит"?

IP-адрес из нужной сети?

sluggard
Offline
Зарегистрирован: 19.01.2013

В порт данные о температуре выводятся, а вот веб не отображает страницу...

т.е. ситуация такая - порт молчит, как только загружаем страницу, в порт сыпятся показания температуры, но страница не загружается....