#1 Re: Програмування Arduino » Парсер ARDUINOJSON6 $ » 2023-05-14 18:04:17

Дякую, запрацювало!
Напишіть мені в телеграм номер карти @batm_n

#2 Re: Програмування Arduino » Парсер ARDUINOJSON6 $ » 2023-05-14 12:15:22

Привіт!
Я ж правильно зрозумів, що ця бібліотека іде в комплекті з ESP8266?
Я просто зараз зайшов в папку і навіть не маю такої назви(WifiClientSecure & WifiClient)...
__
Є бібліотека WIFi
lib

#4 Програмування Arduino » Парсер ARDUINOJSON6 $ » 2023-05-14 09:23:12

c_rax
відповідей: 5

Привіт, треба виправити парсер, для роботи з API не підключається.
Розрахунок за виконану роботу відразу на карту.

___
ESP8266
WiFiClientSecure httpsClient;
___

09:06:32.197 -> connecting to russianwarship.rip
09:06:32.329 -> connection failed

// ===================================================
// https://russianwarship.rip/api/v2/statistics/latest
// ===================================================

void getStat() {  
  Serial.print("connecting to ");
  Serial.println(serverFuckrussian);

    if (!httpsClient.connect(serverFuckrussian, httpsPort)) {
      Serial.println("connection failed");
      return ;
    }

    String request = String("GET /api/v2/statistics/") + latest + " HTTP/1.1rn"+ 
                "Host: " + serverFuckrussian + "rnUser-Agent: ESP8266HTTPClient/1.1rnConnection: closernrn";

    
    if (!httpsClient.connected()) {
      Serial.println("connection lost");
      return ;
    }
  httpsClient.print(request);
  String response = "";
    while (httpsClient.connected()) {
  String line = httpsClient.readStringUntil('n');
    if (line == "r") {
    break;
    }
  }

  DynamicJsonDocument doc(1536);
  DeserializationError error = deserializeJson(doc, httpsClient);

  if (error) {
    Serial.print(F("deserializeJson() failed: "));
    Serial.println(error.f_str());
    return;
  }

  //const char* message = doc["message"]; // "The data were fetched successfully."

  JsonObject data = doc["data"];
  //const char* data_date = data["date"]; // "2023-05-05"
  //int data_day = data["day"]; // 436
  //const char* data_resource = data["resource"];

  int data_war_status_code = data["war_status"]["code"]; // 1
  const char* data_war_status_alias = data["war_status"]["alias"]; // "in_progress"

  JsonObject data_stats = data["stats"];
  long data_stats_personnel_units = data_stats["personnel_units"]; // 193210
  //int data_stats_tanks = data_stats["tanks"]; // 3710
  // int data_stats_armoured_fighting_vehicles = data_stats["armoured_fighting_vehicles"]; // 7224
  // int data_stats_artillery_systems = data_stats["artillery_systems"]; // 2978
  // int data_stats_mlrs = data_stats["mlrs"]; // 550
  // int data_stats_aa_warfare_systems = data_stats["aa_warfare_systems"]; // 304
  // int data_stats_planes = data_stats["planes"]; // 308
  // int data_stats_helicopters = data_stats["helicopters"]; // 294
  // int data_stats_vehicles_fuel_tanks = data_stats["vehicles_fuel_tanks"]; // 5916
  // int data_stats_warships_cutters = data_stats["warships_cutters"]; // 18
  // int data_stats_cruise_missiles = data_stats["cruise_missiles"]; // 947
  // int data_stats_uav_systems = data_stats["uav_systems"]; // 2540
  // int data_stats_special_military_equip = data_stats["special_military_equip"]; // 373
  // int data_stats_atgm_srbm_systems = data_stats["atgm_srbm_systems"]; // 4

  JsonObject data_increase = data["increase"];
  int data_increase_personnel_units = data_increase["personnel_units"]; // 620
  // int data_increase_tanks = data_increase["tanks"]; // 3
  // int data_increase_armoured_fighting_vehicles = data_increase["armoured_fighting_vehicles"]; // 8
  // int data_increase_artillery_systems = data_increase["artillery_systems"]; // 16
  // int data_increase_mlrs = data_increase["mlrs"]; // 3
  // int data_increase_aa_warfare_systems = data_increase["aa_warfare_systems"]; // 0
  // int data_increase_planes = data_increase["planes"]; // 0
  // int data_increase_helicopters = data_increase["helicopters"]; // 0
  // int data_increase_vehicles_fuel_tanks = data_increase["vehicles_fuel_tanks"]; // 30
  // int data_increase_warships_cutters = data_increase["warships_cutters"]; // 0
  // int data_increase_cruise_missiles = data_increase["cruise_missiles"]; // 0
  // int data_increase_uav_systems = data_increase["uav_systems"]; // 17
  // int data_increase_special_military_equip = data_increase["special_military_equip"]; // 3
  // int data_increase_atgm_srbm_systems = data_increase["atgm_srbm_systems"]; // 0


  string_stat = String("fr " + String(data_stats_personnel_units) + "(+" + String(data_increase_personnel_units + ")"));
  Serial.print("Personnel Units: ");
  Serial.println(string_stat);
  httpsClient.stop();
}

