Componentes electrónicos:

  • Genuino 101
  • Alimentación externa
  • Lcd
  • Sensor de suelo
  • Protoboard
  • Rele
  • Bomba de agua (pecera)

Software:

  • Arduino IDE
  • Drivers de Genuino 101
  • Librería I2C

Resumen:

En el siguiente proyecto realizaremos una planta con riegue automático.

Paso 1:

El primer paso será realizar las conexiones de los diferentes componentes electrónicos.

Paso 2:

Una vez que realizamos las conexiones, deberemos utilizar el scanner de I2C para averiguar la dirección de nuestro LCD.

#include
void setup()
{
Wire.begin();

Serial.begin(9600);
while (!Serial);
Serial.println("nI2C Scanner");
}

void loop()
{
byte error, address;
int nDevices;

Serial.println("Scanning...");

nDevices = 0;
for(address = 1; address < 127; address++ )
{
Wire.beginTransmission(address);
error = Wire.endTransmission();

if (error == 0)
{
Serial.print("I2C device found at address 0x");
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");

nDevices++;
}
else if (error==4)
{
Serial.print("Unknow error at address 0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices foundn");
else
Serial.println("donen");

delay(5000);
}

Paso 3:

Cuando terminamos de escanear nuestra dirección, ya podemos trabajar en el código del proyecto.

#include
#include LiquidCrystal_I2C lcd(0x3F, 16, 2);
int valor;

void setup()
{
Serial.begin (9600);
pinMode (13, OUTPUT);
}

void loop(){

valor = analogRead (0);

if (valor <=300) {
lcd.begin();
lcd.backlight();
lcd.print("Bien regado!");
digitalWrite (13, HIGH); }

if ((valor >300) and (valor <= 700)){
lcd.begin();
lcd.backlight();
lcd.print("Humedo");
digitalWrite (13, HIGH); }

if (valor >700){
lcd.begin();
lcd.backlight();
lcd.print("Necesita regar!");
digitalWrite (13, LOW);
}

delay (1000);

}

Paso 4:

Ahora les toca a ustedes seguir agregando nuevos sensores como temperatura o luz para mejorar nuestro riego automático.