• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z ustawieniem API w WeMos D1 R2
#1
Witam, mam problem z ustawieniem  Api z bitbay.net. Z użytym kodem wyświetla "$1.00" lub "$0.00" A chcę aby wyświetlał wartość "last"



Kod:
#include <ESP8266WiFi.h>
#include <LiquidCrystal_I2C.h>
#include <ArduinoJson.h>
#include <Wire.h>
#include "LCD.h"

// WiFi settings
const char* ssid     = "Redmi";          //replace with your SSID
const char* password = "internet!";      //replace with your PW


const char* host = "bitbay.net";   // API server

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

void setup() {
 

  Serial.begin(9600);
  int posizioneCursore=0;
  lcd.begin(20,4);
  lcd.print(" BITCOIN TICKER");
     
      delay(1000);
 
 
  lcd.clear();
  lcd.print("Connection");
  WiFi.begin(ssid, password);
 
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    lcd.setCursor(posizioneCursore,2);
    lcd.print(".");
    posizioneCursore++;
  }
  lcd.clear();
  lcd.print("WiFi connected!");
  delay(1000);
  lcd.clear();
  lcd.print("IP: ");
  lcd.print(WiFi.localIP());
  delay(1000);

}

void loop() {
 
 
  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    return;
  }
 
 
  String url = "/API/Public/BTCPLN/ticker.json";
 
 
  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" +
               "Connection: close\r\n\r\n");
  delay(100);
 

  String answer;
  while(client.available()){
    String line = client.readStringUntil('\r');
    answer += line;
  }

  client.stop();

 
  String jsonAnswer;
  int jsonIndex;

  for (int i = 0; i < answer.length(); i++) {
    if (answer[i] == '{') {
      jsonIndex = i;
      break;
    }
  }

 
  jsonAnswer = answer.substring(jsonIndex);
  jsonAnswer.trim();

 
  int rateIndex = jsonAnswer.indexOf("rate_float");
  String priceString = jsonAnswer.substring(rateIndex + 12, rateIndex + 18);
  priceString.trim();
  float price = priceString.toFloat();


  lcd.clear();
  lcd.print("BTC/PLN: ");
  lcd.print(price);
 

  // Attendi 5 secondi prima di ripetere la richiesta
  delay(5000);
}
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości