Я хочу поместить запись в базу данных PostgreSQL моего приложения, которую я развернул через веб-сайт Heroku (RoR).
Мне нужно сделать это с модулем ESP-01/12.
Я не могу найти полный пример подключения и выполнения оператора SQL в базе данных pg в C.
Мой код:
#include <ESP8266WiFi.h>
/* Wi fi */
const char* ssid = "ssid";
const char* password = "password";
/* database */
const char* host = "***.compute-1.amazonaws.com";
const char* database = "database";
const char* user = "user";
const char* streamId = "???";
const char* privateKey = "password?";
void setup() {
delay(1000);
Serial.begin(115200); delay(10); Serial.println('\n');
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password); Serial.print("Connecting to "); Serial.print(ssid); Serial.println(" ...");
int i = 0;
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(++i); Serial.print(' ');
}
Serial.println("Connection established!");
Serial.print("IP address:\t");
Serial.println(WiFi.localIP());
WiFi.printDiag(Serial);
}
void loop() {
delay(5000);
Serial.print("connecting to ");
Serial.println(host);
// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 5432;
if (client.connect(host, httpPort)) {
Serial.println("OK!");
}
client.print("psql -U user --password password? -p 5432 -h host -d database \r\n");
delay(10);
// Read all the lines of the reply from server and print them to Serial
while (client.available()) {
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println();
Serial.println("closing connection");
}
Мне кажется, что я подключился к порту 5432, но я не знаю, что делать дальше со строкой ниже, чтобы получить ответ:
client.print()
Я предполагаю, что после подключения к порту 5432 я могу отправить текст, который отображается на другой стороне, как в командной строке, и там доступна программа psql. Я сделал такое соединение с компьютера, в той же строке, что и в коде, и я получил доступ.
Помогите, пожалуйста, войдите в мою базу данных из модуля ESP в C. Я заметил, что несмотря на ввод пароля после команды psql, я должен дать его снова, но не могу зарегистрировать ответ командной строки, поступающей из с другой стороны, например «пожалуйста, введите пароль».
Да, я помог себе с переводчиком, я говорю по-польски.