This is the code im working on:
#include "DHT.h"
#include <LiquidCrystal.h>
#define DHTPIN 3
#define DHTTYPE DHT11
#define sensorPower 2
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
DHT dht(DHTPIN, DHTTYPE);
unsigned long previousSensorMillis = 0;
unsigned long thlast = 0;
bool sensorState = false;
const long sensorInterval = 1000; // 1000ms = 1 sec
const long thInterval = 2000;
String msg = "Apasa pe Select";
String lastPrinted = msg;
int lcdstate = 0;
void setup() {
Serial.begin(19200);
dht.begin();
pinMode(12, OUTPUT);
pinMode(2, OUTPUT);
digitalWrite(2, HIGH);
lcd.begin(16, 2);
lcd.clear();
lcd.print(msg);
delay(1000);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousSensorMillis >= sensorInterval) {
previousSensorMillis = currentMillis;
sensorState = !sensorState; // schimba starea senzorului
digitalWrite(sensorPower, sensorState ? HIGH : LOW);
}
float h = dht.readHumidity(); // read humidity
float t = dht.readTemperature(); // read temperature in °C
int moisture = analogRead(A1); // read soil moisture value
int water = analogRead(A5);
int light = analogRead(A2);
int button = analogRead(A0);
if (!isnan(t) && !isnan(h)){
Serial.print("Soil humidity: ");
Serial.print(moisture);
Serial.print(" Humidity: ");
Serial.print(h);
Serial.print(" Temperature: ");
Serial.print(t-2);
Serial.println(" °C");
}
if (light >= 512 && light <= 1023)
{
}
if (moisture>500 || moisture<400){
digitalWrite(12, HIGH);
} else {
digitalWrite(12, LOW);
}
if ( water<500) {
}
if (msg == lastPrinted && (button == 640 || button == 641))
{
lcdstate = 1;
;
if (button == 101 || button == 102 || button == 259 || button == 258 ||
button == 410 || button == 411 || button == 0 || button == 1022 || button == 1023) {
lastPrinted = "ahgyadfiuah";
}
if(currentMillis - thlast >= thInterval){
thlast = currentMillis;
float newH = dht.readHumidity();
float newT = dht.readTemperature();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp");
lcd.setCursor(0, 1);
lcd.print(newT-2);
lcd.setCursor(7, 0);
lcd.print("Hum");
lcd.setCursor(7, 1);
lcd.print(newH);
Serial.print("Soil humidity: ");
Serial.print(moisture);
Serial.print(" Humidity: ");
Serial.print(h);
Serial.print(" Temperature: ");
Serial.print(t-2);
Serial.println(" °C");
delay(200);
}
}
if (lcdstate == 1){
if(currentMillis - thlast >= thInterval){
thlast = currentMillis;
float newH = dht.readHumidity();
float newT = dht.readTemperature();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp");
lcd.setCursor(0, 1);
lcd.print(newT-2);
lcd.setCursor(7, 0);
lcd.print("Hum");
lcd.setCursor(7, 1);
lcd.print(newH);
Serial.print("Soil humidity: ");
Serial.print(moisture);
Serial.print(" Humidity: ");
Serial.print(h);
Serial.print(" Temperature: ");
Serial.print(t-2);
Serial.println(" °C");
}
}
if (msg != lastPrinted){
}
delay(100);
}
I only edited it so that the lcd temp and humidity value would change by 1 to display instead of every 2 seconds and it started giving me gibberish. I undo ed everything reverting it to this iteration that i pasted, and it still would do the same thing. Today I realised after i tried to upload a bare minimum sketch that it wont upload any code on it. Im using a clone R3.