Модуль ESP подключился и работал в PostgreSQL в Heroku


Я хочу поместить запись в базу данных 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, я должен ввести его снова, но я не могу зарегистрировать ответ командной строки, поступающий с другой стороны, например «введите пароль».

Да, помогала с переводчиком, говорю по-польски.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
1 258
1

Ответы 1

client.print() предназначен для записи некоторых данных в WifiClient. Я думаю, что это какая-то команда в базе данных. Если вам нужно добавить данные в базу данных PostgreSQL, вы можете создать конечную точку API с помощью запросов SQL. Это решит вашу проблему.

Обратитесь к этому репо

Это объясняет, как создать API-интерфейс NodeJS для сбора данных, отправленных с ESP8266, и записи их в базу данных Firebase. Вы можете клонировать его и изменить часть базы данных. Часть Arduino такая же, и вам необходимо установить библиотеку ArduinoJSON. Надеюсь ты понимаешь.

Не очень-очень короткий и не очень разумный ответ. Если вы знаете что-то конкретное, пожалуйста, расширьте этот ответ. Я все еще работаю над проблемой, и мне, вероятно, нужно использовать SSL от ESP8266, но я действительно не знаю, как это сделать. Думаю, закончится написанием отдельного приложения для загрузки на дектоп :(.

Ciarambola 08.09.2018 16:48

Другие вопросы по теме