极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9961|回复: 2

w5100可以实现网页控制,但加上传感器后,就不能正常工作,,跪求!编译通过!

[复制链接]
发表于 2014-5-24 23:19:15 | 显示全部楼层 |阅读模式
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <Ethernet.h>
int tempPin = 2;//wendu
float temperature = 0;


int wetPin = 3;//shidu  
float wet  = 0;



int deepPin =1;//shenidu
float deep  = 0;  



class function{

public:
void sendHTML(EthernetClient client);
void sendHTML2(EthernetClient client);
void sendHTML21(EthernetClient client);
void sendHTML3(EthernetClient client);
void sendHTML4(EthernetClient client);
};
function f;



byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,111);
IPAddress gateway(192,168,1, 1);
IPAddress subnet(255, 255, 255, 0);
EthernetServer server(80);

LiquidCrystal_I2C lcd(0x27,20,4);



void setup()
{
  pinMode( 2 , OUTPUT);//wendu
  pinMode( 3 , OUTPUT);//shidu
   pinMode( 4 , OUTPUT);//shendu
    lcd.init();

  lcd.backlight();
  
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip,gateway,subnet);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());

Serial.begin(9600);
}
  
void loop ()                     
{
  EthernetClient client = server.available();
   tempTest();
   wetTest();
   deepTest();
   lcd.setCursor(2,0);
    lcd.print("Temp:");
    lcd.setCursor(8,0);
     lcd.print(temperature);
     
     
      lcd.setCursor(4,1);
     lcd.print("RH:");
    lcd.setCursor(8,1);
  lcd.print(wet);
  
    lcd.setCursor(2,2);
     lcd.print("Deep:");
    lcd.setCursor(8,2);
  lcd.print(deep);



if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
       // Serial.write(c);
        
        if (c == '\n' && currentLineIsBlank) {         
           f.sendHTML(client);         
          f.sendHTML2(client);  
         f.sendHTML21(client);  
          f.sendHTML3(client);  
          f.sendHTML4(client);  
           String POST = "";         
           while(client.available()){           
            c = client.read();
            // save the variables somewhere
            POST += c;
           }//while
         
           if(POST !=""){
            Serial.println(POST);
            char webCmd = POST[POST.length()-1];
            executeCmd(webCmd,client);         
            }         
           break;
        }   //if (c == '\n' && currentLineIsBlank)   
               
        if (c == '\n') {         
          currentLineIsBlank = true;
        }else if (c != '\r') {         
          currentLineIsBlank = false;
          }
      }//if (client.available())
    }//while (client.connected())
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
    Serial.println("client disonnected");
  }//if(client)

    delay(500);
}


void executeCmd(char cmd ,EthernetClient client){
         
          switch (cmd){
          case 1:Serial.println("cccc");break;
          case 2:break;
          case 3:break;
          case 4:break;
          case 5:break;
          default:break;
          }
client.println("<script language='javascript'>alert('Done Successfully!')</script>");

}









void tempTest(){
  
long valtemp = 0;

   valtemp=analogRead(tempPin);
  temperature = (valtemp*0.0048828125*100);  
   Serial.print("Tep=  ");
   Serial.print(temperature);
   Serial.println(" C");
   if ( temperature  > 25 )
{
digitalWrite( 2 , HIGH );

}
else
{
digitalWrite( 2 , LOW );
}
  
}






void wetTest(){
float valwet = 0;
valwet=analogRead(wetPin);
  
   wet = (valwet*0.0048828125*100);  
   Serial.print("shidu=  ");
   Serial.println(wet);
  
   if ( wet  > 23 )
{
digitalWrite( 3 , LOW );

}
else
{

digitalWrite( 3, HIGH );
}

}



void deepTest(){
long  valdeep = 0;
        
valdeep=analogRead(deepPin);
  
deep = valdeep/100;
   Serial.print("Deep=  ");
   Serial.print(deep);
   Serial.println(" cm");
   if ( deep  > 8 )
{
digitalWrite( 4 , LOW );

}
else
{
digitalWrite( 4, HIGH );
}
  
}



void function::sendHTML(EthernetClient client){

      
client.println("<html xmlns='http://www.w3.org/1999/xhtml'>");
client.println("<head><meta http-equiv='Content-Type' content='text/html; charset=gb2312' />");
client.println("<head><meta http-equiv='refresh' content='20'/>");
client.println("<title>Smart vagetables shed management system</title></head>");

client.println("<style type='text/css'>#titletext {position: absolute;");
        client.println("font-family: 'Times New Roman', Times, serif;");
        client.println("font-size: 40px;top: 38px;left: 300px;}");


client.println("#tablee{position:absolute;");
client.println("font-family: 'Times New Roman', Times, serif;");
       
client.println("        top: 189px;left: 445px;}");
       
       
client.println("        #formm{position:absolute;");
client.println("font-family: 'Times New Roman', Times, serif;");
       
client.println("top: 250px;left: 445px;}</style>");

}


void function::sendHTML2(EthernetClient client){
client.println("<body>");
client.println("<div id='titletext'> <font  id='biaoti' color='#000000'>");
client.println("<b>Smart vagetables shed management");
}

void function::sendHTML21(EthernetClient client){

  client.println("</b></font></div>");
client.print("<div id='tablee'>");
client.println("<table border=' green ''3px'  id='info'>");
client.println("<tr><td><font color='#FF00CC'>Temp:</font></td>");
client.println("<td><font color='#FF00CC'>NN</font></td> </tr>");       
client.println("<tr> <td><font color='#FF00CC'>HR:</font></td>");
client.println("<td><font color='#FF00CC'>NN</font></td> </tr>");       



}

void function::sendHTML3(EthernetClient client){
  
  client.println("<tr> <td><font color='#FF00CC'>Deep:</font></td>");
   client.println("<td><font color='#FF00CC'>NN</font></td></tr></table></div>");

client.println("<div id='formm'>");
client.println("<form  action='http://192.168.1.111:80' method='post'>");

client.println("<input type='hidden' name='cmd' value='1' /><br /><br />");


}

void function::sendHTML4(EthernetClient client){

client.println("<input type='submit' value='OPEN...' /></form>");


client.println("<form  action='' method='post'>");

client.println("<input type='hidden'  name='cmd' value='2' />");

client.println("<input type='submit' value='CLOSE...' /></form></div></body></html>");

}


  
  



回复

使用道具 举报

 楼主| 发表于 2014-5-24 23:23:47 | 显示全部楼层
加上传感器后,,LCD一闪一闪,,传感器失灵,,网页更是大不开,,
回复 支持 反对

使用道具 举报

发表于 2014-5-25 03:41:14 | 显示全部楼层
避开4脚,好像4脚用于网卡的片选。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-5 21:16 , Processed in 0.041098 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表