Merhaba.
Uzaktan bilgisayardan ortam sıcaklığını LM35 kontrollu olarak aşağıdaki kodlarla görebiliyorum. Ama, yapmak istediğim fakat bilgimin yetmediği başka birşey yapmak istiyorum. Oda şöyle, HTML'de form kullanarak (ya da PHP gibi başka bir yolu varsa fark etmez) form içine yazdığım sıcaklık değerini kodlarımın içine taşıyarak, set değeri oluşturmak yani verilen değişken ile röle çektirmek istiyorum. Bildiğiniz termostat yani.
Kodlar:
#include <EtherCard.h>
static byte macAdres[] = {0xDE,0xAD,0xBE,0xEF,0xFE,0xED};
byte Ethernet::buffer[800];
BufferFiller bfill;
void setup()
{
Serial.begin(9600);
Serial.println("DHCP TEST UYGULAMASI");
if(ether.begin(sizeof Ethernet::buffer,macAdres,10))
{
Serial.println("Ethernet kontrolu ile erisim saglandi");
}
else
{
Serial.println("Ethernet kontrolu ile erisim saglanamadi");
}
if(ether.dhcpSetup())//dhcp serverdan konfigurasyon alınır
{
Serial.println("DHCP konfigurasyon saglandi");
}
else
{
Serial.println("DHCP konfigurasyon saglanamadi");
}
ether.printIp("IP ADRES:\t",ether.myip);
ether.printIp("NetMAsk:\t",ether.netmask);
ether.printIp("GateWay:\t",ether.gwip);
}
static word girisSayfasi(){
word sicaklik;
float gerilim;
int sicaklikPin=A0;
pinMode (8,OUTPUT);
gerilim=analogRead(A0);
gerilim=(gerilim/1023)*5000;
sicaklik=gerilim/10,0;
if(sicaklik==21)
{digitalWrite(8,HIGH);delay(2000);}
else
{digitalWrite(8, LOW);}
bfill = ether.tcpOffset();
bfill.emit_p(PSTR
("<HTML>"
"<HEAD>"
"<meta http-equiv='refresh' content='1'/>"
"<title>SICAKLIK VERISI</title>"
"</HEAD>"
"<BODY><h1> Ortam isisi: $D derece</h1></BODY>"
"</HTML>")
,sicaklik);
return bfill.position();//kaç karakter yazdırılacağı verisi döndürülür.
}
void loop () {
word len = ether.packetReceive();
word pos = ether.packetLoop(len);
if (pos)
{
ether.httpServerReply(girisSayfasi());
}
}
gibidir. Teşekkür ederim.
Uzaktan bilgisayardan ortam sıcaklığını LM35 kontrollu olarak aşağıdaki kodlarla görebiliyorum. Ama, yapmak istediğim fakat bilgimin yetmediği başka birşey yapmak istiyorum. Oda şöyle, HTML'de form kullanarak (ya da PHP gibi başka bir yolu varsa fark etmez) form içine yazdığım sıcaklık değerini kodlarımın içine taşıyarak, set değeri oluşturmak yani verilen değişken ile röle çektirmek istiyorum. Bildiğiniz termostat yani.
Kodlar:
#include <EtherCard.h>
static byte macAdres[] = {0xDE,0xAD,0xBE,0xEF,0xFE,0xED};
byte Ethernet::buffer[800];
BufferFiller bfill;
void setup()
{
Serial.begin(9600);
Serial.println("DHCP TEST UYGULAMASI");
if(ether.begin(sizeof Ethernet::buffer,macAdres,10))
{
Serial.println("Ethernet kontrolu ile erisim saglandi");
}
else
{
Serial.println("Ethernet kontrolu ile erisim saglanamadi");
}
if(ether.dhcpSetup())//dhcp serverdan konfigurasyon alınır
{
Serial.println("DHCP konfigurasyon saglandi");
}
else
{
Serial.println("DHCP konfigurasyon saglanamadi");
}
ether.printIp("IP ADRES:\t",ether.myip);
ether.printIp("NetMAsk:\t",ether.netmask);
ether.printIp("GateWay:\t",ether.gwip);
}
static word girisSayfasi(){
word sicaklik;
float gerilim;
int sicaklikPin=A0;
pinMode (8,OUTPUT);
gerilim=analogRead(A0);
gerilim=(gerilim/1023)*5000;
sicaklik=gerilim/10,0;
if(sicaklik==21)
{digitalWrite(8,HIGH);delay(2000);}
else
{digitalWrite(8, LOW);}
bfill = ether.tcpOffset();
bfill.emit_p(PSTR
("<HTML>"
"<HEAD>"
"<meta http-equiv='refresh' content='1'/>"
"<title>SICAKLIK VERISI</title>"
"</HEAD>"
"<BODY><h1> Ortam isisi: $D derece</h1></BODY>"
"</HTML>")
,sicaklik);
return bfill.position();//kaç karakter yazdırılacağı verisi döndürülür.
}
void loop () {
word len = ether.packetReceive();
word pos = ether.packetLoop(len);
if (pos)
{
ether.httpServerReply(girisSayfasi());
}
}
gibidir. Teşekkür ederim.