ESP模块连接并在Heroku中的PostgreSQL中工作

时间:2018-09-04 21:54:39

标签: heroku esp8266 heroku-postgres arduino-esp8266


我想在我的应用程序的PostgreSQL数据库中放置一条记录,该记录是通过Heroku网站(RoR)部署的。 我需要使用ESP-01 / 12模块执行此操作。
我找不到在C中的pg数据库上连接和执行sql语句的任何完整示例。
我的代码:

#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程序。我从计算机进行了这样的连接,与代码中的相同,因此可以访问。

帮帮我,请从C中的ESP模块进入数据库。我注意到,尽管在psql命令后输入了密码,但我还是必须再次输入密码,但是我无法注册来自命令行的答案另一面,例如“请输入密码”。

是的,我帮自己翻译,我说波兰语。

1 个答案:

答案 0 :(得分:0)

client.print()将一些数据写入WifiClient。我认为是数据库上的某些命令。如果需要将数据添加到PostgreSQL数据库,则可以使用SQL查询创建一些API端点。这将解决您的问题。

Refer this Repo

这将说明如何创建NodeJS API来捕获从ESP8266发送的数据并将其写入Firebase数据库。您可以克隆它并更改数据库部分。 Arduino部分相同,您需要安装ArduinoJSON库。希望你能理解。