Ubidots Community

Failed to configure Ethernet using DHCP

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”);
}
}