• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Помогите разобраться с кодом - Часы на ESP 8266 и матрице max 7219

pooll30

New member
Доброго времени суток! Прошу помочь разобраться с кодом.

Нашел в инете проект часов на esp 8266 и матрицах с max 7219, повторил его, все получилось, все работает, кроме получения курса валют( в оригинале пара PLN/USD). С момента выхода проекта прошло уже прилично времени и скорей всего изменилась структура сайта с которого берется курс валют и в коде нужно указать другие ориентиры на сайте где расположена искомая информация. В общем если подскажите как правильно настроить поиск нужных символов, где и что указать что бы код заработал буду очень Вам признателен! Вот этот код, который находит на сайте курс нужной валюты и выводит на дисплей часов:

// =======================================================================

const char* currencyHost = "cinkciarz.pl";
void getCurrencyRates()
{
WiFiClientSecure client;
Serial.print("connecting to "); Serial.println(currencyHost);
if (!client.connect(currencyHost, 443)) {
Serial.println("connection failed");
return;
}
client.print(String("GET / HTTP/1.1\r\n") +
"Host: " + currencyHost + "\r\nConnection: close\r\n\r\n");

//Serial.print("request sent");
int repeatCounter = 0;
while (!client.available() && repeatCounter < 10) {
delay(500);
Serial.println("c.");
repeatCounter++;
}
Serial.println("connected");
while (client.connected() && client.available()) {
String line = client.readStringUntil('\n');
// Serial.println(line);
int currIdx = line.indexOf("/kantor/kursy-walut-cinkciarz-pl/usd");
if (currIdx > 0) {
String curr = line.substring(currIdx + 33, currIdx + 33 + 3);
curr.toUpperCase();
line = client.readStringUntil('\n');
int rateIdx = line.indexOf("\">");
if (rateIdx <= 0) {
Serial.println("Found rate but wrong structure!");
return;
}
currencyRates = " PLN/" + curr + ": ";
if (line[rateIdx - 1] == 'n') currencyRates += char('~'+24); else currencyRates += char('~'+23); // down/up
currencyRates += line.substring(rateIdx + 2, rateIdx + 8) + " ";

line = client.readStringUntil('\n');
rateIdx = line.indexOf("\">");
if (rateIdx <= 0) {
Serial.println("Found rate but wrong structure!");
return;
}
if (line[rateIdx - 1] == 'n') currencyRates += char('~'+24); else currencyRates += char('~'+23); // down/up
currencyRates += line.substring(rateIdx + 2, rateIdx + 8);
currencyRates.replace(',', '.');
break;
}
}
client.stop();
}

// =======================================================================
 

enjoynering

Well-known member
еще советую поменять токоограничивающий резистор. китайцы ставят его на 3в/40мА. а сами матрицы обычно стоят 2.5в/20мА. можно конечно програмно, через регистр max7219 и встроенный шим, но если дать 100%, то можно спалить матрицу.
 
Сверху Снизу