i'm building my first project with esp32, a quiz game using an api. I've done with success the request to the api and i can print the question and other data on the serial monitor, but when I try to print the question on the lcd display i get this error: gpio: gpio_set_level(227): GPIO output gpio_num error.
I'm using the esp-wroom-32 with 38 pins, with platformio. i connected vdd and a to 5v, vss, rw and k to ground, vo to ground via 2k resistor, rs to 34, e to 35, d4 to 32, d5 to 23, d6 to 25 and d7 to 26.
this is the complete code:
#include <Arduino.h>
#include <ArduinoJson.h>
#include <HTTPClient.h>
#include <WiFi.h>
#include <LiquidCrystal.h>
const char *ssid = "myssid";
const char *password = "mypwd";
String payload;
const int rs = 34, en = 35, d4 = 32, d5 = 23, d6 = 25, d7 = 26;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
}
HTTPClient http;
http.begin("https://opentdb.com/api.php?amount=10&type=multiple");
int httpCode = http.GET();
if (httpCode > 0) {
if (httpCode == HTTP_CODE_OK) {
payload = http.getString();
DynamicJsonDocument doc(1024);
deserializeJson(doc, payload);
JsonArray results = doc["results"];
for (int i = 0; i < results.size(); i++) {
JsonObject result = results[i];
String question = result["question"];
String correctAnswer =
result["correct_answer"];
JsonArray incorrectAnswers =
result["incorrect_answers"];
lcd.setCursor(0, 1);
lcd.print(question);
while (1) {
}
}
}
}
}
void loop() {}
i also tried to use GPIO_NUM_ costants, but it didn't work. if i put a serial.println in the for loop, it prints correctly the questions in the serial monitor:
for (int i = 0; i < results.size(); i++) {
JsonObject result = results[i];
String question = result["question"];
String correctAnswer =
result["correct_answer"]; // una risposta corretta
JsonArray incorrectAnswers =
result["incorrect_answers"]; // tre risposte incorrette
lcd.setCursor(0, 1);
// lcd.print(question);
// while (1) {
//}
Serial.println("Domanda: " + question);
Serial.println("Risposta corretta: " + correctAnswer);
Serial.println("Risposte errate:");
for (int j = 0; j < incorrectAnswers.size(); j++) {
Serial.println("- " + incorrectAnswers[j].as<String>());
}
}
the output is
E (2719) gpio: gpio_set_level(227): GPIO output gpio_num error
E (2785) gpio: gpio_set_level(227): GPIO output gpio_num error
E (2852) gpio: gpio_set_level(227): GPIO output gpio_num error
connessione...
connesso!
E (9207) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9208) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9208) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9274) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9341) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9407) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9474) gpio: gpio_set_level(227): GPIO output gpio_num error
Domanda: Just Cause 2 was mainly set in what fictional Southeast Asian island country?
Risposta corretta: Panau
Risposte errate:
- Davao
- Macau
- Palau
E (9787) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9787) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9840) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9906) gpio: gpio_set_level(227): GPIO output gpio_num error
E (9973) gpio: gpio_set_level(227): GPIO output gpio_num error
E (10040) gpio: gpio_set_level(227): GPIO output gpio_num error
E (10107) gpio: gpio_set_level(227): GPIO output gpio_num error
Domanda: What name did "Mario", from "Super Mario Brothers", originally have?
Risposta corretta: Ossan
Risposte errate:
- Jumpman
- Mr. Video
- Mario
E (10421) gpio: gpio_set_level(227): GPIO output gpio_num error
E (10426) gpio: gpio_set_level(227): GPIO output gpio_num error
E (10494) gpio: gpio_set_level(227): GPIO output gpio_num error
and it continues with the errors.
any solution??