I was compiling this code..:
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <PS2Keyboard.h>
#include <WiFi.h>
#include <HTTPClient.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1 // Reset pin not used
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
const int PS2_DATA_PIN = 19; // Pin connected to the data line of the PS2 keyboard
const int PS2_IRQ_PIN = 18; // Pin connected to the IRQ line of the PS2 keyboard
PS2Keyboard keyboard;
String ssid = "";
String password = "";
void setup() {
Serial.begin(115200);
// Connect to Wi-Fi
connectToWiFi();
Wire.begin(SDA, SCL); // Initialize I2C with the specified pins
if (!display.begin()) {
Serial.println(F("SSD1306 allocation failed"));
for (;;)
;
}
display.display(); // Clear the display
delay(2000); // Pause for 2 seconds
display.clearDisplay();
}
void connectToWiFi() {
Serial.println("Enter Wi-Fi SSID:");
while (ssid.length() == 0) {
while (keyboard.available()) {
char c = keyboard.read();
if (c == PS2_ENTER) {
Serial.println(ssid);
break;
} else {
ssid += c;
}
}
}
Serial.println("Enter Wi-Fi password:");
while (password.length() == 0) {
while (keyboard.available()) {
char c = keyboard.read();
if (c == PS2_ENTER) {
Serial.println(password);
break;
} else {
password += c;
}
}
}
Serial.println("Connecting to Wi-Fi...");
WiFi.begin(ssid.c_str(), password.c_str());
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Display a welcome message
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(10, 10);
display.println("Welcome to LearnMateAI...!");
display.display();
delay(3000); // Display the welcome message for 3 seconds
display.clearDisplay();
}
String getChatGPTResponse(String userQuery) {
HTTPClient http;
String apiUrl = "https://api.openai.com/v1/chat/completions"; // Update with the correct endpoint
String apiKey = "YOUR_OPENAI_API_KEY"; // Replace with your OpenAI API key
http.begin(apiUrl);
http.addHeader("Content-Type", "application/json");
http.addHeader("Authorization", "Bearer " + apiKey);
String requestBody = "{\"messages\": [{\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},{\"role\": \"user\", \"content\": \"" + userQuery + "\"}]}";
int httpResponseCode = http.POST(requestBody);
String response = http.getString();
http.end();
return response;
}
void loop() {
while (keyboard.available()) {
char c = keyboard.read();
if (c == PS2_ENTER) {
display.clearDisplay();
display.setCursor(0, 0);
display.println("You asked:");
display.println();
display.print("-> ");
display.print(keyboard.read());
// Get response from ChatGPT
String userQuery = "";
while (keyboard.available()) {
userQuery += keyboard.read();
}
String chatGPTResponse = getChatGPTResponse(userQuery);
display.println();
display.println();
display.println("LearnMateAI says:"); // Change this line
display.println("-> " + chatGPTResponse);
display.display();
}
}
}
But got this error message
"Arduino: 1.8.19 (Windows Store 1.8.57.0) (Windows 10), Board: "ESP32 Dev Module, Disabled, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, Core 1, Core 1, None, Disabled"
In file included from C:\Users\DPE\Documents\Arduino\libraries\HTTPClient\src/HTTPClient.h:37,
from C:\Users\DPE\Desktop\LearnMateAI\LearnMateAI\LearnMateAI.ino:6:
C:\Users\DPE\Documents\Arduino\libraries\WiFiClientSecure\src/WiFiClientSecure.h:31:5: error: 'sslclient_context' does not name a type; did you mean 'esp_aes_context'?
sslclient_context *sslclient;
^~~~~~~~~~~~~~~~~
esp_aes_context
In file included from C:\Users\DPE\Documents\Arduino\libraries\HTTPClient\src/HTTPClient.h:37,
from C:\Users\DPE\Desktop\LearnMateAI\LearnMateAI\LearnMateAI.ino:6:
C:\Users\DPE\Documents\Arduino\libraries\WiFiClientSecure\src/WiFiClientSecure.h: In member function 'const mbedtls_x509_crt* WiFiClientSecure::getPeerCertificate()':
C:\Users\DPE\Documents\Arduino\libraries\WiFiClientSecure\src/WiFiClientSecure.h:81:86: error: 'sslclient' was not declared in this scope
const mbedtls_x509_crt* getPeerCertificate() { return mbedtls_ssl_get_peer_cert(&sslclient->ssl_ctx); };
^~~~~~~~~
C:\Users\DPE\Documents\Arduino\libraries\WiFiClientSecure\src/WiFiClientSecure.h:81:86: note: suggested alternative: 'Client'
const mbedtls_x509_crt* getPeerCertificate() { return mbedtls_ssl_get_peer_cert(&sslclient->ssl_ctx); };
^~~~~~~~~
Client
C:\Users\DPE\Documents\Arduino\libraries\WiFiClientSecure\src/WiFiClientSecure.h: In member function 'bool WiFiClientSecure::getFingerprintSHA256(uint8_t*)':
C:\Users\DPE\Documents\Arduino\libraries\WiFiClientSecure\src/WiFiClientSecure.h:82:88: error: 'sslclient' was not declared in this scope
bool getFingerprintSHA256(uint8_t sha256_result[32]) { return get_peer_fingerprint(sslclient, sha256_result); };
^~~~~~~~~
C:\Users\DPE\Documents\Arduino\libraries\WiFiClientSecure\src/WiFiClientSecure.h:82:88: note: suggested alternative: 'Client'
bool getFingerprintSHA256(uint8_t sha256_result[32]) { return get_peer_fingerprint(sslclient, sha256_result); };
^~~~~~~~~
Client
C:\Users\DPE\Documents\Arduino\libraries\WiFiClientSecure\src/WiFiClientSecure.h:82:67: error: 'get_peer_fingerprint' was not declared in this scope
bool getFingerprintSHA256(uint8_t sha256_result[32]) { return get_peer_fingerprint(sslclient, sha256_result); };
^~~~~~~~~~~~~~~~~~~~
C:\Users\DPE\Documents\Arduino\libraries\WiFiClientSecure\src/WiFiClientSecure.h:82:67: note: suggested alternative:
In file included from C:\Users\DPE\Documents\Arduino\libraries\WiFiClientSecure\src/WiFiClientSecure.h:26,
from C:\Users\DPE\Documents\Arduino\libraries\HTTPClient\src/HTTPClient.h:37,
from C:\Users\DPE\Desktop\LearnMateAI\LearnMateAI\LearnMateAI.ino:6:
C:\Users\DPE\Documents\Arduino\libraries\SSLClientESP32\src/ssl_client.h:46:6: note: 'SSLClientLib::get_peer_fingerprint'
bool get_peer_fingerprint(sslclient_context *ssl_client, uint8_t sha256[32]);
^~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\DPE\Documents\Arduino\libraries\HTTPClient\src/HTTPClient.h:37,
from C:\Users\DPE\Desktop\LearnMateAI\LearnMateAI\LearnMateAI.ino:6:
C:\Users\DPE\Documents\Arduino\libraries\WiFiClientSecure\src/WiFiClientSecure.h: In member function 'int WiFiClientSecure::socket()':
C:\Users\DPE\Documents\Arduino\libraries\WiFiClientSecure\src/WiFiClientSecure.h:107:16: error: 'sslclient' was not declared in this scope
return sslclient->socket = -1;
^~~~~~~~~
C:\Users\DPE\Documents\Arduino\libraries\WiFiClientSecure\src/WiFiClientSecure.h:107:16: note: suggested alternative: 'Client'
return sslclient->socket = -1;
^~~~~~~~~
Client
Multiple libraries were found for "Adafruit_SSD1306.h"
Used: C:\Users\DPE\Documents\Arduino\libraries\Adafruit_SSD1306
Not used: C:\Users\DPE\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED
Multiple libraries were found for "WiFi.h"
Used: C:\Users\DPE\Documents\ArduinoData\packages\esp32\hardware\esp32\2.0.11\libraries\WiFi
Not used: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\libraries\WiFi
Not used: C:\Users\DPE\Documents\Arduino\libraries\WiFi
Not used: C:\Users\DPE\Documents\Arduino\libraries\WiFiEspAT
Multiple libraries were found for "HTTPClient.h"
Used: C:\Users\DPE\Documents\Arduino\libraries\HTTPClient
Not used: C:\Users\DPE\Documents\ArduinoData\packages\esp32\hardware\esp32\2.0.11\libraries\HTTPClient
Multiple libraries were found for "WiFiClientSecure.h"
Used: C:\Users\DPE\Documents\Arduino\libraries\WiFiClientSecure
Not used: C:\Users\DPE\Documents\ArduinoData\packages\esp32\hardware\esp32\2.0.11\libraries\WiFiClientSecure
Multiple libraries were found for "ssl_client.h"
Used: C:\Users\DPE\Documents\Arduino\libraries\SSLClientESP32
Not used: C:\Users\DPE\Documents\Arduino\libraries\SSLClient
Not used: C:\Users\DPE\Documents\Arduino\libraries\GovoroxSSLClient
Not used: C:\Users\DPE\Documents\ArduinoData\packages\esp32\hardware\esp32\2.0.11\libraries\WiFiClientSecure
Multiple libraries were found for "Adafruit_GFX.h"
Used: C:\Users\DPE\Documents\Arduino\libraries\Adafruit_GFX_Library-1.11.9
Not used: C:\Users\DPE\Documents\Arduino\libraries\Adafruit-GFX-Library-master
Not used: C:\Users\DPE\Documents\Arduino\libraries\Adafruit_GFX_Library
exit status 1
Error compiling for board ESP32 Dev Module.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
"