Noticias, eventos, tutoriales... Rob贸tica en estado puro

Featured Coupons

脷ltimas noticias

jueves, 7 de septiembre de 2017

Tutorial: Aprender a usar Wemos D1 Mini (Arduino+Wifi)


Bienvenido a un nuevo tutorial de Lunegate, hoy vamos a prender a usar un Arduino equipado con un modulo Wifi. El Wemos D1 Mini v2.3. Este peque帽o controlador, nos ahorrar谩 mucho trabajo y tiempo.

INTRODUCCI脫N

El Wemos D1 mini usa la arquitectura de Arduino, pero cuenta con menos pines de los normal. Aun as铆 es muy barato, vers谩til y cuenta con una gran cantidad de shields, que nos har谩n no tener que volvernos locos haciendo circuitos en protoboard, sino simplemente pinchando uno encima de otro.

Un punto a remarcar, es que os recomiendo compraros la versi贸n 2.3, ya que primeramente compre la v1.0.0 y me ha tra铆do bastantes dolores de cabeza.

Las dimensiones son 13cm x 11cm x 1cm y un peso de 22 g. El precio es de 2,98€ m谩s gastos de envi贸 4,37€.

Para este tutorial, se requerir谩
Dificultad:

           Tiempo:  10 minutos (montarlo y programarlo)


MATERIAL NECESARIO

A continuaci贸n os describo el material necesario para realizar el tutorial y donde conseguirlo:

Imagen
Nombre producto
Donde comprarlo
Wemos D1 Mini


PROGRAMACI脫N

Para poder hacer funcionar nuestro Wemos, debemos cargar en nuestro IDE de Arduino, las librer铆as necesarias para hacerle funcionar.

Para ello, abriremos nuestro IDE, e iremos a Archive->Preferencias y donde hay campo llamado, "Gestor de URLs adicionales para tarjetas", deb茅is pulsar la venta e introducir esta url.

http://arduino.esp8266.com/stable/package_esp8266com_index.json



A continuaci贸n, despu茅s de introducir la url, pulsaremos en Herramientas ->  Placa -> Gestor de tarjetas. Cargara un rato las nuevas librer铆as, y cuando haya descargado todas, en el buscador pon茅is, wemos. Busc谩is la que se llame esp8266 by ESP8266 Communty. La seleccion谩is y os aparecer谩n los botones de selecci贸n de versi贸n, puls谩is la 煤ltima (no recomiendo usar las RC), coged las estables. Puls谩is instalar y cuando acabe cerr谩is la vista.

Ahora ya desde Herramientas -> Placa -> Encontrareis en mi caso la 煤ltima que es: Wemos D1 R2 & mini.

Ahora si queremos cargar ejemplos o carlas las librer铆as en nuestro proyecto, deb茅is ir a Programa -> incluir librer铆a -> Gestionar librer铆as.



Adem谩s del controlador, los paquetes que hab茅is instalado traen consigo una bater铆a de ejemplos muy 煤tiles y muy completos. Para ello, ir茅is a Archivo -> Ejemplos -> ESP8266, y elegir茅is Blink.
Puls谩is a cargar y ver茅is que el led mas cercano a la antena wifi lucir谩, yo tengo configurado Wemos a 115200 (ah铆 es configurarlo como prefir谩is, luego el Serial vereis que esta configurado a 74880), y carga el software relativamente r谩pida.

Una vez que vemos que nuestro hardware funciona, vamos a cargar el software de control para configurar nuestra conexi贸n wifi.

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>

const char* ssid = "#######";             //Set your wifi network name(ssid)
const char* password = "######";                //Set your router password

int RelayPin = D1;          //Relay Shield is controlled by pin D1
WiFiServer server(80);

void setup() {
  Serial.begin(74880); //change according to your com port baud rate
  delay(10);


  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(RelayPin, LOW);

  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");

  // Start the server
  server.begin();
  Serial.println("Server started");

  // Print the IP address
  Serial.print("Use this URL : ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");
}