#5 Re: Апаратні питання » ArduinoJSON6 ESP8266 » 2023-05-07 14:54:50

Повинно працювати, згідно документації, але нажаль маю цю помилку..

void getStat() {
  //WiFiClientSecure httpsClient;
  httpsClient.setCACert(root_ca_cert);
  //httpsClient.setInsecure();
  
  Serial.print("connecting to ");
  Serial.println(serverFuckrussian);

    if (!httpsClient.connect(serverFuckrussian, httpsPort)) {
      Serial.println("connection failed");
      return ;
    }

    String request = String("GET /api/v2/statistics/") + latest + " HTTP/1.1rn"+ 
                "Host: " + serverFuckrussian + "rnUser-Agent: ESP8266HTTPClient/1.1rnConnection: closernrn";

    
    if (!httpsClient.connected()) {
      Serial.println("connection lost");
      return ;
    }
  httpsClient.print(request);
  String response = "";
    while (httpsClient.connected()) {
  String line = httpsClient.readStringUntil('n');
    if (line == "r") {
    break;
    }
  }

  DynamicJsonDocument doc(1536);
  DeserializationError error = deserializeJson(doc, httpsClient);

  if (error) {
    Serial.print(F("deserializeJson() failed: "));
    Serial.println(error.f_str());
    return;
  }

  //const char* message = doc["message"]; // "The data were fetched successfully."

  JsonObject data = doc["data"];
  //const char* data_date = data["date"]; // "2023-05-05"
  //int data_day = data["day"]; // 436
  //const char* data_resource = data["resource"];

  int data_war_status_code = data["war_status"]["code"]; // 1
  const char* data_war_status_alias = data["war_status"]["alias"]; // "in_progress"

  JsonObject data_stats = data["stats"];
  long data_stats_personnel_units = data_stats["personnel_units"]; // 193210
  //int data_stats_tanks = data_stats["tanks"]; // 3710
  // int data_stats_armoured_fighting_vehicles = data_stats["armoured_fighting_vehicles"]; // 7224
  // int data_stats_artillery_systems = data_stats["artillery_systems"]; // 2978
  // int data_stats_mlrs = data_stats["mlrs"]; // 550
  // int data_stats_aa_warfare_systems = data_stats["aa_warfare_systems"]; // 304
  // int data_stats_planes = data_stats["planes"]; // 308
  // int data_stats_helicopters = data_stats["helicopters"]; // 294
  // int data_stats_vehicles_fuel_tanks = data_stats["vehicles_fuel_tanks"]; // 5916
  // int data_stats_warships_cutters = data_stats["warships_cutters"]; // 18
  // int data_stats_cruise_missiles = data_stats["cruise_missiles"]; // 947
  // int data_stats_uav_systems = data_stats["uav_systems"]; // 2540
  // int data_stats_special_military_equip = data_stats["special_military_equip"]; // 373
  // int data_stats_atgm_srbm_systems = data_stats["atgm_srbm_systems"]; // 4

  JsonObject data_increase = data["increase"];
  int data_increase_personnel_units = data_increase["personnel_units"]; // 620
  // int data_increase_tanks = data_increase["tanks"]; // 3
  // int data_increase_armoured_fighting_vehicles = data_increase["armoured_fighting_vehicles"]; // 8
  // int data_increase_artillery_systems = data_increase["artillery_systems"]; // 16
  // int data_increase_mlrs = data_increase["mlrs"]; // 3
  // int data_increase_aa_warfare_systems = data_increase["aa_warfare_systems"]; // 0
  // int data_increase_planes = data_increase["planes"]; // 0
  // int data_increase_helicopters = data_increase["helicopters"]; // 0
  // int data_increase_vehicles_fuel_tanks = data_increase["vehicles_fuel_tanks"]; // 30
  // int data_increase_warships_cutters = data_increase["warships_cutters"]; // 0
  // int data_increase_cruise_missiles = data_increase["cruise_missiles"]; // 0
  // int data_increase_uav_systems = data_increase["uav_systems"]; // 17
  // int data_increase_special_military_equip = data_increase["special_military_equip"]; // 3
  // int data_increase_atgm_srbm_systems = data_increase["atgm_srbm_systems"]; // 0


  string_stat = String("fr " + String(data_stats_personnel_units) + "(+" + String(data_increase_personnel_units + ")"));
  Serial.print("Personnel Units: ");
  Serial.println(string_stat);
  httpsClient.stop();
}
c_rax пише:

