Есть продвижения?
#include <SimplePgSQL.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
IPAddress PGIP(46, 252, 181, 107);
WiFiClient client;
const char dbUser[] = "uxihjkyarp0ocjodftls";
const char dbPassword[] = "sXRzj4btBj33UTdZIJZP";
const char dbName[] = "bd0mkfbaqkwvkf9ccxsk";
char* ssid = "7-147";
char* password = "55512300";
char buffer[1024];
int rc;
PGconnection conn(&client, 0, 1024, buffer);
IPAddress apIP(8, 8, 8, 8);
IPAddress netMsk(255, 255, 255, 0);
uint32_t old_time;
void connectWifi() {
WiFi.disconnect();
WiFi.begin(ssid, password);
int connRes = WiFi.waitForConnectResult();
}
bool msgCheck(){ // проверяет сообщение и выводит его.
char *msg;
if (rc & PG_RSTAT_HAVE_MESSAGE) {
msg = conn.getMessage();
Serial.println('_message debug_');
if (msg) Serial.println(msg);
return false;
}
return true;
}
bool timeoutCheckData(int scope){ // ожидатор готовности данных
old_time = millis();
int nxt= true;
while(((millis() - old_time) < 1500) && nxt){ // таймаут на получение данных
delay(50);
rc = conn.getData();
nxt = !(rc & scope);
}
if (nxt) {conn.close(); return false;} // не получены столбцы за таймаут рвем коннект!
return true;
}
void connectDB(){
conn.setDbLogin(PGIP, dbUser, dbPassword, dbName, "utf8", 5432);
// тест соединения
rc = conn.status();
if (rc == CONNECTION_BAD || rc == CONNECTION_NEEDED) {
msgCheck();
Serial.println("bad connect or need connect");
conn.close();
return; // останавливает дальнейшие запросы т.к. нефиг делать когда нет коннекта.
}
else if (rc == CONNECTION_OK) {
Serial.println("DB connect OK!");
}
// ожидать ответа
while (conn.status() == CONNECTION_AWAITING_RESPONSE ) {
delay (200);
Serial.print ( "--wait--\n" );
}
conn.execute("SELECT * from users"); // запрос в БД
if (!timeoutCheckData(PG_RSTAT_HAVE_COLUMNS)){return;}
int i;
for (i=0; i < conn.nfields(); i++) { //узнаем сколько столбцов и перебираем их печатая все
if (i) Serial.print(" | ");
Serial.print(conn.getColumn(i));
}
Serial.println("\n==========");
if (!timeoutCheckData(PG_RSTAT_HAVE_ROW)){return;}
char *msg;
for (i=0; i < conn.nfields(); i++) {
if (i) Serial.print(" | ");
msg = conn.getValue(i);
if (!msg) msg=(char *)"NULL";
Serial.print(msg);
}
Serial.println();
Serial.println("!______");
};
void setup(){
Serial.begin(115200);
WiFi.softAPConfig(apIP, apIP, netMsk);
connectWifi();
Serial.println("Подключено к WIFI!");
connectDB();
conn.close(); // если забыть закрыть соединие, все по бороде пойдет.
}
void loop(){
}