void loop() {
 
  
  // Check for an active client
  WiFiClient client = server.available();
  if (!client) {
    return;
  }

  // Wait until client responds
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }

  // Read client request
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();

  // Match the request

  int value = LOW;
  if (request.indexOf("/Relay=ON") != -1) {
    digitalWrite(LED_BUILTIN, HIGH);
    value = HIGH;
  }
  if (request.indexOf("/Relay=OFF") != -1){
    digitalWrite(LED_BUILTIN, LOW);
    value = LOW;
  }



  // Return the client response
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");

  client.print("Relay pin is now: ");

  if(value == HIGH) {
    client.print("On"); 
  } else {
    client.print("Off");
  }
  client.println("<br><br>");
  client.println("Click <a href=\"/Relay=ON\">here</a> to turn the Relay ON<br>");
  client.println("Click <a href=\"/Relay=OFF\">here</a> to turn the Relay OFF<br>");
  client.println("</html>");

  delay(1);
  Serial.println("Client disconnected");
  Serial.println("");

}


Bien, vamos a explicar que debemos hacer antes de lanzarlo, tenemos que configurar 2 par谩metros, el ssid y el password. El ssid, es el nombre de nuestra red wifi de la casa, si no la hebeis modificado podr茅is encontrarla debajo del router. Y el password pues exactamente lo mismo.

Una vez cargado abrir茅is el monitor site, y ver茅is que carga los Serial.print, que est谩n en la aplicaci贸n. Ah铆 si es todo correcto los datos que has introducido, te mostrar谩 que la conexi贸n ha sido correcta, devolvi茅ndote una direcci贸n IP. C贸pia dicha direcci贸n y p茅gala en tu explorador web. En dicha web, tendr谩s 2 opciones, encender y apagar, puls谩ndolas podr谩s ver como se enciende y se apaga el led de vuestro Wemos.

Bien, con esto acaba nuestro tutorial de iniciaci贸n a Wemos, en este caso la comunicaci贸n es mono-direccional entre Web y Wemos. en tutoriales pr贸ximos, explicaremos como se realiza la comunicaci贸n bi-direccional entre web y hardware.

Como siempre, dejo la fuente de donde he obtenido la informaci贸n: Fuente.

PUNTUACI脫N

Calidad Componentes
4,5
Montaje
4,5
Precio
4,0
Caracter铆sticas
4,0
Puntuaci贸n Global
4,5


Arduino Driver Tutoriales Wemos

Tutorial - Dom贸tica: Construir un controlador de humedad (impreso en 3D) para tus plantas con Arduino.

Archivo: Descarga el c贸digo aqu铆.

¡Bienvenido al primer tutorial de dom贸tica de Lunegate!, en este tutorial, vamos a crear una plataforma con la que conocer la humedad de nuestras plantas, y as铆 saber si necesitan ser regadas.


INTRODUCCI脫N

Para este tutorial de dom贸tica, vamos a requerir unos conceptos previos, que ya hemos comentado anteriormente en antiguos tutoriales. Pero, no os preocupeis, a continuaci贸n definir茅 que tutoriales ten茅is que echaros un ojo, para poder realizar este tutorial.

Antes de empezar al meollo del asunto, es importante que necesitamos para realizar este tutorial:
    1潞) Una impresora 3D o que alguien nos imprima las piezas.
    2潞) Un soldador
    3潞) Una dremel o una taladradora peque帽a
    4潞) Los diferentes componentes de electr贸nica que definiremos en la secci贸n de "Material necesario".

Este no es un tutorial para principiantes, por lo que recomiendo antes empezar con cosas m谩s sencillas antes de ponernos a ello. Sobro todo, necesitaries conocer como se a帽aden librer铆as de C++ en Arduino, lo siguiente es como funciona una pantalla LCD y por 煤ltimo como funciona un sensor de humedad.

Para este tutorial, se requerir谩
Dificultad:

           Tiempo:  8 horas (imprimiendo), 1 hora montaje y carga de software.


MATERIAL NECESARIO

A continuaci贸n, os describo el material necesario para realizar el tutorial y donde conseguirlo (pulsando las im谩genes podr谩s verlas en grande):

