Requisicao http via esp8266+arduino


#1

Galera, estou fazendo um projeto em que basicamente eu preciso obter dados de um webservice.
não achei nenhum bom exemplo de como dar esse get no servidor e obter os dados.
alguem tem um codigo exemplo?
Grato !


#2

Salve, também estou interessado nisso :slight_smile:


#3

eu também estou nessa tentativa seu obter algum sucesso nessa empreitada repasso para vcs.


#4

Se vocês programarem o ESP8266 pela IDE do Arduino, podem usar o exemplo da biblioteca httpClient:


`/**

  • BasicHTTPClient.ino
  • Created on: 24.05.2015

*/

#include <Arduino.h>

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>

#include <ESP8266HTTPClient.h>

#define USE_SERIAL Serial

ESP8266WiFiMulti WiFiMulti;

void setup() {

USE_SERIAL.begin(115200);

// USE_SERIAL.setDebugOutput(true);

USE_SERIAL.println();
USE_SERIAL.println();
USE_SERIAL.println();

for(uint8_t t = 4; t > 0; t--) {
    USE_SERIAL.printf("[SETUP] WAIT %d...\n", t);
    USE_SERIAL.flush();
    delay(1000);
}

WiFiMulti.addAP("SSID", "PASSWORD");

}

void loop() {
// wait for WiFi connection
if((WiFiMulti.run() == WL_CONNECTED)) {

    HTTPClient http;

    USE_SERIAL.print("[HTTP] begin...\n");
    // configure traged server and url
    //http.begin("192.168.1.12", 443, "/test.html", true, "7a 9c f4 db 40 d3 62 5a 6e 21 bc 5c cc 66 c8 3e a1 45 59 38"); //HTTPS
    http.begin("192.168.1.12", 80, "/test.html"); //HTTP

    USE_SERIAL.print("[HTTP] GET...\n");
    // start connection and send HTTP header
    int httpCode = http.GET();
    if(httpCode) {
        // HTTP header has been send and Server response header has been handled
        USE_SERIAL.printf("[HTTP] GET... code: %d\n", httpCode);

        // file found at server
        if(httpCode == 200) {
            String payload = http.getString();
            USE_SERIAL.println(payload);
        }
    } else {
        USE_SERIAL.print("[HTTP] GET... failed, no connection or no HTTP server\n");
    }
}

delay(10000);

}

` Sinceramente, se vocês não estão utilizando mais de 1 pino analógico no Arduino, não vale a pena utilizar Arduino, porque o ESP8266 é um processador RISC de 80MHz independente, rodando um RTOS (Real Time Operating System).

No meu site (http://www.dobitaobyte.com.br) eu tenho muitos tutoriais dedicados a SP826, sugiro uma visita.

Se realmente vocês precisam utilizar vários pinos analógicos, então podem fzer interface com um Arduino Pro Mini (14 reais aproximadamente) ou um conversor AD (que custa entre 22 e 35 reais, por isso sugeri primeiro o Arduino pra ADC).

E por fim, se não estiverem fazendo leitura analógica, o ESP8266-01 tem 2 pinos de GPIO e o NodeMCU tem um monte. Ainda, tem o Wemos D1 e Wemos D1 mini. O Wemos D1 suporta inclusive alguns shields Arduino (atentem-se sempre ao nível lógico e corrente).