Arduino - Ethernet Shield - Server connection

Asked

Viewed 155 times

0

I have a server and an Arduino with a temperature sensor, but I’m not able to do a POST of the values taken by the sensor on the server page.

Can anyone help me? Follow the code.

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

byte mac []= { 0x58, 0x3B, 0xBB, 0xFD, 0x1B, 0x79 }; //MAC ADDRESS 
IPAddress ip(172,16,27,88);          //Define o endereco IP
IPAddress gateway(172,16,0,234);     //Define o gateway
IPAddress subnet(255, 255, 0, 0); //Define a máscara de rede
EthernetClient client;

#define DHTPIN 2 // pino do sensor
#define DHTTYPE DHT11 // tipo do sensor nosso caso DHT11
DHT dht(DHTPIN, DHTTYPE);

long previousMillis = 0;
unsigned long currentMillis = 0;
long interval = 1000; // intervalo de leitura(milisegundos)

int t = 0;  // temperatura
int h = 0;  // umidade
String data;

void setup() { 
  Serial.begin(115200);
  Ethernet.begin(mac,ip,gateway,subnet);
  /*if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP"); 
  }*/

  dht.begin(); 
  delay(10000); // certo tempo para o sensor se ambientar no local

  h = (int) dht.readHumidity(); 
  t = (int) dht.readTemperature(); 

  data = "";
}

void loop(){

    h =  dht.readHumidity();
    t =  dht.readTemperature();

  data = '"';
  data.concat("{");
  data.concat('"');
  data.concat("temperatura");
  data.concat('"');
  data.concat(":");
  data.concat('"');
  data.concat(t); // concatenando os valores em uma unica string
  data.concat('"');
  data.concat(", ");
  data.concat('"');
  data.concat("umidade");
  data.concat('"');
  data.concat(":");
  data.concat('"');
  data.concat(h);
  data.concat('"');
  data.concat("}");
  data.concat('"');
  // exibir a string com os daados e a leitura no serial
  Serial.println(data);
  Serial.print("Leitura = ");
  Serial.print(t);
  Serial.print(" (celsius), ");
  Serial.print(h);
  Serial.println(" (% umidade)");
  //if (client.connect("http://172.16.254.11/kit-iot/",8080)) {
    if (client.connect("172.16.254.11",80)) {
      client.println("POST /kit-iot/sensores/1 HTTP/1.1"); 
      client.println("Host: 172.16.254.11");
      client.println("Content-Type: application/x-www-form-urlencoded"); 
      client.print("Content-Length: "); 
      client.println(data.length()); 
      client.println(); 
      client.print(data); 
  } 
  else{
    Serial.println("Erro de conexao...");
  }

  if (client.connected()) { 
    client.stop();  // desconectar
  }

  delay(300000); // esperar 5 minutos
}
  • Put where you took the example, that I think we could help you better.

  • Hello Diego, I just managed to settle here a little while ago. Thank you very much.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.