Good day everyone. I have the following error where i can’t pass through… i tried installing libraries
Components used: DHT11 sensor, Temperature sensor, Arduino Uno, LCD16x02
I am using a DHT11 sensor to measure the temperature and i want this to write in myphpadmin localhost but i am getting the error: “Failed to configure Ethernet using DHCP”
this is my Arduino code:
#include <Wire.h>
#include “DHT.h”
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //Setting MAC Address
char server[] = “192.168.2.12”;
IPAddress ip(192,168,2,177);
EthernetClient client;
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
byte humidityIcon[] = {
0x04,
0x04,
0x0E,
0x0E,
0x1F,
0x1F,
0x1F,
0x0E
};
byte degreeSymbol[] = {
0x07,
0x05,
0x07,
0x00,
0x00,
0x00,
0x00,
0x00
};
byte temperatureIcon[] = {
0x04,
0x0A,
0x0A,
0x0A,
0x0E,
0x1F,
0x1F,
0x0E
};
byte maxIcon[] = {
0x1F,
0x04,
0x0E,
0x1F,
0x04,
0x04,
0x04,
0x04
};
byte minIcon[] = {
0x04,
0x04,
0x04,
0x04,
0x1F,
0x0E,
0x04,
0x1F
};
bool redrawLCD = true;
#include <DHT.h>
static const int dhtPin = 12;
#define dhtType DHT11 // DHT 11
DHT dht(dhtPin, dhtType);
float humidityVal;
int intervalDHT = 1000;
unsigned long previousMillisDHT = 0;
#include <OneWire.h>
#include <DallasTemperature.h>
static const int oneWireBus = 10;
OneWire oneWire(oneWireBus);
DallasTemperature sensors(&oneWire);
float temperatureValue = 0.0;
float temperatureMin = 100.0;
float temperatureMax = 0.0;
int interval1Wire = 1000;
unsigned long previousMillis1Wire = 0;
//// DRUKKNOP ////
static const int buttonPin = 8;
int buttonState = LOW;
int buttonStatePrevious = LOW;
bool buttonLongPress = false; // is knop lang ingedrukt
int buttonLongPressTime = 0; // tijd verstreken sinds indrukken knop
int intervalButtonLongPress = 3000; // Tijd in milliseconden totdat van “lang drukken” kan worden gesproken
int intervalButton = 300; // Tijd in milliseconden tussen het uitlezen van de drukknop
unsigned long previousMillisButton = 0; // Tijdstip van laatste uitlezing staat drukknop
//// ALGEMEEN ////
unsigned long currentMillis = 0; // Variabele voor het aantal milliseconden sinds de Arduino is gestart
void setup() {
Serial.begin(9600); // stel de seriële monitor in
// LCD
lcd.init(); // initialiseer het LCD scherm
lcd.backlight(); // zet de backlight aan
lcd.createChar(0, humidityIcon); // definieer een symbool in geheugen positie 0
lcd.createChar(1, degreeSymbol); // definieer een symbool in geheugen positie 1
lcd.createChar(2, temperatureIcon); // definieer een symbool in geheugen positie 2
lcd.createChar(3, maxIcon); // definieer een symbool in geheugen positie 3
lcd.createChar(4, minIcon); // definieer een symbool in geheugen positie 4
// DHT sensor
dht.begin(); // start het DHT sensor uitlezen
dht.begin();
if (Ethernet.begin(mac) == 0) {
Serial.println(“Failed to configure Ethernet using DHCP”);
Ethernet.begin(mac, ip);
}
delay(1000);
}
// Functie voor het uitlezen van de drukknop
void readButtonState() {
// Als het tijdsverschil met de vorige uitlezing groter is dan intervalButton
if(currentMillis - previousMillisButton > intervalButton) {
// Lees de digitale waarde van de schakelaar (LOW/HIGH)
buttonState = digitalRead(buttonPin);
// Als er nog geen meting loopt voor lang drukken (buttonLongPressTime == 0)
// en de knop is net voor het eerst ingedrukt (buttonState == HIGH && buttonStatePrevious == LOW)
if (buttonLongPressTime == 0 && buttonState == HIGH && buttonStatePrevious == LOW) {
buttonLongPressTime = currentMillis;
buttonStatePrevious = HIGH;
}
// Als de knop is ingedrukt
if (buttonState == HIGH) {
// Bereken hoe lang de knop al is ingedrukt
int buttonHoldTime = currentMillis - buttonLongPressTime;
// Als de verstreken indruktijd groter is dan intervalButtonLongPress
if (buttonHoldTime > intervalButtonLongPress) {
buttonLongPress = true;
redrawLCD = true;
}
}
// Als de knop wordt losgelaten
if (buttonState == LOW && buttonStatePrevious == HIGH) {
buttonLongPressTime = 0;
buttonStatePrevious = LOW;
}
// sla het huidige tijdstip op in previousMillisButton
previousMillisButton = currentMillis;
}
}
// Functie voor het uitlezen van de 1-wire DS18B20 sensor
void read1WireTemp() {
// Als het tijdsverschil met de vorige uitlezing groter is dan interval1Wire
if(currentMillis - previousMillis1Wire > interval1Wire) {
// vraag de temperatuur aan de 1-wire sensor
sensors.requestTemperatures();
// neem de temperatuur van de eerste 1-wire sensor
float readTemperatureValue = sensors.getTempCByIndex(0);
// Controleer of de gelezen waarde anders is dan de vorige waarde
if(temperatureValue != readTemperatureValue) {
temperatureValue = readTemperatureValue;
redrawLCD = true;
}
// Als de knop langdurig is ingedrukt, reset de min / max metingen
if (buttonLongPress) {
temperatureMin = temperatureValue;
temperatureMax = temperatureValue;
buttonLongPress = false;
redrawLCD = true;
}
// Controleer of de gelezen waarde groter is dan de opgeslagen max. temperatuur
if (temperatureValue > temperatureMax) {
temperatureMax = temperatureValue;
redrawLCD = true;
}
// Controleer of de gelezen waarde groter is dan de opgeslagen min. temperatuur
if (temperatureValue < temperatureMin) {
temperatureMin = temperatureValue;
redrawLCD = true;
}
// sla het huidige tijdstip op in previousMillis1Wire
previousMillis1Wire = currentMillis;
}
}
// Functie voor het uitlezen van de DHT sensor
void readDHT() {
// Als het tijdsverschil met de vorige uitlezing groter is dan intervalDHT
if(currentMillis - previousMillisDHT > intervalDHT) {
// vraag de luchtvochtigheid aan de DHT sensor
float readHumidityVal = dht.readHumidity();
// Controleer of de gelezen waarde een getal is (Nan = Not A Number)
if (isnan(readHumidityVal)) {
Serial.println("Uitlezen van DHT sensor mislukt!");
return;
}
// Controleer of de gelezen waarde anders is dan de vorige waarde
if (readHumidityVal != humidityVal) {
humidityVal = readHumidityVal; // werk humidityVal bij met de nieuwe waarde
redrawLCD = true; // geef aan dat het LCD bijgewerkt moet worden
}
previousMillisDHT = currentMillis; // sla het huidige tijdstip op in previousMillisDHT
}
}
// Functie om het LCD scherm bij te werken
void updateLCD() {
// Als redrawLCD door iets op ‘true’ is gezet
if(redrawLCD) {
lcd.clear(); // wis het scherm
lcd.setCursor(0, 0); // zet de cursor op positie 1, regel 1
lcd.write(0); // teken het druppel icoon van geheugenpositie 0
lcd.print(" "); // schrijf een spatie
lcd.print(humidityVal); // schrijf de huidige luchtvochtigheid
lcd.print("%"); // schrijf een % teken
lcd.setCursor(0, 1); // zet de cursor op positie 1, regel 2
lcd.write(2); // teken het thermometer icoon van geheugenpositie 2
lcd.print(" ");
lcd.print(temperatureValue);
lcd.write(1); // teken het graden icoon van geheugenpositie 1
lcd.print("C ");
lcd.setCursor(10, 0); // zet de cursor op positie 11, regel 1
lcd.write(2); // teken het thermometer icoon van geheugenpositie 2
lcd.write(3);
lcd.print(" ");
lcd.print(temperatureMax);
lcd.write(1); // teken het graden icoon van geheugenpositie 1
lcd.print("C ");
lcd.setCursor(10, 1); // zet de cursor op positie 11, regel 2
lcd.write(2); // teken het thermometer icoon van geheugenpositie 2
lcd.write(4);
lcd.print(" ");
lcd.print(temperatureMin);
lcd.write(1); // teken het graden icoon van geheugenpositie 1
lcd.print("C ");
lcd.setCursor(0, 3);
// Als de schakelaar is ingedrukt (HIGH)
if (buttonLongPress) {
lcd.print("RESETTING MIN/MAX");
}
redrawLCD = false; // set redrawLCD weer op 'false'
}
}
void loop() {
currentMillis = millis(); // sla de huidige tijd op
readButtonState(); // lees de drukknop uit
readDHT(); // lees de DHT sensor uit
read1WireTemp(); // lees de 1-wire temperatuur sensor uit
updateLCD(); // werk indien nodig het LCD scherm bij
humidityVal = dht.readHumidity();
temperatureValue = dht.readTemperature();
Sending_To_phpmyadmindatabase();
delay(30000); // interval
}
void Sending_To_phpmyadmindatabase() //CONNECTING WITH MYSQL
{
if (client.connect(server, 80)) {
Serial.println(“connected”);
// Make a HTTP request:
Serial.print(“GET /test/dht.php?humidity=”);
client.print(“GET /test/dht.php?humidity=”); //YOUR URL
Serial.println(humidityVal);
client.print(humidityVal);
client.print("&temperature=");
Serial.println("&temperature=");
client.print(temperatureValue);
Serial.println(temperatureValue);
client.print(" "); //SPACE BEFORE HTTP/1.1
client.print(“HTTP/1.1”);
client.println();
client.println(“Host: 192.168.2.12”);
client.println(“Connection: close”);
client.println();
} else {
// if you didn’t get a connection to the server:
Serial.println(“connection failed”);
}
}