Encendiendo un led: Firebase, Arduino, WinForms y Xamarin Android

PARTE 1: CREANDO LA BASE DE DATOS, LEYENDO DATOS Y CONTROLANDO HARDWARE

Hace unos meses me incomodó un poco el hechode no poder utilizar el módulo de wi-fi de Arduino que había comprado así queintenté buscar alguna otra forma de controlar de manera remota el hardware quellegue a instalar. Así que la forma más rápida de hacerlo sería utilizando un“medio” entre los dos, algo que pueda ser capaz de variar según una base dedatos y enviar los cambios hacia Arduino. Así que la mejor forma de hacerlo sería con las siguientes tecnologías:

-Xamarin Android, será el emisor de los cambios

-Firebase database, actuará como el centro de datos 

-Winforms (c#), será el medio de los cambios

-Arduino, será el receptor de los cambios

Ahora lo que haremosserá, en primer lugar, crear una base de datos en Firebase y agregaremos undato el cual será el led y su estado.

Ahora crearemos nuestro ‘medio’.

Después del InitializeComponent(); accederemos al serialPort que hemos agregado al proyecto conanterioridad (por medio de la vista).

serialPort1.PortName = "COM3";
serialPort1.BaudRate = 9600;
serialPort1.Open(); 

Ahora agregaremos un timer, por medio de lavista, para poder hacer las consultas constantemente a la base de datos. Ahoradaremos clic cobre el formulario general para poder inicializar el timer ademásde la consulta que haremos a la base de datos.

timer1.Start();
Consulta();


public async void Consulta(){
  var http_c = new HttpClient();
  var json = await http_c.GetStringAsync("https://arduino-led-csharp.firebaseio.com/.json");
  Boolean led_e = JsonConvert.DeserializeObject<Boolean>(json);
  if (led_e){serialPort1.Write("1");}
  else if (!led_e){serialPort1.Write("0");}    
}

Con respecto a la URL que debe salir de la base de datos es que debemos agregar el .json para que pueda funcionar. Ahora daremos doble clic en el Timer. Y agregaremos el método creadoanteriormente.

Consulta();

Y accederemos al IDE de Arduino.

Agregaremos el código en la parte del void setup().

  pinMode(12,OUTPUT); //12 debe ser el número de la entrada en Arduino
  Serial.begin(9600);

Ahora agregaremos el siguiente código en el void loop().

  if(Serial.available()){
    int c = Serial.read();
    if(c=='1'){digitalWrite(12,HIGH);}
    else if(c=='0'){digitalWrite(12,LOW);}
  }

Ahora lo único que queda es hacer la instalación de nuestro led, en mi caso lo haré de manera directa, es más sencillo además  no tengo resistencias a la mano, en mi caso si notan en el código de arduino puse el número 12 entonces eso quiere decir que estoy usando el pin número 12 de mi arduino, como la siguiente imagen.

Tomado de : http://www.pyroelectro.com/tutorials/arduino_led_blinky_intro/schematic.html

Si quieres ver cómo quedaría al final mira este video:

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *