From 6049f6ab446618d8c1b103ecce082b701a63a840 Mon Sep 17 00:00:00 2001
From: Ricardo
Date: Thu, 19 Oct 2023 17:21:44 +0200
Subject: [PATCH] Update Raspjavik_1.ino
---
Raspjavik_1.ino | 542 ++++++++++++++++++++++++------------------------
1 file changed, 271 insertions(+), 271 deletions(-)
diff --git a/Raspjavik_1.ino b/Raspjavik_1.ino
index 1959cc6..8097889 100644
--- a/Raspjavik_1.ino
+++ b/Raspjavik_1.ino
@@ -1,271 +1,271 @@
-// http://bennirafvirki.is/sensors/ui/readings
-// Working well as a draft, the code need to be clean.
-
-#ifdef ESP32 // Import required libraries
-#include
-
-#else
-#include
-#include
-#include
-#include
-#include
-#endif
-#include
-#include
-#define ONE_WIRE_BUS 4 // Data wire is connected to GPIO 4 = pin D2
-OneWire oneWire(ONE_WIRE_BUS); // Setup a oneWire instance to communicate with any OneWire devices
-DallasTemperature sensors(&oneWire); // Pass our oneWire reference to Dallas Temperature sensor
-
-//#include
-#include
-#include
-//#define SERVER_IP "bennirafvirki.is"
-
-
-// Replaced parameters
-
-// Rikki
- const char* ssid = "Asus2"; //network credentials
- const char* password = "lukas1234";
-/*
-// F7
-const char* ssid = "Hringdu-2.4G-2dfM"; //network credentials F7
-const char* password = "8hs9gmmV";
-*/
-const int tmin = -3; // min temperature
-const int tmax = 3; // max temperature
-String address = "electropepper";
-int time_of_delay = 50000; //if 50000 ms, than will measure each minute interval
-
-
-// pinout D0=pin16; D1=pin5/GPIO5; D2=pin4/GPIO4; D3=0/Flash; D4=2/Tx1; D5=14; D6=12; D7=13=Rx2; D8=15=Tx2; D9=3=Rx0; D10=1=Tx0;
-//const int relay1 = 5; //pin D1 = GPIO5 , relay 1
-//const int relay2 = 14; //pin D5 = GPIO14, relay 2
-const int relay1 = 16;
-const int relay2 = 5;
-
-/// Serial port for debugging purposes Serial.begin(115200); Serial monitoring
-
-AsyncWebServer server(80); // Create AsyncWebServer object on port 80
-
-
-String readDSTemperatureC() // Call sensors.requestTemperatures() to issue a global temperature and Requests to all devices on the bus
-{
- sensors.requestTemperatures();
- float tempC = sensors.getTempCByIndex(0);
-
- if (tempC == -127.00 || tempC == 85.00 )
- {
- Serial.println("Failed to read from DS18B20 sensor");
- /////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////could you created README.MD file in your project folder with those notes?
- return "--";
- }
- else
- {
- //Serial.print("Temperature Celsius: ");
- //Serial.print(tempC);
-
- }
- return String(tempC);
-}
-
-
-
-const char index_html[] PROGMEM = R"rawliteral(
-
-
-
-
-
-
-
-
- Fifusel, Reykjavik
-
-
-
- Temperature Celsius
- %TEMPERATUREC%
- °C
-
Heaters are ON between -3 and 3 celcius
-
- Design by tech company Raspjavik.is
- Produced by Electropepper.is
- Instalation by Bennirafvirki.is
-
-
-
- )rawliteral";
-
-
-
-String processor(const String& var) // Replaces placeholder with DHT values
- {
- //Serial.println(var);
- if (var == "TEMPERATUREC")
- {
- return readDSTemperatureC();
- }
- return String();
- }
-
-
-void setup()
-{
- pinMode(relay1, OUTPUT);
- digitalWrite(relay1, LOW);
- pinMode(relay2, OUTPUT);
- digitalWrite(relay2, LOW);
-
-
- Serial.begin(115200); // Serial port for debugging purposes ( baud)
- Serial.println();
- sensors.begin(); // Start up the DS18B20 library
-
- WiFi.begin(ssid, password); // Connect to Wi-Fi
- Serial.println("Connecting to WiFi");
- while (WiFi.status() != WL_CONNECTED)
- {
- delay(500);
- Serial.print(".");
- }
- Serial.println();
- Serial.println(WiFi.localIP()); // Print ESP Local IP Address 192.168.1.18
-
-
-
- server.on("/", HTTP_GET, [](AsyncWebServerRequest * request) // Route for root / web page
- {
- request->send_P(200, "text/html", index_html, processor);
- });
- server.on("/temperaturec", HTTP_GET, [](AsyncWebServerRequest * request)
- {
- request->send_P(200, "text/plain", readDSTemperatureC().c_str());
- });
-
- server.begin(); // Start server
-
-}
-
-
-void loop()
-{
-
- float tempC = sensors.getTempCByIndex(0);
-
- if (tempC > tmin && tempC < tmax)
- {
- digitalWrite(relay1, LOW);
- digitalWrite(relay2, LOW);
- Serial.print("Temperature is ");
- Serial.print(tempC);
- Serial.println(" Celcius and the heaters are ON ");
- }
- else
- {
- digitalWrite(relay1, HIGH);
- digitalWrite(relay2, HIGH);
- Serial.print("Temperature is ");
- Serial.print(tempC) ;
- Serial.println(" Celcius and the heaters are OFF ");
- }
- delay(10000);
-
- // wait for WiFi connection
- if ((WiFi.status() == WL_CONNECTED))
- {
-
- WiFiClient client;
- HTTPClient http;
-
- Serial.print("[HTTP] begin...\n");
- // configure traged server and url
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////////
- //could you created README.MD file in your project folder with those notes?
- //change to: if tempC is between min and max, so it´s: 0 (OFF), 1 (ON), 2 sensor disconnected, 3 wire or resistance fail, 4
- // if tempC = -127, sensor or resistance disconnect, if tempC = 85, sensor
-
- int sensor_status = 0;
-
- String link1 = "http://bennirafvirki.is/sensors/add/temperature/";
- String link2 = String(tempC,DEC%4);
- String link3 = "/address/";
- String link4 = String(address);
- String link5 = "/state/";
- String link6 = String(sensor_status,DEC);
- String link = link1 + link2 + link3 + link4 + link5 + link6 ;
-
- http.begin(client,link); //Serial.print(link);
-
-
- http.addHeader("Content-Type", "application/json");
-
- Serial.print("[HTTP] POST...\n");
- // start connection and send HTTP header and body
- int httpCode = http.POST("{\"hello\":\"world\"}");
-
- // 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();
- }
-
- delay(time_of_delay);
-
-
-}
+// http://bennirafvirki.is/sensors/ui/readings
+// Working well as a draft, the code need to be clean.
+
+#ifdef ESP32 // Import required libraries
+#include
+
+#else
+#include
+#include
+#include
+#include
+#include
+#endif
+#include
+#include
+#define ONE_WIRE_BUS 4 // Data wire is connected to GPIO 4 = pin D2
+OneWire oneWire(ONE_WIRE_BUS); // Setup a oneWire instance to communicate with any OneWire devices
+DallasTemperature sensors(&oneWire); // Pass our oneWire reference to Dallas Temperature sensor
+
+//#include
+#include
+#include
+//#define SERVER_IP "bennirafvirki.is"
+
+
+// Replaced parameters
+
+// Rikki
+ const char* ssid = "As"; //network credentials
+ const char* password = "hgj65";
+/*
+// F7
+const char* ssid = "Hringdu-2"; //network credentials F7
+const char* password = "45jy";
+*/
+const int tmin = -3; // min temperature
+const int tmax = 3; // max temperature
+String address = "electropepper";
+int time_of_delay = 50000; //if 50000 ms, than will measure each minute interval
+
+
+// pinout D0=pin16; D1=pin5/GPIO5; D2=pin4/GPIO4; D3=0/Flash; D4=2/Tx1; D5=14; D6=12; D7=13=Rx2; D8=15=Tx2; D9=3=Rx0; D10=1=Tx0;
+//const int relay1 = 5; //pin D1 = GPIO5 , relay 1
+//const int relay2 = 14; //pin D5 = GPIO14, relay 2
+const int relay1 = 16;
+const int relay2 = 5;
+
+/// Serial port for debugging purposes Serial.begin(115200); Serial monitoring
+
+AsyncWebServer server(80); // Create AsyncWebServer object on port 80
+
+
+String readDSTemperatureC() // Call sensors.requestTemperatures() to issue a global temperature and Requests to all devices on the bus
+{
+ sensors.requestTemperatures();
+ float tempC = sensors.getTempCByIndex(0);
+
+ if (tempC == -127.00 || tempC == 85.00 )
+ {
+ Serial.println("Failed to read from DS18B20 sensor");
+ /////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////could you created README.MD file in your project folder with those notes?
+ return "--";
+ }
+ else
+ {
+ //Serial.print("Temperature Celsius: ");
+ //Serial.print(tempC);
+
+ }
+ return String(tempC);
+}
+
+
+
+const char index_html[] PROGMEM = R"rawliteral(
+
+
+
+
+
+
+
+
+ Fifusel, Reykjavik
+
+
+
+ Temperature Celsius
+ %TEMPERATUREC%
+ °C
+
Heaters are ON between -3 and 3 celcius
+
+ Design by tech company Raspjavik.is
+ Produced by Electropepper.is
+ Instalation by Bennirafvirki.is
+
+
+
+ )rawliteral";
+
+
+
+String processor(const String& var) // Replaces placeholder with DHT values
+ {
+ //Serial.println(var);
+ if (var == "TEMPERATUREC")
+ {
+ return readDSTemperatureC();
+ }
+ return String();
+ }
+
+
+void setup()
+{
+ pinMode(relay1, OUTPUT);
+ digitalWrite(relay1, LOW);
+ pinMode(relay2, OUTPUT);
+ digitalWrite(relay2, LOW);
+
+
+ Serial.begin(115200); // Serial port for debugging purposes ( baud)
+ Serial.println();
+ sensors.begin(); // Start up the DS18B20 library
+
+ WiFi.begin(ssid, password); // Connect to Wi-Fi
+ Serial.println("Connecting to WiFi");
+ while (WiFi.status() != WL_CONNECTED)
+ {
+ delay(500);
+ Serial.print(".");
+ }
+ Serial.println();
+ Serial.println(WiFi.localIP()); // Print ESP Local IP Address 192.168.1.18
+
+
+
+ server.on("/", HTTP_GET, [](AsyncWebServerRequest * request) // Route for root / web page
+ {
+ request->send_P(200, "text/html", index_html, processor);
+ });
+ server.on("/temperaturec", HTTP_GET, [](AsyncWebServerRequest * request)
+ {
+ request->send_P(200, "text/plain", readDSTemperatureC().c_str());
+ });
+
+ server.begin(); // Start server
+
+}
+
+
+void loop()
+{
+
+ float tempC = sensors.getTempCByIndex(0);
+
+ if (tempC > tmin && tempC < tmax)
+ {
+ digitalWrite(relay1, LOW);
+ digitalWrite(relay2, LOW);
+ Serial.print("Temperature is ");
+ Serial.print(tempC);
+ Serial.println(" Celcius and the heaters are ON ");
+ }
+ else
+ {
+ digitalWrite(relay1, HIGH);
+ digitalWrite(relay2, HIGH);
+ Serial.print("Temperature is ");
+ Serial.print(tempC) ;
+ Serial.println(" Celcius and the heaters are OFF ");
+ }
+ delay(10000);
+
+ // wait for WiFi connection
+ if ((WiFi.status() == WL_CONNECTED))
+ {
+
+ WiFiClient client;
+ HTTPClient http;
+
+ Serial.print("[HTTP] begin...\n");
+ // configure traged server and url
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////////
+ //could you created README.MD file in your project folder with those notes?
+ //change to: if tempC is between min and max, so it´s: 0 (OFF), 1 (ON), 2 sensor disconnected, 3 wire or resistance fail, 4
+ // if tempC = -127, sensor or resistance disconnect, if tempC = 85, sensor
+
+ int sensor_status = 0;
+
+ String link1 = "http://bennirafvirki.is/sensors/add/temperature/";
+ String link2 = String(tempC,DEC%4);
+ String link3 = "/address/";
+ String link4 = String(address);
+ String link5 = "/state/";
+ String link6 = String(sensor_status,DEC);
+ String link = link1 + link2 + link3 + link4 + link5 + link6 ;
+
+ http.begin(client,link); //Serial.print(link);
+
+
+ http.addHeader("Content-Type", "application/json");
+
+ Serial.print("[HTTP] POST...\n");
+ // start connection and send HTTP header and body
+ int httpCode = http.POST("{\"hello\":\"world\"}");
+
+ // 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();
+ }
+
+ delay(time_of_delay);
+
+
+}