Как прокручивать текст на OLED-дисплее, используя только библиотеку SSD1306Wire?

Мне 13 лет, и я делаю проект с esp01 и OLED-экраном, чтобы отображать идеи проекта на OLED-дисплее с помощью ChatGPT API. Ответ отображается на OLED-дисплее, но я бы хотел, чтобы он прокручивался снизу вверх и так далее до следующего запроса, чтобы я мог видеть весь ответ. Я отметил, что единственная библиотека, которая работала для меня для esp01, — это библиотека SSD1306Wire. .Мой код:

#include <ESP8266HTTPClient.h>
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <Wire.h>
#include <SSD1306Wire.h>
#include <ArduinoJson.h> 

const char* ssid = "WIFI_NAME";
const char* password = "WIFI_PASSWORD";

const char* apiEndpoint = "https://api.openai.com/v1/engines/text-davinci-002/completions";
const char* apiToken = "OPENAI_TOKEN";

SSD1306Wire  display(0x3c, 2, 0);  
void setup() {
 Serial.begin(115200);
 
 WiFi.begin(ssid, password);
 while (WiFi.status() != WL_CONNECTED) {
   delay(1000);
   Serial.println("Connecting to WiFi...");
 }

 Serial.println("Connected to WiFi");

 display.init();
 display.flipScreenVertically();
 display.setFont(ArialMT_Plain_10);
}

void loop() {
 WiFiClientSecure client;
 client.setInsecure();
 HTTPClient http;
 http.begin(client, apiEndpoint);
 http.addHeader("Content-Type", "application/json");
 http.addHeader("Authorization", "Bearer " + String(apiToken));
 String payload = "{\"prompt\": \"TEXT_TO_QUERY\",\"temperature\":0.8,\"max_tokens\":40}";
 int httpResponseCode = http.POST(payload);
 String response = "";

 if (httpResponseCode == 200) {
   response = http.getString();
   int startIndex = response.indexOf("text\":") + 7;
   int endIndex = response.indexOf("\",\"index\"");
   response = response.substring(startIndex, endIndex);
   response.replace("\\n", "\n");
   Serial.println(response);
 } else {
   Serial.print("Error: ");
   Serial.println(httpResponseCode);
 }

 http.end();


 display.clear();
 display.drawStringMaxWidth(0, 0, 128, response);
 display.display();

 delay(18000000);  
}

Кто-нибудь может мне помочь?

, 👍0

Обсуждение

Вы смотрели на примеры скетчей?, @jsotola

5-часовая пауза должна быть 30 минут, моя ошибка. В библиотеке, похоже, нет примеров скетчей., @Loic Daigle

затем выполните поиск в Интернете для SSD1306Wire.h, @jsotola

Но моя проблема в том, что библиотека не поддерживает функцию прокрутки, @Loic Daigle

Вам нужна плавная прокрутка или переход по символу или строке текста? Предполагая первое, вы запрашиваете горизонтальную или вертикальную прокрутку. Я думаю, что горизонтальная прокрутка поддерживается, но не документирована. Я не уверен в вертикальной прокрутке., @st2000

Я хотел бы, чтобы текст плавно прокручивался снизу вверх, @Loic Daigle

Библиотека, которую вы используете, размещена на github.com и, по-видимому, не поддерживает вертикальную прокрутку, так как обсуждение вертикальной прокрутки в проблемах, похоже, закончилось. Он может поддерживать горизонтальную прокрутку, но это обсуждение также указывает на ответвление проекта на другой странице github.com. Если вы хотите узнать больше, я предлагаю пойти туда и прочитать эти обсуждения. Возможно участие в них., @st2000

Спасибо . Должен ли я закрыть дискуссию или что-то в этом роде?, @Loic Daigle

Вы или человек, отвечающий на ваш вопрос (@st2000), должны преобразовать комментарии в фактический ответ. Затем его можно пометить как принятое, чтобы помочь другим с тем же запросом., @Nick Gammon


1 ответ


Лучший ответ:

0
  • Код SSD1306Wire, историю его разработки и обсуждения можно найти здесь на github.com.
  • Шаблон поиска Google "прокрутка сайт: github.com/ThingPulse/esp8266-oled-ssd1306" можно использовать для поиска все совпадения с "прокрутить" на этих веб-страницах. Кажется, есть интерес к вертикальной прокрутке со стороны других, но пока нет поддержки. Также, кажется, есть некоторая поддержка или успех горизонтальной прокрутки, поскольку обсуждалось в этом выпуске github.com для этого проекта.
  • Также в этой ветке есть ссылка на другой проект DSS1306 github.com. в котором явно указано, что он поддерживает горизонтальную прокрутку.
,