Inviato 2 Maggio 20159 anni Giorno a tutti, ho alcuni problemi con questo programma e volevo sapere se qualcuno di voi avesse qualche suggerimento Grazie mille #include <SPI.h> #include <Ethernet.h> #include <LiquidCrystal.h> #include <math.h> #define LED1 12 #define LED2 11 LiquidCrystal lcd(2, 3, 4, 5, 6, 7); int TempI= A0; double v;/*voltaggio tra 0 e 1023*/ double volt;/* voltaggio reale tra o e 5 volt*/ double Rt;/* resistenza del termistore*/ double R1=10000;/*valore resistenza in ohm che abbiamo messo noi (sia per termostato da 5 che da 10 k)*/ double temp;/* temperatura in Kelvin*/ double Temperatura; int stato =0; byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192, 168, 1, 68 }; byte gateway[] = { 192, 168, 1, 1 }; byte subnet[] = { 255, 255, 255, 0 }; EthernetServer server(9000); String readString; String newValue; void setup() { lcd.begin(16, 2); Serial.begin(9600); pinMode(8, OUTPUT); pinMode(13, OUTPUT); Ethernet.begin(mac, ip, gateway, subnet); server.begin(); } void loop() { v=analogRead(TempI);/*leggiamo il valore della tensione ai capi di R1*/ volt=5*v/1023;// riportiamo la tensine tra 0 e 5 volt con una proporzione Rt=R1*(5/volt-1);//resistenza del termistore temp=1/(0.001319+(0.000234125*log(Rt))+(0.0000000876741*log(Rt)*log(Rt)*log(Rt)));/*calcolo la temperatura con la formula di Steinhart-Hart*/ Temperatura=temp-273.15;// gradi Chelsius if(Temperatura>20){ digitalWrite(LED1, HIGH);} if(Temperatura<19){ digitalWrite(LED2, LOW);} lcd.setCursor(0, 0); lcd.print("Temp: "); lcd.print(Temperatura);/*stampo il valore della teperatura*/ delay(1000);/*ritardo di un secondo*/ EthernetClient client = server.available(); while (client.connected()) { if (client.available()) { readString=client.readStringUntil('\n'); } if (readString=="?button8on" ){ digitalWrite(8, HIGH); } if (readString=="?button8off" ){ digitalWrite(8, LOW); } if (readString=="?button13on" ){ digitalWrite(13, HIGH); } if (readString=="?button13off" ){ digitalWrite(13, LOW); } } newValue=""; readString=""; }
Inviato 2 Maggio 20159 anni Non capisco a cosa serva la libreria ethernet, non la vedo significativamente utile per ora salvo futuri incrementi di programmazione
Giorno a tutti, ho alcuni problemi con questo programma e volevo sapere se qualcuno di voi avesse qualche suggerimento
Grazie mille
#include <SPI.h>
#include <Ethernet.h>
#include <LiquidCrystal.h>
#include <math.h>
#define LED1 12
#define LED2 11
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
int TempI= A0;
double v;/*voltaggio tra 0 e 1023*/
double volt;/* voltaggio reale tra o e 5 volt*/
double Rt;/* resistenza del termistore*/
double R1=10000;/*valore resistenza in ohm che abbiamo messo noi (sia per termostato da 5 che da 10 k)*/
double temp;/* temperatura in Kelvin*/
double Temperatura;
int stato =0;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 68 };
byte gateway[] = { 192, 168, 1, 1 };
byte subnet[] = { 255, 255, 255, 0 };
EthernetServer server(9000);
String readString;
String newValue;
void setup() {
lcd.begin(16, 2);
Serial.begin(9600);
pinMode(8, OUTPUT);
pinMode(13, OUTPUT);
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
}
void loop() {
v=analogRead(TempI);/*leggiamo il valore della tensione ai capi di R1*/
volt=5*v/1023;// riportiamo la tensine tra 0 e 5 volt con una proporzione
Rt=R1*(5/volt-1);//resistenza del termistore
temp=1/(0.001319+(0.000234125*log(Rt))+(0.0000000876741*log(Rt)*log(Rt)*log(Rt)));/*calcolo la temperatura con la formula di Steinhart-Hart*/
Temperatura=temp-273.15;// gradi Chelsius
if(Temperatura>20){
digitalWrite(LED1, HIGH);}
if(Temperatura<19){
digitalWrite(LED2, LOW);}
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(Temperatura);/*stampo il valore della teperatura*/
delay(1000);/*ritardo di un secondo*/
EthernetClient client = server.available();
while (client.connected()) {
if (client.available()) {
readString=client.readStringUntil('\n');
}
if (readString=="?button8on" ){
digitalWrite(8, HIGH);
}
if (readString=="?button8off" ){
digitalWrite(8, LOW);
}
if (readString=="?button13on" ){
digitalWrite(13, HIGH);
}
if (readString=="?button13off" ){
digitalWrite(13, LOW);
}
}
newValue="";
readString="";
}