This is my code on arduino:
` delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
break;
return;
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
client.println("{\"temperature\": ");
client.println(t);
client.println(",\"humidity\": ");
client.println(h);
client.println("}");`
What is the problem?
Full Code:
`#include <SPI.h>
include <Ethernet.h>
include "DHT.h"
byte mac[] = { 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB }; //physical mac address
byte ip[] = { 192, 168, XX, XX }; // ip in lan
byte gateway[] = { 192, 168, XX, XX }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port
String readString;
int p1 = 30, p2 = 13, p3 = 31, menu = 0;
//DHT
define DHTPIN 2
define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
//////////////////////
void setup() {
//enable serial data print
Serial.begin(9600);
//DHT
dht.begin();
//Pinos de Saida
pinMode(30, OUTPUT); //pin selected to control
pinMode(31, OUTPUT); //pin selected to control
pinMode(13, OUTPUT); //pin selected to control
//start Ethernet
Ethernet.begin(mac, ip, gateway, gateway, subnet);
server.begin();
}
void loop() {
// 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 My Homie</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<H1>Simple Arduino button PIN 30 e 13</H1>");
client.println("<a href=\"/?o1\">ON</a>");
client.println("<a href=\"/?f1\">OFF</a>");
client.println("<a href=\"/?o2\">ON</a>");
client.println("<a href=\"/?f2\">OFF</a>");
client.println("<a href=\"/weather\">weather</a>");
client.println("</BODY>");
client.println("</HTML>");
////////////////////// control Menu
if (readString.startsWith("GET /?o1")) {
menu = 1;
} else if (readString.startsWith("GET /?f1")) {
menu = 2;
} else if (readString.startsWith("GET /?o2")) {
menu = 3;
} else if (readString.startsWith("GET /?f2")) {
menu = 4;
} else if (readString.startsWith("GET /weather")) {
menu = 5;
}
///////////////////// control Switch
switch (menu) {
///////////////////// control arduino pin 30
case 1 :
digitalWrite(p1, true); // set pin 30 high
Serial.println("Bedroom Lamp On");
break;
case 2 :
digitalWrite(p1, false); // set pin 30 low
Serial.println("Bedroom Lamp Off");
break;
///////////////////// control arduino pin 13
case 3 :
digitalWrite(p2, true); // set pin 13 high
Serial.println("Living Room Lamp On");
break;
case 4 :
digitalWrite(p2, false); // set pin 13 low
Serial.println("Living Room Lamp Off");
break;
///////////////////// control arduino pin XX
case 5 :
Serial.println("Pegando Temp e Humd");
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
break;
return;
}
float hic = dht.computeHeatIndex(t, h, false);
Serial.print("Humidity: ");
Serial.print(h);
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
client.println("{\"temperature\": ");
client.println(t);
client.println(",\"humidity\": ");
client.println(h);
client.println("}");
break;
}
//clearing string for next read
delay(1);
//stopping client
client.stop();
readString = "";
menu = 0;
}
}
}
}
}`