Upload files to "/"

This commit is contained in:
tza 2024-06-23 19:54:40 +00:00
commit 138508957a
2 changed files with 106 additions and 0 deletions

76
esp32-weather.ino Normal file
View File

@ -0,0 +1,76 @@
#include "DHT.h"
#include "thingProperties.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
#define RAINPIN 26
#define SOILPIN 25
#define WATERPIN 25
unsigned long previousMillis = 0;
const long interval = 10000;
long watering_time = 0;
int watering_duration = 0;
bool should_water_if_raining = 0;
int soil_humidity_watering_threshold = 0;
/*void onWateringSettingsChange() {
JsonDocument doc;
deserializeJson(doc, watering_settings);
watering_time = doc["watering_time"];
watering_duration = doc["watering_duration"];
should_water_if_raining = doc["should_water_if_raining"];
soil_humidity_watering_threshold = doc["soil_humidity_watering_threshold"];
water_now = doc["water_now"];
}*/
void onWaterNowChange() {
digitalWrite(WATERPIN, water_now);
}
void setup() {
Serial.begin(9600);
delay(1500);
dht.begin();
pinMode(RAINPIN, INPUT_PULLUP);
pinMode(WATERPIN, OUTPUT);
initProperties();
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(4);
ArduinoCloud.printDebugInfo();
}
void loop() {
ArduinoCloud.update();
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
soil_humidity = (100 - (analogRead(A0) / 4095.00) * 100);
is_raining = !digitalRead(RAINPIN);
humidity = dht.readHumidity();
temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.print(F("Humidity: "));
Serial.print(humidity);
Serial.print(F("% Temperature: "));
Serial.print(temperature);
Serial.print(F("°C Soil humidity: "));
Serial.print(soil_humidity);
Serial.print(is_raining ? F(" - It's raining!") : F(""));
Serial.print(water_now ? F(" - Watering...") : F(""));
Serial.println();
}
}

30
thingProperties.h Normal file
View File

@ -0,0 +1,30 @@
// Code generated by Arduino IoT Cloud, DO NOT EDIT.
#include <ArduinoIoTCloud.h>
#include <Arduino_ConnectionHandler.h>
const char DEVICE_LOGIN_NAME[] = "";
const char SSID[] = ""; // Network SSID (name)
const char PASS[] = ""; // Network password (use for WPA, or use as key for WEP)
const char DEVICE_KEY[] = ""; // Secret device password
void onWaterNowChange();
CloudTemperatureSensor temperature;
CloudRelativeHumidity humidity;
CloudRelativeHumidity soil_humidity;
bool is_raining;
bool water_now;
void initProperties(){
ArduinoCloud.setBoardId(DEVICE_LOGIN_NAME);
ArduinoCloud.setSecretDeviceKey(DEVICE_KEY);
ArduinoCloud.addProperty(water_now, READWRITE, ON_CHANGE, onWaterNowChange);
ArduinoCloud.addProperty(temperature, READ, 10 * SECONDS, NULL);
ArduinoCloud.addProperty(humidity, READ, 10 * SECONDS, NULL);
ArduinoCloud.addProperty(soil_humidity, READ, 10 * SECONDS, NULL);
ArduinoCloud.addProperty(is_raining, READ, 10 * SECONDS, NULL);
}
WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, PASS);