InicioTarjetas de DesarrolloArduinoSistema de Control Básico con Arduino GIGA R1

Sistema de Control Básico con Arduino GIGA R1

Arduino GIGA R1 WIFI es una placa potente y repleta de funciones, con una gran cantidad de pines de entrada y salida superando al Arduino Mega, a continuación, realizaremos un sistema de control básico censando temperatura, humedad (entorno y suelo) y el encendido o apagado de leds.

Introducción a Arduino Giga R1

Esta placa de desarrollo tiene un procesador STM32H747XI de doble núcleo Arm Cortex, el M7 que opera hasta 480 MHz y el M4 que opera hasta 240 MHz, con este procesador se puede ejecutar códigos de MicroPyton y Arduino simultáneamente.

El número de pines con los que cuenta Arduino GIGA R1 WIFI son 76 de entrada y salida, 12 de estos son pines PWM, 12 pines de entrada analógica, con estos pines se podrá leer y controlar sensores, módulos y dispositivos según las necesidades de tu proyecto.

Además, cuenta con un RTC de baja potencia (Reloj en Tiempo Real siglas en Ingles) por lo que podrás alimentar con una batería en el pin VRTC para mantener el reloj funcionando y evitando configurar el tiempo cada vez que la alimentación de tu proyecto falla.

La comunicación entre dispositivos con los que cuenta son:

  • 4 puertos UART
  • 3 puertos I2C
  • 2 puertos SPI
  • Módulo Murata LBEE5KL1DX-883 para comunicaciones Wifi y Bluetooth, con los que podrás realizar proyectos IoT(Internet de las cosas siglas en inglés) o conexión con dispositivos de forma inalámbrica.
  • Puerto USB-A por lo que se podrá conectar un teclado, un mouse o un dispositivo de almacenamiento masivo incrementando el potencial de esta placa.
  • Conector rápido para el Display Shield del cual hablaremos en otro momento.

Ya hablamos de algunas de las especificaciones del Arduino GIGA R1 WIFI es hora de mostrar cómo funciona.

Desarrollo

Realizaremos una práctica de un sistema de control básico donde obtendremos la lectura de dos sensores y utilizando el RTC de Arduino GIGA R1 para controlar dos leds con una hora de encendido y una hora de apagado.

Materiales

Conexiones

A continuación, se detallan las conexiones de los sensores y los LEDs que se conectarán a la placa Arduino GIGA R1.

Software

Para la implementación de esta práctica debemos tener instalada la librería STM32duino SHT40-AD1B. En el gestor de bibliotecas busquemos SHT40 e instalemos.

Código

El código del sistema de control esta hecho con funciones con el objetivo de separar y ubicar en el código los procesos de las lecturas de los sensores y la función de control de los leds que encienden o apagan a una hora determinada.

El control de los leds tiene una característica especial ya que a una determinada hora cambiara el estado de estos, por lo que siempre estaremos preguntando si se encuentra en el periodo de encendido o apagado. Una vez que acabe este proceso obtendremos las lecturas correspondientes de los sensores.

/*
 *******************************************************************************
    EN0090  BLOG  UNIT   Sistema de control básico con Arduino GIGA R1
El código del sistema de control esta hecho con funciones separando las lecturas de 
los sensores y utilizando el RTC de Arduino GIGA R1  la función de control de los 
dos led que encienden o apagan a una hora determinada.
 *******************************************************************************
*/
#include "mbed.h"
#include <mbed_mktime.h>
#include <SHT40AD1BSensor.h>
SHT40AD1BSensor sensor(&Wire1);
float tmp,hum;// Variables de Sensor de Temperatura y humedad en en el entorno 

int val = 0; // Variables de Sensor de Humedad en el suelo
int Pin_Suelo = A0;//Declaración del pin del sensor de humedad en el suelo  

constexpr unsigned long printInterval { 1000 };
unsigned long printNow {};
int encendido=1431; // Hora de encendido
int apagado=1432;   // Hora de apagado 
int hora=0;

void setup() 
{
  Serial.begin(115200);
  delay(1000);
  Wire1.begin();
  Serial.println("SHT40AD1B DataLog Terminal");  
  RTC_manual();
  pinMode(2, OUTPUT);    // configura pin 13 como salida
  pinMode(7, OUTPUT);    // configura pin 13 como salida
  digitalWrite(2, LOW); // pone desde un inicio en bajo el pin 2
  digitalWrite(7, LOW); // pone desde un inicio en bajo el pin 7
}

void loop() 
{
  if (millis() > printNow) 
  {  
    control_led();
    printNow = millis() + printInterval;
  }
  Serial.println("Lectura de sensores  ");  
  tem_hum();
  Hum_suelo();
  delay(1000); 
}
  

void tem_hum()
{
  Serial.print("Temperatura : ");  
  sensor.GetTemperature(&tmp);
  Serial.print(tmp);
  Serial.print("   Humedad : ");  
  sensor.GetHumidity(&hum);
  Serial.print(hum);
  Serial.println(" %");  
}

void Hum_suelo()
{  
  val = analogRead(Pin_Suelo);//Lee el valor del sensor del puerto A0
  Serial.print("HUmedad del suelo: ");  
  Serial.println(val);
}

void RTC_manual()  // Esta función sirve para modificar el reloj RTC
{    
  tm t;
  t.tm_sec = (0);       // 0-59
  t.tm_min = (30);        // 0-59
  t.tm_hour = (14);         // 0-23
  t.tm_mday = (11);   // 1-31
  t.tm_mon = (9);       // 0-11  "0" = Enero, Número_de_Mes-1 
  t.tm_year = ((23)+100);   
  set_time(mktime(&t));       // Guardo los valor en RTC                                 
}

void control_led()
{

  tm t;
  _rtc_localtime(time(NULL), &t, RTC_4_YEAR_LEAP_YEAR_SUPPORT);
  hora=(t.tm_hour*100)+t.tm_min ;
  Serial.print("La hora es   ");   
  Serial.print(t.tm_hour); 
   Serial.print(" : ");  
   Serial.println(t.tm_min);   
  if(hora>=encendido &&  hora<apagado)
  {
    digitalWrite(7, HIGH); // pone en alto el pin 7
    digitalWrite(2, HIGH); // pone en alto el pin 2 
    Serial.println("Estado LED 1 : [ON]");
    Serial.println("Estado LED 2 : [ON]");
  }
  else
  {
    digitalWrite(7, LOW); // pone en alto el pin 2
    digitalWrite(2, LOW); // pone en alto el pin 2
    Serial.println("Estado LED 1 : [OFF]");
    Serial.println("Estado LED 2 : [OFF]");
  }
}

Conclusiones

En este tutorial, hemos explicado de forma básica cómo utilizar la placa Arduino GIGA R1 WiFi, los sensores SHT40 y Suelo, así como el control de LEDs a través del RCT del Arduino. Ahora tienes las habilidades necesarias para construir proyectos más complejos y personalizados. Imagina aplicar estos conocimientos para crear un sistema de monitoreo ambiental, un sistema de automatización del hogar o incluso un dispositivo de IoT. Así que sigue explorando, aprendiendo y creando. ¡El mundo de la electrónica y la programación está a tu alcance, y el Arduino GIGA R1 WiFi es tu herramienta para hacerlo posible!”

Para enriquecer tus futuros proyectos, ponemos a tu disposición una amplia gama de sensores de temperatura y humedad. Puedes consultar la lista a continuación para encontrar el que mejor se adapte a tus necesidades.

TUTORIALES RELACIONADOS