#include #include #include //#define I2CADDRESS 0x38 #define AD4 12 //GPIO12 ADC2_CH5 #define AD3 16 //GPIO13 ADC2_CH4 #define AD2 15 //GPIO15 ADC2_CH3 #define AD1 2 //GPIO2 ADC2_CH2 #define LED 16 //GPIO16 IPAddress PGIP(192,168,xx,xx); uint8_t buf[6]; const char *ssid = "SSID"; const char *password = "WiFiPassword"; const char dbuser[] = "19000"; const char dbpassword[] = "xxxxxxxx"; const char dbname[] = "xxxx"; char buffer[1024]; WiFiClient client; PGconnection conn(&client, 0, 1024, buffer); void setup() { // initialize serial communication at 115200 bits per second: pinMode(LED, OUTPUT); Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.print("WiFi connect: OK "); Serial.print("RSSI:"); Serial.println(WiFi.RSSI()); configTime(9 * 3600L, 0, "192.168.xx.xx");//) while (!datetime()){ //Serial.print("#"); Serial.println();} Serial.println(); WiFi.disconnect(true); //set the resolution to 12 bits (0-4096) analogReadResolution(12); } boolean datetime(void){ struct tm timeInfo; char s[32]; boolean x=getLocalTime(&timeInfo); if(x){ sprintf(s, "%04d/%02d/%02d", timeInfo.tm_year + 1900, timeInfo.tm_mon + 1, timeInfo.tm_mday); String para1=String(s); sprintf(s, "%02d:%02d:%02d", timeInfo.tm_hour, timeInfo.tm_min, timeInfo.tm_sec); String para2=String(s); Serial.print(para1 + " " + para2 + ": "); } return x; } void mypgconnect(void){ conn.setDbLogin(PGIP, dbuser, dbpassword, dbname, "utf8", 5432); //wait to connect // Serial.print("DB connectiong:"); int rc = conn.status(); while(conn.status()==CONNECTION_AWAITING_RESPONSE){ delay(10);// Serial.print("#"); } rc = conn.status(); if (rc==CONNECTION_BAD || rc==CONNECTION_NEEDED){ char *c=conn.getMessage(); if (c) Serial.println(c); } else if(rc==CONNECTION_OK){ // Serial.println("CONNECTION_OK"); } } void loop() { WiFi.disconnect(true); int analogValue1 = analogRead(AD1); int analogValue2 = analogRead(AD2); int analogVolts1 = analogReadMilliVolts(AD1); int analogVolts2 = analogReadMilliVolts(AD2); digitalWrite(LED, HIGH); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); //Serial.print("."); } mypgconnect(); char s[64]; sprintf(s, "INSERT INTO battery(v1,v2) VALUES(%f,%f);",analogVolts1/1000.0,analogVolts2/1000.0); datetime(); Serial.println(":"+String(s)); conn.execute(s); Serial.println("conn.status:"+String(conn.status())); delay(500); conn.close(); WiFi.disconnect(true); digitalWrite(LED, LOW); delay(60000-500); // delay in between reads for clear read from serial }