Imagen
Nombre producto
Donde comprarlo
Sensor de humedad
Arduino Uno
Conectores universales
LCD Nokia 5110
Resistencia 220 ohms, +/-5%,
Resistencia 1 Kohms, +/-5%,
Resistencia 3k4 ohms, +/-5%,
Resistencia 10 Kohms, +/-5%
Cualquier tienda de electr贸nica
Resistencia fotosensible
Interruptor
Cualquier tienda de electr贸nica
Potenciometro


Partes a imprimir:

Imagen
Definici贸n
Descargar
Contenedor principal
Tapa frontal
Tapa superior
Soporte Arduino Uno


MONTAJE

Una vez que disponemos de todos los materiales que necesitamos, primero os dejare el esquema de conexiones y luego ir茅 paso a paso definiendo el montaje.


Una vez impresas las piezas, con una lija o lima fina, puliremos las piezas para que no queden rebabas.

A continuaci贸n, empezaremos con la tapa superior.Una vez probado que agarran los tornillos, introduciremos el sensor fotoel茅ctrico (si vemos que no entra, con un taladro agrandaremos el agujero). Para dejarlo fijado, usaremos super-blu. Realizaremos el mismo sistema con el led de alarma.

Para montar el LCD, cogeremos la tapa superior y superponemos la pantalla LCD (es posible que no entre, as铆 que deber茅is lijar un poco). Una vez que entre perfectamente, con un lapicero marcaremos los 4 puntos donde ir谩n los tornillos. Si ten茅is tornillos con punta directamente atornillaremos, si no los tenemos, haremos un peque帽o taladro (con una Dremel o similar) y probaremos que nuestros tornillos agarran.


A continuaci贸n, soldaremos al led rojo la resistencia de 220 ohms (Rojo,rojo,marr贸n) y al sensor fotoel茅ctrico con la resistencia de 10 Kohms.

Lo siguiente es fijar el driver para controlar el sensor de humedad. Para ello fijaremos con un tornillo al centro de la tapa delantera.


El siguiente punto seria coger nuestra caja principal y atornillar nuestro porta pilas al fondo de la caja (no lo atornilleis muy fuerte que solo es para ajustar los otros componentes).


Ahora vamos a prodecer a a帽adir nuestro Arduino Uno, para ellos primero, cogeremos nuestro soporte para Arduino y marcaremos con un rotulador los puntos donde debemos hacer los agujeros para anclarlo a la base. Es importante que nuestro Arduino quede lo m谩s cerca posible del porta pilas, ya que necesitaremos el m谩ximo espacio posible para los cables.


Una ver que tenemos nuestro Arduino sujeto, procedemos ha hacer el agujero para nuestro bot贸n de encendido y apagado. No lo he a帽adido en el modelo 3D, ya que no sabia que interruptor usareis, as铆 que, yo he pintado aquello que quer铆a cortar, luego he echo un par de agujeros con el taladro y luego con una lima he dejado el espacio correcto para el interruptor (en la imagen ver茅is ya puesto todos los cables, no os preocupeis, eso lo har茅is a continuaci贸n, pero antes de poner los cables, tenemos que poner nuestro potenciometro).

Antes de hacer el agujero, comprobad que os entrar谩 el bot贸n de encendido y el potenciometro, as铆 que no pong谩is completamente centrado el interruptor que sino no entrara el potenciometro. El potenciometro, lo ajustaremos lo m谩s abajo y pegado a la derecha posible.


Primero antes de poner el potenciometro, si hab茅is comprado el que he descrito en el listado de componentes, hay que des-soldar sus salidas y soldar unos cables (ya que nuestro tama帽o es limitado y no entra).


Una vez que tenemos el potenciometro, verificamos que todo entra correctamente y deber铆a quedar algo as铆.


Volveremos a colocar el portapilas, (sacando primero el interruptor, sino es posible que no os entre), poned ya las pilas y a帽adiendo por 煤ltimo el Arduino. Y ahora a cablear como esta descrito en el circuito el茅ctrico descrito anteriormente.

¡Ya casi hemos acabamos!, ahora toca poner los cables. En la imagen que hay a continuaci贸n, como pod茅is ver hay hasta 4 salidas naciendo desde uno de los GND y de la salida de 5v. hay 2 salidas, esto se ha echo porque necesitamos esas cantidad de salidas. En futuras versiones de tutoriales, crearemos nuestros propios circuitos impresos para que esto no pase.