Дякую, зараз розбираюсь.
Додав сертифікат, але чомусь пише що в класі немає такої ф-ції

/Users/******/Documents/Arduino/clock_fuckr/clock_fuckr.ino: In function 'void getYoutube()':
/Users/******/Documents/Arduino/clock_fuckr/clock_fuckr.ino:280:15: error: 'class BearSSL::WiFiClientSecure' has no member named 'setCACert'
  280 |   httpsClient.setCACert(root_ca_cert);
      |               ^~~~~~~~~
/Users/******/Documents/Arduino/clock_fuckr/clock_fuckr.ino: In function 'void getStat()':
/Users/******/Documents/Arduino/clock_fuckr/clock_fuckr.ino:346:15: error: 'class BearSSL::WiFiClientSecure' has no member named 'setCACert'
  346 |   httpsClient.setCACert(root_ca_cert);
      |               ^~~~~~~~~

exit status 1

Compilation error: 'class BearSSL::WiFiClientSecure' has no member named 'setCACert'

В мене паралельно на python написаний проект з парсером цьогод сайту, наскільки все просто.
С++ Arduino бібліотеки, омг ну дуже складно все  roll

#6 Re: Апаратні питання » ArduinoJSON6 ESP8266 » 2023-05-07 09:59:23

Дякую, зараз розбираюсь.
Додав сертифікат, але чомусь пише що в класі немає такої ф-ції

/Users/******/Documents/Arduino/clock_fuckr/clock_fuckr.ino: In function 'void getYoutube()':
/Users/******/Documents/Arduino/clock_fuckr/clock_fuckr.ino:280:15: error: 'class BearSSL::WiFiClientSecure' has no member named 'setCACert'
  280 |   httpsClient.setCACert(root_ca_cert);
      |               ^~~~~~~~~
/Users/******/Documents/Arduino/clock_fuckr/clock_fuckr.ino: In function 'void getStat()':
/Users/******/Documents/Arduino/clock_fuckr/clock_fuckr.ino:346:15: error: 'class BearSSL::WiFiClientSecure' has no member named 'setCACert'
  346 |   httpsClient.setCACert(root_ca_cert);
      |               ^~~~~~~~~

exit status 1

Compilation error: 'class BearSSL::WiFiClientSecure' has no member named 'setCACert'

В мене паралельно на python написаний проект з парсером цьогод сайту, наскільки все просто.
С++ Arduino бібліотеки, омг ну дуже складно все  roll

#7 Апаратні питання » ArduinoJSON6 ESP8266 » 2023-05-06 08:01:38

c_rax
відповідей: 3

Питання знатакам, в скетчі прописано кілька парсерів, вони однотипні, але парсять по протоколу http, не можу зрозуміть чому https не пропускає... може десь помилка? Підскажіть

