From abcb467a0f79829b51f9a858b1f340e41d443326 Mon Sep 17 00:00:00 2001 From: smallsolar Date: Mon, 26 May 2025 23:11:00 +0100 Subject: [PATCH] moved wifi details to 'wifi.h' (not commited) and also added internal esp32 temperature sensor for more data --- vgarden1.ino | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/vgarden1.ino b/vgarden1.ino index 4c56531..d27a03f 100644 --- a/vgarden1.ino +++ b/vgarden1.ino @@ -7,6 +7,8 @@ #include #include +#include "wifi.h" + WiFiMulti WiFiMulti; WiFiClient client; @@ -68,7 +70,57 @@ void update_server(int count) { WiFi.reconnect(); } } + +void send_sensor_data() { + Serial.print("Connecting to "); + Serial.println(SERVER_IP); + + float temp_celsius = temperatureRead(); + Serial.print(temp_celsius); + Serial.println(" °C"); + // wait for WiFi connection + if ((WiFi.status() == WL_CONNECTED)) { + + Serial.print("[HTTP] begin...\n"); + // configure traged server and url + http.begin(client, "http://" SERVER_IP "/write?db=garagedb"); //HTTP + http.setTimeout(5000); + http.addHeader("Content-Type", "application/json"); + + //Serial.print("[HTTP] POST...\n"); + // start connection and send HTTP header and body + String count_string = String(temp_celsius); + String start_string = "temperature,host=vgarden_test value="; + String post_string = String(start_string + count_string); + Serial.println(post_string); + int httpCode = http.POST(post_string.c_str()); + count++; + + // httpCode will be negative on error + if (httpCode > 0) { + // HTTP header has been send and Server response header has been handled + Serial.printf("[HTTP] POST... code: %d\n", httpCode); + + // file found at server + if (httpCode == HTTP_CODE_OK) { + const String& payload = http.getString(); + Serial.println("received payload:\n<<"); + Serial.println(payload); + Serial.println(">>"); + } + } else { + Serial.printf("[HTTP] POST... failed, error: %s\n", http.errorToString(httpCode).c_str()); + } + + http.end(); + } + else { + Serial.println("Reconnecting to WiFi..."); + WiFi.disconnect(); + WiFi.reconnect(); + } +} void setup() { pinMode(led, OUTPUT); @@ -78,10 +130,11 @@ void setup() { digitalWrite(pump_con,LOW); Serial.begin(115200); + delay(10); // We start by connecting to a WiFi network - WiFiMulti.addAP("CHANGEME", "CHANGEME"); + WiFiMulti.addAP(SSID_NAME, PASSWD); Serial.println(); Serial.println(); @@ -108,6 +161,7 @@ void loop() { digitalWrite(led,HIGH); digitalWrite(pump_con,HIGH); update_server(pump_on); + send_sensor_data(); Serial.println("Pump On, Sleeping 60s"); count++; delay(60000);