Y ahora s铆, ya solo queda primero, poner la tapa inferior, la taladramos con 2 tornillos y fijamos bien abajo del todo. Y segundo, fijamos bien la posici贸n de la tapa superior y hacemos los 2 agujeros y lo atornillamos bien.

Con esto habr铆amos acabado el montaje de nuestra peque帽a pieza de ingenier铆a. Lo siguiente es cargarle el c贸digo (lo que nos tocar谩 abrir s贸lo la parte superior de la caja y enganchar el cable usb al ordenador).


PROGRAMACI脫N

Una vez montado todo correctamente (verificar las conexiones que eso trae mucho de cabeza). Conectamos nuestro Arduino a el ordenador y a帽adimos el c贸digo que os pongo a continuaci贸n:

#include <LCD.h>

LCD lcd;

int LED_ALARM = 11;
int PHOTOSENSOR = 0;
int HUNIDITY_ANALOGIC = 5;
int POTENCIOMETER_ANALOGIC = 4;
int ON_LCD = 12;

boolean isReset = false;

//-- Creando un dealy propio --
unsigned long previousMillis = 0;
const long interval = 10000;
long auxInterval = 0;
int actualContrast = 0;

void setup()
{
    Serial.begin(9600);
    lcd.drawBox();  // Dibujar marcos
    lcd.printText(0,1,"LUNEGATE.NET");
    lcd.printText(4,3,"Estado:");
}

void loop()
{
   //-- Control si se necesita reiniciar el lcd --
    statusLCD();
    
    //-- Lee valores de humedad --
    int valueHumidity = analogRead(HUNIDITY_ANALOGIC);
  
    //-- Delay no bloqueante --
    unsigned long currentMillis = millis();

    if (currentMillis - previousMillis >= auxInterval)
    {
      auxInterval = interval;
      previousMillis = currentMillis;
    
      //-- Pintando informacion por pantalla --
      printInformation(valueHumidity);
  
      //-- Control Led alarma muy seco --
      statusLedAlarm(valueHumidity);
    }
  
    //-- Control de oscuridad de la pantalla --
    changeDarkness();
    
    //--  Iluminar pantalla --
    ledDisplay();
 }

//-- Private Method --

void changeDarkness()
{
    int valuePotenciometer = analogRead(POTENCIOMETER_ANALOGIC);    
    if (!((actualContrast > (valuePotenciometer-3)) && (actualContrast < (valuePotenciometer+3))))
    {
       actualContrast = valuePotenciometer;
       lcd.changeContrast(valuePotenciometer);
       delay (300);
    }
}

void statusLCD()
{
   int valueLCDStatus = digitalRead(ON_LCD);
 
   if (valueLCDStatus == 0)
   {   
      isReset = true;
   }
 
   if (valueLCDStatus == 1 && isReset)
   {
       isReset = false;
       asm("jmp 0x0000");
       auxInterval = 0;
   }
}

void printInformation(int valueHumidity)
{
      if (valueHumidity < 400)
    {
       lcd.printText(4,4,"Empantanado");
    }
    else if (valueHumidity >= 400 && valueHumidity < 800)
    {
       lcd.printText(4,4,"Humedo");
    }
    else if (valueHumidity >= 800 && valueHumidity < 1000)
    {
       lcd.printText(4,4,"Seco");
    }
    else
    {
       lcd.printText(4,4,"Sequia");
    }
}

void ledDisplay()
{
    int photoSensorValue = analogRead(PHOTOSENSOR);
  
    if (photoSensorValue <400)
    {
        lcd.led(0);  // LCDS encendidos
    }
    else
    {
        lcd.led(1000);  // LCDS apagado
    }
}

void statusLedAlarm(int valueHumidity)
{
    if (valueHumidity > 1000)
    {
       digitalWrite(LED_ALARM, HIGH);
    }
    else
    {
      digitalWrite(LED_ALARM, LOW);
    }
}


Os dejo el link del c贸digo a continuaci贸n. ControlHumedad.ino

Bien, con esto concluye nuestro primer tutorial de dom贸tica. Solo queda insertar el sensor de humedad en la planta que quer谩is controlar y la tendr茅is vigilada.