// link
void getStat() {
  WiFiClientSecure client;
  
  Serial.print("connecting to ");
  Serial.println(String(serverFuckrussian));

    if (!client.connect(serverFuckrussian, httpsPort)) {
      Serial.println("connection failed");
      return ;
    }

    String request_fr = String("GET /api/v2/statistics/") + latest + " HTTP/1.1rn"+ 
                "Host: " + serverFuckrussian + "rnUser-Agent: ESP8266HTTPClient/1.1rnConnection: closernrn";

    
    if (!client.connected()) {
      Serial.println("connection lost");
      return ;
    }
  client.print(request_fr);
  String response = "";
    while (client.connected()) {
  String line = client.readStringUntil('n');
    if (line == "r") {
    break;
    }
  }

  // String input;
  DynamicJsonDocument doc(1536);
  DeserializationError error = deserializeJson(doc, client);

  if (error) {
    Serial.print(F("deserializeJson() failed: "));
    Serial.println(error.f_str());
    return;
  }

  //const char* message = doc["message"]; // "The data were fetched successfully."

  JsonObject data = doc["data"];
  //const char* data_date = data["date"]; // "2023-05-05"
  //int data_day = data["day"]; // 436
  //const char* data_resource = data["resource"];

  int data_war_status_code = data["war_status"]["code"]; // 1
  const char* data_war_status_alias = data["war_status"]["alias"]; // "in_progress"

  JsonObject data_stats = data["stats"];
  long data_stats_personnel_units = data_stats["personnel_units"]; // 193210
  //int data_stats_tanks = data_stats["tanks"]; // 3710
  // int data_stats_armoured_fighting_vehicles = data_stats["armoured_fighting_vehicles"]; // 7224
  // int data_stats_artillery_systems = data_stats["artillery_systems"]; // 2978
  // int data_stats_mlrs = data_stats["mlrs"]; // 550
  // int data_stats_aa_warfare_systems = data_stats["aa_warfare_systems"]; // 304
  // int data_stats_planes = data_stats["planes"]; // 308
  // int data_stats_helicopters = data_stats["helicopters"]; // 294
  // int data_stats_vehicles_fuel_tanks = data_stats["vehicles_fuel_tanks"]; // 5916
  // int data_stats_warships_cutters = data_stats["warships_cutters"]; // 18
  // int data_stats_cruise_missiles = data_stats["cruise_missiles"]; // 947
  // int data_stats_uav_systems = data_stats["uav_systems"]; // 2540
  // int data_stats_special_military_equip = data_stats["special_military_equip"]; // 373
  // int data_stats_atgm_srbm_systems = data_stats["atgm_srbm_systems"]; // 4

  JsonObject data_increase = data["increase"];
  int data_increase_personnel_units = data_increase["personnel_units"]; // 620
  // int data_increase_tanks = data_increase["tanks"]; // 3
  // int data_increase_armoured_fighting_vehicles = data_increase["armoured_fighting_vehicles"]; // 8
  // int data_increase_artillery_systems = data_increase["artillery_systems"]; // 16
  // int data_increase_mlrs = data_increase["mlrs"]; // 3
  // int data_increase_aa_warfare_systems = data_increase["aa_warfare_systems"]; // 0
  // int data_increase_planes = data_increase["planes"]; // 0
  // int data_increase_helicopters = data_increase["helicopters"]; // 0
  // int data_increase_vehicles_fuel_tanks = data_increase["vehicles_fuel_tanks"]; // 30
  // int data_increase_warships_cutters = data_increase["warships_cutters"]; // 0
  // int data_increase_cruise_missiles = data_increase["cruise_missiles"]; // 0
  // int data_increase_uav_systems = data_increase["uav_systems"]; // 17
  // int data_increase_special_military_equip = data_increase["special_military_equip"]; // 3
  // int data_increase_atgm_srbm_systems = data_increase["atgm_srbm_systems"]; // 0


  stat = String("fr " + String(data_stats_personnel_units) + "(+" + String(data_increase_personnel_units + ")"));
  Serial.print("Personnel Units: ");
  Serial.println(stat);
  client.stop();
}

#8 Re: Різне » Деньги не пахнут? » 2023-05-03 21:11:29

renoshnik пише:
ledon пише:

Но после начала войны и после того как тамошние пользователи показали свое нутро я перестал это делать. Только чтение.

Какое-то половинчатое решение. Может вам логичнее было полностью отказаться от этих ресурсов ?

ledon пише:

Вам же, особенно с учетом вашей былой професии, как то странно принимать там активное участие.

На счет активного участия, как-то странно звучит. По моему за последние полгода это мой первый пост был...

ledon пише:

Или вы из любителей  руССкагамира?

Снова какие-то непонятно на чем основанные выводы. Не нахожу логики в ваших умозаключениях ...

ledon пише:

Тогда вопросв больше нет.

Ок.

Цікаво, почитав взагалі переписку, вирішив промоніторити...
На днях приліт в ваше місто Павлоград, а ви на мацковцких форумах 4 місяці назад викладуєте проект, скажете, що не відвідуєте але онлайн були там 4 дні тому... sad

#9 Re: Апаратні питання » ST-LinkV2: как подружиться с кубом » 2023-05-02 07:26:19

Хакінтош можна було і з збірки зробить)
Так, гарний мамонт, все що треба працю)
Розібрався, там є сикрет з істалюванням через Java

#10 Re: Апаратні питання » ST-LinkV2: как подружиться с кубом » 2023-03-03 12:06:32

В мене інша проблема.
__
Mac OS high Sierra 10.13.6
Не не знаю яку версію Stm32CubeProg скачать і де, тому що на оф сайті, лише ві 2.5 до 2.13 і попередніх немає, а вони походу не підтримуються...
__
Чим можна прошивать STM з під яблука?

Підвал форуму