Solo 2 apuntes a tener en cuenta. Primero, cuando la planta le falte mucha agua, se iluminar谩 el led rojo de alarma. Segundo, el interruptor que tenemos en la parte superior de la caja, solo enciende y apagar la pantalla LCD. Esto se ha echo as铆, porque el echo de tener la pantalla LCD encendida constamente y que los leds de la pantalla se encendieran de noche todo el tiempo, hacia que pasadas unas horas se quedara sin pilas nuestro sistema de detecci贸n de humedad.

Actualizaci贸n:Se ha a帽adido una entrada que detecta cuando se pulsa el bot贸n de encendido del LCD, ya que si no detectabamos este evento la pantalla no se iluminaba. En lo referente al contraste de la pantalla, el tiempo de refresco no afectara a la misma.

Actualmente esta puesto a que el sensor mida la humedad cada 10.000ms, o lo que es lo mismo, 10 segundo, si se enciende la pantalla se actualiza automaticamente los datos.

En la foto final, esta sin potenciometro, pero bueno, la hice en la version 1.0 y esta es la 2.0.

Bueno, espero que os haya gustado y que pong谩is comentarios de que os parece o que mejorar铆ais.




Arduino Dom贸tica fotosensor LCD Nokia 5110 sensor humedad Tutoriales

mi茅rcoles, 4 de enero de 2017

Tutorial: Aprender a usar un led RGB con Arduino


Bienvenido a un nuevo tutorial de Lunegate, hoy vamos a prender a usar un componente muy 煤til y muy sencillo de usar, un led RGB. En este caso usaremos uno que ya viene preparado para Arduino y no tendremos que a帽adirle ni siquiera una resistencia.

INTRODUCCI脫N

Estos componentes, son realmente baratos si los compramos simplemente el led rgb, aunque la versi贸n simplificada para Arduino, tampoco se ira mucho de presupuesto.

Las dimensiones son 2.5 cm x 1.5 cm x 0.2 cm y un peso de 5 g. El precio de este led rgb es de 1,70€.

Por 煤ltimo, os por si realiz谩is proyectos de electr贸nica, el s铆mbolo usado es este:


Para este tutorial, se requerir谩
Dificultad:

           Tiempo:  5 minutos (montarlo y programarlo)


MATERIAL NECESARIO

A continuaci贸n os describo el material necesario para realizar el tutorial y donde conseguirlo:

Imagen
Nombre producto
Donde comprarlo
Led RGB
Arduino Micro
Conectores universales


MONTAJE

Bien una vez que disponemos de todos los componentes, vamos a ponernos manos a la obra. Para ello os dejo a continuaci贸n un esquem谩tico de como deb茅is interconectar los diferentes componentes para que esto funcione.


Como pod茅is ver, la conexi贸n es muy sencilla, las 3 salidas de los colores R - G - B, ir谩n a nuestras salidas digitales, y la 煤ltima que vendr谩 marcada con un "-" deber茅is conectarla a GND (tierra de Arduino).


PROGRAMACI脫N

Una vez montado todo correctamente (verificar las conexiones que eso trae mucho de cabeza). Conectamos nuestro Arduino a el ordenador y a帽adimos el c贸digo que os pongo a continuaci贸n:

int led = 4;    // 6 , 5 y 4 (para probar los colores ser铆a cambiar estos pines)

void setup() {               
     pinMode(led, OUTPUT);    
}

void loop() {
      digitalWrite(led, HIGH);   // encender el LED  (HIGH es voltaje alto)
      delay(1000);                       // esperamos un segundo
      digitalWrite(led, LOW);    // apagar el LED  (LOW es voltaje bajo)
      delay(1000);                       // esperamos un segundo
}




PUNTUACI脫N

Calidad Componentes
4,5
Montaje
4,5
Precio
4,0
Caracter铆sticas
4,0
Puntuaci贸n Global
4,5


Actuadores Arduino led rgb Tutoriales
 

Productos y tecnologias usadas en este blog:

  • Copyright © LuneGate™ is a registered trademark.
    Designed by Templateism. Hosted on Blogger Platform.