11/21/2012

Instalar cliente correo Mozilla Thunderbird en WXP, importar contactos Google



Instalar cliente de correo Mozilla Thunderbird, configurar cuenta de mail. Cómo importar los contactos de Mozilla Thunderbird a una cuenta de Google y de Google a Thunderbird.



Instalar Mozilla Thunderbird en equipo con Windows XP

Para instalar Mozilla Thunderbird, abriremos un navegador web y accederemos a la URL:
www.mozilla.org/es-ES/thunderbird
(la URL puede variar en función del idioma)
Pulsaremos en "Thunderbird Descarga gratuita":
Instalar Mozilla Thunderbird en equipo con Windows XP
Una vez descargado el fichero Thunderbird Setup 16.0.2.exe (o el que corresponda) lo ejecutaremos para iniciar la instalación:
Instalar Mozilla Thunderbird en equipo con Windows XP
Se iniciará el asistente para instalar Mozilla Thunderbird, pulsaremos "Siguiente":
Instalar Mozilla Thunderbird en equipo con Windows XP
Marcaremos "Personalizada" en el tipo de instalación y marcaremos "Usar Thunderbird como mi aplicación de correo por defecto" (si no tenemos otro cliente de correo electrónico en el equipo):
Instalar Mozilla Thunderbird en equipo con Windows XP
Elegiremos la carpeta de destino de la instalación de Thunderbird y pulsaremos "Siguiente":
Instalar Mozilla Thunderbird en equipo con Windows XP
Si queremos que Thunderbird se actualice automáticamente y de forma silenciosa (sin nuestra intervención) marcaremos la opción "Instalar servicio de mantenimiento", para comprobar actualizaciones manualmente no marcaremos esta opción. Pulsaremos "Siguiente":
Instalar Mozilla Thunderbird en equipo con Windows XP
Elegiremos dónde se crearán los accesos directos de Thunderbird y pulsaremos "Siguiente":
Instalar Mozilla Thunderbird en equipo con Windows XP
El asistente nos mostrará la carpeta de destino de los ficheros de Thunderbird, pulsaremos "Instalar" para instalarlo definitivamente en el equipo:
Instalar Mozilla Thunderbird en equipo con Windows XP
Tras la instalación de Mozilla Thunderbird, marcaremos "Ejecutar Mozilla Thunderbird ahora" y pulsaremos "Finalizar":
Instalar Mozilla Thunderbird en equipo con Windows XP

 

Configurar cuenta de correo electrónico en Mozilla Thunderbird

Para configurar una cuenta de correo electrónico en Thunderbird, podremos hacerlo con el asistente la primera vez que iniciamos Thunderbird o más adelante desde el menú "Herramientas" - "Configuración de las cuentas". Para configurar una cuenta en el primer inicio pulsaremos en "Saltarse esto y usar mi cuenta de correo existente" (para el caso en que dispongamos de una cuenta de correo electrónico con cualquier proveedor Google, Hotmail, Yahoo, Dinahosting, Arsys, Acens, 1and1, etc.):
Configurar cuenta de correo electrónico en Mozilla Thunderbird
Introduciremos los siguientes datos:
  • Su nombre: nombre para mostrar, el que verá el destinatario del correo electrónico, por ejemplo "Alonso Javier (Proyecto AjpdSoft).
  • Dirección de correo: cuenta de correo electrónico completa.
  • Contraseña: contraseña de acceso al correo electrónico.
  • Recordar contraseña: marcaremos esta opción si queremos que Thunderbird almacene la contraseña y no nos la vuelva a pedir, esto es útil si tenemos contraseña de acceso al equipo y no lo va a usar otro usuario. Si no estamos seguros de que el equipo pueda ser usado por usuario usuario y no queremos que acceda a nuestro correo desmarcaremos esta opción.
Pulsaremos en "Continuar":
Configurar cuenta de correo electrónico en Mozilla Thunderbird
Thunderbird intentará obtener la configuración en la base de datos de ISP de Mozilla, según el proveedor donde tengamos alojado el correo. Mozilla cuenta con una base de datos donde guarda las configuraciones personalizadas de gran parte de los proveedores de servicios de correo electrónico, si lo detecta, establecerá una configuración predeterminada (podremos modificarla). En nuestro caso hemos usado una cuenta de GMail, de Google, por lo que mostrará los servidores de correo entrante (POP3) y saliente (SMTP) de Google así como la configuración de seguridad SSL y demás. Elegiremos si deseamos IMAP (las carpetas del cliente se crearán en el servidor de correo y se sincronizarán todos los cambios) o POP3 (las carpetas del cliente se crearán en el equipo y no se sincronizarán en el servidor, sí se sincronizarán los correos pero no las carpetas). Pulsaremos "Config. manual" para establecer y verificar la configuración de la cuenta de correo electrónico:
Configurar cuenta de correo electrónico en Mozilla Thunderbird
Introduciremos los datos del servidor de correo, para el caso del correo de GMail de Google:
  • Entrante: pop.googlemail.com, puerto 995, SSL/TLS, Contraseña normal.
  • Saliente: smtp.googlemail.com, puerto 465, SSL/TLS, Contraseña normal.
Una vez introducidos todos los datos pulsaremos "Hecho":
Configurar cuenta de correo electrónico en Mozilla Thunderbird
Si todo es correcto Thunderbird contactará con el servidor de correo electrónico y descargará los correos de la cuenta elegida:
Configurar cuenta de correo electrónico en Mozilla Thunderbird
Para modificar la cuenta de correo electrónico o añadir más cuentas pulsaremos en el menú "Herramientas" - "Configuración de las cuentas":
Configurar cuenta de correo electrónico en Mozilla Thunderbird
Desde la ventana de "Configuración de l cuenta" podremos añadir nuevas cuentas pulsando en "Operaciones sobre la cuenta" y "Añadir cuenta de correo". Para modificar los datos de alguna existente la desplegaremos en el árbol de la izquierda y seleccionaremos el elemento a modificar, por ejemplo "Configuración del servidor", en la parte derecha podremos modificar todos los parámetros (tipo de servidor, nombre, puerto, usuario, seguridad, dejar copia de los mensajes en el servidor, directorio donde se guardan los datos del correo local, ...):
Configurar cuenta de correo electrónico en Mozilla Thunderbird
Podremos configurar y agregar servidores de salida SMTP:
Configurar cuenta de correo electrónico en Mozilla Thunderbird
Desde "Carpetas locales" podremos consultar la unidad y carpeta donde se guardan los datos de la cuenta de correo de Thunderbird, por defecto:
C:/Documents and Settings/usuario/Datos de programa/Thunderbird/Profiles/zeyz2r4s.default/Mail/Local Folders
Configurar cuenta de correo electrónico en Mozilla Thunderbird

Importar contactos de Thunderbird a Google, sincronizar contactos con Zindus

Para sincronizar los contactos desde Thunderbird a Google (importar contactos a Google desde Thunderbird) si tenemos alguno y viceversa (desde una cuenta de Google a Thunderbird) tenemos varias posibilidades. Podemos usar alguno de los complementos para Thunderbird o bien exportarlos a fichero CSV en Thunderbird e importarlos en Google, aunque en este caso hay que hacer algunas modificaciones en el fichero CSV para que Google lo reconozca.
En nuestro caso usaremos un complemento o plugin llamado Zindus para Thunderbird que permite sincronizar los contactos que tengamos en nuestra cuenta de Google con los que tengamos en el cliente de Thunderbird. Para instalar este complemento accederemos al menú "Herramientas" - "Complementos":
Importar contactos de Thunderbird a Google, sincronizar contactos con Zindus
Introduciremos "zindus" en el campo de búsqueda y pulsaremos en la lupa, nos mostrará el complemento "Zindus 0.8.42" (Sincronización de los contactos de Google y Zimbra para Thunderbird), pulsaremos en "Instalar":
Importar contactos de Thunderbird a Google, sincronizar contactos con Zindus
Se instalará Zindus, nos indicará que la instalación finalizará cuando reiniciemos Thunderbird, pulsaremos "Reiniciar ahora":
Importar contactos de Thunderbird a Google, sincronizar contactos con Zindus
Tras el reinicio de Thunderbird ya podremos usar Zindus, para ello pulsaremos en el menú "Herramientas" - "Zindus":
Importar contactos de Thunderbird a Google, sincronizar contactos con Zindus
Pulsaremos "Add" para añadir una nueva cuenta de correo de Google desde la que se sincronizarán los contactos:
Importar contactos de Thunderbird a Google, sincronizar contactos con Zindus
Una vez introducida la cuenta de Google y la contraseña podremos realizar un test de conexión pulsando en "Text connection":
Importar contactos de Thunderbird a Google, sincronizar contactos con Zindus
Si todo es correcto nos mostrará "Login successful":
Importar contactos de Thunderbird a Google, sincronizar contactos con Zindus
Podremos establecer las opciones de configuración normales (sincronización automática marcando "Auto sync" y modo informativo marcando "Verbose logging") y podremos establecer otras opciones de configuración avanzadas pulsando en "Advanced Google Settings":
Importar contactos de Thunderbird a Google, sincronizar contactos con Zindus
Cuando queramos realizar la sincronización de los contactos de Google con Thunderbird pulsaremos en "Sync Now":
Importar contactos de Thunderbird a Google, sincronizar contactos con Zindus
Si todo es correcto se iniciará la sincronización de los contactos de Google con Thunderbird y nos mostraá el resultado, en nuestro caso ha añadido 8 contactos de Google a Thunderbird y 2 contactos de Thunderbird a Google:
Importar contactos de Thunderbird a Google, sincronizar contactos con Zindus
Desde el menú "Herramientas" - "Libreta de direcciones" podremos consultar los contactos en Thunderbird:
Importar contactos de Thunderbird a Google, sincronizar contactos con Zindus
Thunderbird nos mostrará todos los contactos (los que tuviésemos en Thunderbird antes de la sincronización y los nuevos de nuestra cuenta de GMail de Google):
Importar contactos de Thunderbird a Google, sincronizar contactos con Zindus
Accediendo a nuestra cuenta de Google también podremos consultar los contactos, tanto los que tuviésemos en Google como los nuevos que se hayan importado desde Thunderbird:
Importar contactos de Thunderbird a Google, sincronizar contactos con Zindus


Artículos relacionados

 

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft, con la inestimable colaboración de Antonio RN de RS.

11/19/2012

Arduino UNO con Display LCD Keypad Shield y sensor temperatura

Conectar pantalla LCD a Arduino UNO e interactuar con ella, mostrar temperatura



Explicamos en este tutorial cómo conectar una pantalla LCD a Arduino UNO. Mostramos varios ejemplos de código para interacturar con los botones del shield LCD (keypad) de la pantalla LCD para movernos por los menús. Explicamos también cómo cambiar la luminosidad de la pantalla LCD (intensidad de la retroiluminación) desde el menú (con los keypad) y cómo conectar un sensor de temperatura y mostrarla en la pantalla LCD.



Cómo conectar display LCD Keypad Shield a Arduino UNO

En este tutorial explicaremos y mostraremos ejemplos para trabajar con una pantalla LCD (display LCD Keypad Shield) conectada a Arduino. Para ello necesitaremos una pantalla LCD (Display LCD Keypad Shield), en concreto usaremos un Arduino LCD Keypad Shield 16x2 HD44780 con un coste aproximado de 18 euros:
Cómo conectar display LCD Keypad Shield a Arduino UNO
Por supuesto necesitaremos un Arduino UNO, en el siguiente tutorial explicamos cómo adquirirlo y cómo conectarlo al PC para transferir el programa:
Conectaremos el LCD a Arduino como mostramos en la imagen:
Cómo conectar display LCD Keypad Shield a Arduino UNO
En el siguiente tutorial explicamos cómo descargar el software para realizar programas y enviarlos a Arduino, también explicamos cómo conectar Arduino a un PC para el envío de programas:

Programa Arduino para mostrar texto en display LCD y contador que se va incrementando

Una vez conectado el display LCD a Arduino y conectado Arduino al PC por el puerto USB, desde el IDE de desarrollo de Arduino pegaremos el siguiente programa:
/*
 Ejemplo de uso de display LCD 16x2.  Usando la librería LiquidCrystal
 library compatible con el driver de Hitachi HD44780 driver 
*/

// incluimos la libreria LiquidCrystal
#include 

// inicializamos la librería con los numeros pins del interfaz
// cada LCD puede llevar sus propios numeros
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);

void setup() {
  // establecemos el numero de columnas y filas del display 
  lcd.begin(16, 2);
  // enviamos el mensaje a mostrar en el display
  lcd.print("www.ajpdsoft.com");
}

void loop() {
  // enviamos la posicion del cursor al display
  // (nota: la linea 1 es la segunda fila, empieza a contar en 0
  lcd.setCursor(0, 1);
  // mostramos el numero de segundos desde el inicio del programa
  lcd.print(millis()/1000);
}
Programa Arduino para mostrar texto en display LCD y contador que se va incrementando
Comprobaremos la sintaxis pulsando en "Verificar":
Programa Arduino para mostrar texto en display LCD y contador que se va incrementando
Si todo es correcto pulsaremos en el botón "Cargar" para enviar el programa a Arduino:
Programa Arduino para mostrar texto en display LCD y contador que se va incrementando
Si todo es correcto el programa quedará transferido a la memoria de Arduino y se iniciará, mostrando el texto indicando en el display LCD (en nuestro caso "www.ajpdsoft.com") y un contador de segundos en la segunda línea:
Programa Arduino para mostrar texto en display LCD y contador que se va incrementando


Programa Arduino para mostrar texto en scroll en display LCD

Un ejemplo de programa Arduino para mostrar un texto en movimiento en un display LCD:
// include the library code:
#include 

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("www.ajpdsoft.com");
  delay(1000);
}

void loop() {
  // scroll 13 positions (string length) to the left 
  // to move it offscreen left:
  for (int positionCounter = 0; positionCounter < 13; positionCounter++) {
    // scroll one position left:
    lcd.scrollDisplayLeft(); 
    // wait a bit:
    delay(150);
  }

  // scroll 29 positions (string length + display length) to the right
  // to move it offscreen right:
  for (int positionCounter = 0; positionCounter < 29; positionCounter++) {
    // scroll one position right:
    lcd.scrollDisplayRight(); 
    // wait a bit:
    delay(150);
  }
  
    // scroll 16 positions (display length + string length) to the left
    // to move it back to center:
  for (int positionCounter = 0; positionCounter < 16; positionCounter++) {
    // scroll one position left:
    lcd.scrollDisplayLeft(); 
    // wait a bit:
    delay(150);
  }
  
  // delay at the end of the full loop:
  delay(1000);
}


Programa Arduino para introducir texto en el LDC con las teclas de desplazamiento

Un ejemplo de programa Arduino para mostrar un texto en la primera línea de una pantalla LCD y en la segunda permite que el usuario introduzca un texto usando las teclas de desplazamiento del display LCD:
#include 

LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);

int adc_key_val[5] = {50, 200, 400, 600, 800 };
int NUM_KEYS = 5;
int adc_key_in;
int key=-1;
int oldkey=-1;
boolean luzEncendida=true;
boolean cursorActivo=false;
unsigned long time;
int x=0;
char caracterActual = 'A';

void setup()
{
  lcd.clear(); 
  lcd.begin(16, 2);
  lcd.setCursor(0,0); 
  lcd.print("www.ajpdsoft.com");
  time = millis();
  //  pinMode(10, OUTPUT);
}

void loop()
{
  if (millis()-time > 10000) {  // Si han pasado mas de 10 segundos apagamos la luz
    pinMode(10, OUTPUT);
    digitalWrite(10, LOW);
    luzEncendida=false;
  }
  if (millis()-time > 5000) {  // Si han pasado mas de 5 segundos apagamos el cursor
    lcd.noBlink();
    cursorActivo=false;
  } 

  adc_key_in = analogRead(0);    // Leemos el valor de la pulsacion
  key = get_key(adc_key_in);    // Obtenemos el boton pulsado

  if (key != oldkey)   // if keypress is detected
  {
    delay(50);  // Espera para evitar los rebotes de las pulsaciones
    adc_key_in = analogRead(0);    // Leemos el valor de la pulsacion
    key = get_key(adc_key_in);    // Obtenemos el boton pulsado
    if (key != oldkey)    
    {
      time = millis();  // TODO: falta la comprobacion de si se ha desbordado el tiempo
      if (!luzEncendida) {  // Al pulsar cualquier tecla encendemos la pantalla
        pinMode(10, INPUT);
        luzEncendida=true;
      } 
      else {  // si la pantalla esta encendida seguimos funcionando normalmente
        lcd.setCursor(x, 1);
        oldkey = key;
        if (key >=0){  // Si se ha pulsado cualquier tecla
          lcd.blink();  // Mostramos el cursor parpadeando
          cursorActivo=true;
        }
        if (key == 0){  // Se ha pulsado la tecla derecha
          x++;
          if (x>15) x=15;
          caracterActual='A';
        }
        if (key == 1) {  // Se ha pulsado la tecla arriba
          caracterActual++;
          if (caracterActual > 'Z') caracterActual='Z';
          lcd.write(caracterActual);
        }
        if (key == 2) {  // Se ha pulsado la tecla abajo
          caracterActual--;
          if (caracterActual < 'A') caracterActual='A';
          lcd.write(caracterActual);
        }
        if (key == 3) {  // Se ha pulsado la tecla izquierda
          x--;
          if (x<0) x=0;
          caracterActual='A';
        }
        if (key == 4){  // Se ha pulsado la tecla de seleccion
        }
        lcd.setCursor(x, 1);
      }
    }
  }
  delay(100);
}

// Convertimos el valor leido en analogico en un numero de boton pulsado
int get_key(unsigned int input)
{
  int k;

  for (k = 0; k < NUM_KEYS; k++)
  {
    if (input < adc_key_val[k])
    {
      return k;
    }
  }

  if (k >= NUM_KEYS)k = -1;  // Error en la lectura
  return k;
}



Programa Arduino para mostrar menús y submenús en display LCD

Un ejemplo de programa Arduino para mostrar un menú y sus submenús correspondientes en una pantalla LCD:
#include 

LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);

const int numeroDeMenus=5;
const int numeroMaximoDeSubmenus=4;

char tituloMenu[numeroDeMenus][16] = {
  "1  Menu 1    ",
  "2  Menu 2    ",               
  "3  Menu 3    ",
  "4  Menu 4    ",
  "5  Menu 5    " };
  
byte numeroDeSubmenus[numeroDeMenus] = {4,3,2,1,4};

char tituloSubmenu[numeroDeMenus][numeroMaximoDeSubmenus][16] = 
{
  "1.1 Submenu 1","1.2 Submenu 2","1.3 Submenu 3","1.4 Submenu 4",
  "2.1 Submenu 1","2.2 Submenu 2","2.3 Submenu 3","",
  "3.1 Submenu 1","3.2 Submenu 2","","",
  "4.1 Submenu 1","","","",
  "5.1 Submenu 1","5.2 Submenu 2","5.3 Submenu 3","5.4 Submenu 4"};

int adc_key_val[5] ={
  50, 200, 400, 600, 800 };
int NUM_KEYS = 5;
int adc_key_in;
int key=-1;
int oldkey=-1;
boolean luzEncendida=true;
boolean cursorActivo=false;
unsigned long time;
int x=0;
int y=0;

void setup()
{
  lcd.clear(); 
  lcd.begin(16, 2);
  lcd.setCursor(0,0); 
  lcd.print("www.ajpdsoft.com");
  lcd.setCursor(0,1); 
  lcd.print("Menu version 0.1");
  delay(5000);
  lcd.setCursor(0,0); 
  lcd.print("Muevase con las ");
  lcd.setCursor(0,1); 
  lcd.print("teclas direccion");
  delay(4000);
  lcd.clear();
  lcd.setCursor(0,0); 
  lcd.print("Menu principal");
  lcd.setCursor(0,1); 
  lcd.print(tituloMenu[x]);
  time = millis();
  //  pinMode(10, OUTPUT);
}

void loop()
{
  // Si han pasado mas de 10 segundos apagamos la luz
  if (millis()-time > 10000) {
    pinMode(10, OUTPUT);
    digitalWrite(10, LOW);
    luzEncendida=false;
  }
  // Si han pasado mas de 5 segundos apagamos el cursor
  if (millis()-time > 5000) {
    lcd.noBlink();
    cursorActivo=false;
  } 

  adc_key_in = analogRead(0);    // Leemos el valor de la pulsacion
  key = get_key(adc_key_in);    // Obtenemos el boton pulsado

  if (key != oldkey)   // if keypress is detected
  
    delay(50);  // Espera para evitar los rebotes de las pulsaciones
    adc_key_in = analogRead(0);    // Leemos el valor de la pulsacion
    key = get_key(adc_key_in);    // Obtenemos el boton pulsado
    if (key != oldkey)    
    {
      // TODO: falta la comprobacion de si se ha desbordado el tiempo
      time = millis();  
      if (!luzEncendida) {  // Al pulsar cualquier tecla encendemos la pantalla
        pinMode(10, INPUT);
        luzEncendida=true;
      } 
      else {  // si la pantalla esta encendida seguimos funcionando normalmente
        oldkey = key;
        if (key >=0){  // Si se ha pulsado cualquier tecla
          lcd.blink();  // Mostramos el cursor parpadeando
          cursorActivo=true;
        }
        if (key == 0){  // Se ha pulsado la tecla derecha
          x++;
          if (x>numeroDeMenus-1) x=numeroDeMenus-1;
          y=0;
        }
        if (key == 1) {  // Se ha pulsado la tecla arriba
          y++;
          if (y > numeroDeSubmenus[x]-1) y=numeroDeSubmenus[x]-1;
        }
        if (key == 2) {  // Se ha pulsado la tecla abajo
          y--;
          if (y < 0) y=0;
        }
        if (key == 3) {  // Se ha pulsado la tecla izquierda
          x--;
          if (x<0) x=0;
          y=0;
        }
        if (key == 4){  // Se ha pulsado la tecla de seleccion
        }
        lcd.clear();
        lcd.setCursor(0,0); 
        lcd.print(tituloMenu[x]);
        lcd.setCursor(0,1); 
        lcd.print(tituloSubmenu[x][y]);
      }
    }
  }
  delay(50);
}

// Convertimos el valor leido en analogico en un numero de boton pulsado
int get_key(unsigned int input)
{
  int k;

  for (k = 0; k < NUM_KEYS; k++)
  {
    if (input < adc_key_val[k])
    {
      return k;
    }
  }

  if (k >= NUM_KEYS)k = -1;  // Error en la lectura
  return k;
}

Programa Arduino para mostrar temperatura, opciones modificables, luminosidad en display LCD

Un ejemplo de programa Arduino para mostrar la temperatura de un habitáculo usando un sensor de temperatura (NTC o resistencia variable con la temperatura de coeficiente negativo) en una pantalla LCD Keypad Shield. El programa también permite modificar la luminosidad (intensidad de la retroiluminación) del display LCD, cambiar parámetros, guardar valores en memoria EEPROM, etc.
Para conectar el sensor de temperatura (NTC o resistencia variable con la temperatura de coeficiente negativo) se pueden seguir las intrucciones del siguiente tutorial:
Con la diferencia de que hemos conectado el sensor de temperatura a la entrada analógica 1 porque la 0 la usa el LCD.
El código del programa completo Arduino:

#include 
#include 
#define ThermistorPIN 1  // Analog Pin 1
#define NUM_KEYS 5

/*
  Circuito del dispaly LCD:
 * LCD RS pin to digital pin 8
 * LCD Enable pin to digital pin 9
 * LCD D4 pin to digital pin 4
 * LCD D5 pin to digital pin 5
 * LCD D6 pin to digital pin 6
 * LCD D7 pin to digital pin 7
 * LCD BL pin to digital pin 10
 * KEY pin to analogl pin 0
 *
 * Esquema del sensor de temperatura:
 *   [Ground] -- [10k-pad-resistor] -- | -- [10k thermistor] --[Vcc (5v)]
 *                                     |
 *                                Analog Pin 1
 */


LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);

const int numeroDeMenus=6;

char tituloMenu[numeroDeMenus][16] = {
  "Fijar Temp.: ",
  "Fijar Tiempo:",               
  "Kp:          ",
  "Kd:          ",
  "Ki:          ",
  "Intensidad:  " };

int adc_key_val[5] ={
  50, 200, 400, 600, 800 };
int adc_key_in;
int key=-1;
int oldkey=-1;
boolean luzEncendida=true;
boolean cursorActivo=false;
boolean enMenu=false;
unsigned long time;
unsigned long tiempoPID;
byte numeroLecturas=0;
int x=0;
int signo=0;
char temp[10];
int lecturas[100];
byte numeroLectura=0;
//int lectura=0;
int maximo, minimo, diferencia, t1, t2, t3;
byte consigna=25;
byte tiempo=1;
byte kp=1;
byte kd=1;
byte ki=1;
byte intensidad=10;


void setup()
{
  cargarConfig();
  pinMode(10, OUTPUT);
  analogWrite(10,intensidad*25);
  Serial.begin(9600); 
  lcd.clear(); 
  lcd.begin(16, 2);
  lcd.setCursor(0,0); 
  lcd.print("www.ajpdsoft.com");
  lcd.setCursor(0,1); 
  lcd.print("C.Ventanas v1.0 ");
  delay(2000);
  //  lcd.setCursor(0,0); 
  //  lcd.print("Muevase con las ");
  //  lcd.setCursor(0,1); 
  //  lcd.print("teclas direccion");
  //  delay(4000);
  lcd.clear();
  lcd.setCursor(0,0); 
  lcd.print("Temperatura:    ");
  lcd.setCursor(0,1);
  int lectura=getTemp(1);
  sprintf(temp, "%3d%c%1d%cC", lectura/100, '.', lectura/10%10,223);
  lcd.print(temp);
  time = millis();
  tiempoPID = millis();
}

void loop()
{
  int lectura = getTemp(ThermistorPIN);
  lecturas[numeroLectura++] = lectura;
  if (millis()-time > 20000) {  // Si han pasado mas de 20 segundos apagamos la luz
    digitalWrite(10, LOW);
    luzEncendida=false;
  }
  if (millis()-time > 7000) {  // Si han pasado mas de 7 segundos salimos del menu
    if (enMenu) guardarConfig();
    enMenu = false;
    x=0;
    time = millis();
    //  }
    //  if (!enMenu) {
    lcd.clear();
    lcd.setCursor(0,0); 
    lcd.print("Temperatura:    ");
    lcd.setCursor(0,1);
    sprintf(temp, "%3d%c%1d%cC", lectura/100, '.', lectura/10%10,223);
    lcd.print(temp);
    //    Serial.print("Temperatura[");
    //    Serial.print(numeroLectura);
    //    Serial.print("]: "); 
    //    Serial.println(temp); 
  }
  if (millis()-time > 5000) {  // Si han pasado mas de 5 segundos apagamos el cursor
    lcd.noBlink();
    cursorActivo=false;
  } 

  adc_key_in = analogRead(0);    // Leemos el valor de la pulsacion
  key = get_key(adc_key_in);    // Obtenemos el boton pulsado

  if (key != oldkey)   // if keypress is detected
  {
    delay(50);  // Espera para evitar los rebotes de las pulsaciones
    adc_key_in = analogRead(0);    // Leemos el valor de la pulsacion
    key = get_key(adc_key_in);    // Obtenemos el boton pulsado
    if (key != oldkey)    
    {
      time = millis();  // TODO: falta la comprobacion de si se ha desbordado el tiempo
      if (!luzEncendida) {  // Al pulsar cualquier tecla encendemos la pantalla
        analogWrite(10,intensidad*25);
        luzEncendida=true;
      } 
      else {  // si la pantalla esta encendida seguimos funcionando normalmente
        oldkey = key;
        char accion = 0;
        if (key >=0){  // Si se ha pulsado cualquier tecla
          lcd.blink();  // Mostramos el cursor parpadeando
          cursorActivo=true;
        }
        if ((key == 0) && (enMenu)){  // Se ha pulsado la tecla derecha
          x++;
          if (x>numeroDeMenus-1) x=numeroDeMenus-1;
        }
        if ((key == 1) && (enMenu)) {  // Se ha pulsado la tecla arriba
          accion++;
        }
        if ((key == 2) && (enMenu)) {  // Se ha pulsado la tecla abajo
          accion = accion-1;
        }
        if ((key == 3) && (enMenu)) {  // Se ha pulsado la tecla izquierda
          x--;
          if (x<0) x = 0;
        }
        if (key == 4){  // Se ha pulsado la tecla de seleccion
        }
        enMenu = true;
        lcd.clear();
        lcd.setCursor(0,0); 
        lcd.print(tituloMenu[x]);
        lcd.setCursor(0,1); 
        switch (x) {
        case 0: // Estamos en fijar temperatura
          consigna += accion;
          lcd.print(consigna);
          lcd.print((char)223);
          lcd.print("C");
          break;
        case 1:  // Estamos en fijar tiempo
          tiempo += accion;
          lcd.print(tiempo);
          lcd.print("0 seg.");
          break;
        case 2:  // Estamos en Kp.
          kp += accion;
          lcd.print(kp);
          break;
        case 3:  // Estamos en Kd.
          kd += accion;
          lcd.print(kd);
          break;
        case 4:  // Estamos en Ki.
          ki += accion;
          lcd.print(ki);
          break;
        case 5:  // Estamos en Ki.
          intensidad += accion;
          if (intensidad > 254) intensidad = 0;
          if (intensidad > 10) intensidad = 10;
          lcd.print(intensidad);
          lcd.print("0%");
          analogWrite(10,intensidad*25);
          break;
        } 
      }
    }
  }
  if ((numeroLectura > 99) && (numeroLecturas < 2)) {
    long suma = 0;
    maximo = -10000;
    minimo = 10000;
    for (int i=0; i < 100; i++){
      suma = suma + lecturas[i];
      if (lecturas[i] > maximo) {
        maximo = lecturas[i];
      }
      if (lecturas[i] < minimo) {
        minimo = lecturas[i];
      }

      //      Serial.print("Temperatura[");
      //      Serial.print(i);
      //      Serial.print("]: "); 
      //      Serial.println(lecturas[i]); 
    }
    diferencia = maximo - minimo;
    suma = suma / 100;
    // Si la diferencia es superior a un grado 
    //es que ha habido un error en la lectura
    if (diferencia > 100) {  
      Serial.println("Lectura no valida");
      // TODO: Descartar lectura y repetir la medida
    } 
    else {
      numeroLecturas++;
      t3=t2;
      t2=t1;
      t1=suma;
    }
    Serial.print("Suma: "); 
    Serial.println(suma); 
/*    Serial.print("Media: "); 
    Serial.print(suma/100); 
    Serial.print(","); 
    Serial.println(suma/10%10); 
    Serial.print("Maximo: "); 
    Serial.print(maximo/100); 
    Serial.print(","); 
    Serial.print(maximo/10%10); 
    Serial.print(" - Minimo: "); 
    Serial.print(minimo/100); 
    Serial.print(","); 
    Serial.print(minimo/10%10); 
    Serial.print(" - Diferencia: "); 
    Serial.print(diferencia/100); 
    Serial.print(","); 
    Serial.println(diferencia/10%10); */
  }
  if (numeroLectura > 99) {
    // Cuando se termina de tomar las 100 
    //lecturas empezamos de nuevo por la primera
    numeroLectura = 0;
  }
  PID();
  delay(10);
  // Si se desborda millis() empieza otra 
  //vez por cero, ocurre cada 50 dias
  if (millis() < time){   
    time = millis();
  }
}

void PID(){
  // Si se desborda millis() empieza otra 
  // vez por cero, ocurre cada 50 dias
  if (millis() < tiempoPID){   
    tiempoPID = millis();
  }
  // Si no ha pasado todavía el timepo de ciclo del PID
  if (millis() < tiempoPID + (tiempo*10*1000)){  
    // entonces mantenemos la fuerza y esperamos mas tiempo
    // s = sActualPID;  
  } 
  else if (numeroLecturas >= 2){
    numeroLecturas--;
    Serial.print("Distancia a la consigna: ");
    Serial.print(t1-consigna*100);
    Serial.print(" - Velocidad: ");
    Serial.println(t1-t2);
    tiempoPID = millis();
  }

}

// Convertimos el valor leido en analogico 
// en un numero de boton pulsado
int get_key(unsigned int input)
{
  int k;

  for (k = 0; k < NUM_KEYS; k++)
  {
    if (input < adc_key_val[k])
    {
      return k;
    }
  }

  if (k >= NUM_KEYS)k = -1;  // Error en la lectura.
  return k;
}

int temperaturaFicticia = 2450;
int ptf= 0;
int getTemp(byte input)
{
  int  celsius = Thermistor(analogRead(input))*100; 
  return celsius;
  temperaturaFicticia += (random(7)-3-ptf);
  if (temperaturaFicticia > 2800) ptf = 1;
  if (temperaturaFicticia < 2000) ptf = 0;
  return temperaturaFicticia;
}

float pad = 10000;  // balance/pad resistor value, set this to
                   // the measured resistance of your pad resistor
// float thermr = 10000; // thermistor nominal resistance

float Thermistor(int RawADC) {
  long Resistance;  
  float Temp;  // Dual-Purpose variable to save space.

  Resistance=((1024 * pad / RawADC) - pad); 
  // Saving the Log(resistance) so not to calculate  it 4 times later
  Temp = log(Resistance); 
  Temp = 1 / (0.001129148 + (0.000234125 * Temp) + 
         (0.0000000876741 * Temp * Temp * Temp));
  Temp = Temp - 273.15;  // Convert Kelvin to Celsius                      

  return Temp;    // Devolver temperatura
}

boolean cargarConfig(){
  if ((EEPROM.read(0) == 27) && (EEPROM.read(1) == 28) && 
     (EEPROM.read(2) == 13) && (EEPROM.read(3) == 18)) {
    // Comprobamos que la eeprom tenga una 
    // configuracion valida con numeros concretos
    // solo cargamos el valor de la configuracion si los valores coinciden
    if (EEPROM.read(4) == EEPROM.read(5)) consigna = EEPROM.read(4);  
    if (EEPROM.read(6) == EEPROM.read(7)) tiempo = EEPROM.read(6);
    if (EEPROM.read(8) == EEPROM.read(9)) kp = EEPROM.read(8);
    if (EEPROM.read(10) == EEPROM.read(11)) kd = EEPROM.read(10);
    if (EEPROM.read(12) == EEPROM.read(13)) ki = EEPROM.read(12);
    if (EEPROM.read(14) == EEPROM.read(15)) intensidad = EEPROM.read(14);
    return true;
  }
  return false;
}

void guardarConfig(){
  EEPROM.write(0,27);
  EEPROM.write(1,28);
  EEPROM.write(2,13);
  EEPROM.write(3,18);
  // Ponemos nmeros concretos en el comienzo 
  // de la EEPROM para confirmar que tiene valores correctos.
  EEPROM.write(4,consigna);
  EEPROM.write(5,consigna);  // almacenamos los valores 2 veces
  EEPROM.write(6,tiempo);
  EEPROM.write(7,tiempo);  // almacenamos los valores 2 veces
  EEPROM.write(8,kp);
  EEPROM.write(9,kp);  // almacenamos los valores 2 veces
  EEPROM.write(10,kd);
  EEPROM.write(11,kd);  // almacenamos los valores 2 veces
  EEPROM.write(12,ki);
  EEPROM.write(13,ki);  // almacenamos los valores 2 veces
  EEPROM.write(14,intensidad);
  EEPROM.write(15,intensidad);  // almacenamos los valores 2 veces
}


Artículos relacionados


Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft, con la inestimable colaboración de Antonio RN de RS.

11/06/2012

Servicios de dominio de Active Directory Windows Server 2012 controlador dominio



Tutorial donde explicamos cómo instalar el rol Servicios de dominio de Active Directory en un servidor con Microsoft Windows Server 2012. Mostramos los requisitos necesarios para promocionar un equipo a controlador de dominio con Active Directory, entre ellos cómo instalar el rol de Servidor DNS.


 

Requisitos iniciales para instalar Servicios de dominio de Active Directory y promoción a controlador de dominio W2012

En este tutorial explicaremos cómo instalar el rol Servicios de dominio de Active Directory en un servidor con el sistema operativo Microsoft Windows Server 2012. Puesto que será el primer servidor del dominio, se creará como controlador principal de dominio con el catálogo global. Esta acción creará un nuevo dominio.
Para promocionar un servidor a controlador de dominio e instalar el rol Servicios de dominio de Active Directory necesitaremos un equipo con el sistema operativo W2012, en el siguiente tutorial explicamos cómo instalar este sistema operativo:
Para instalar el rol de Servicios de dominio de Active Directory el equipo con W2012 debe cumplir, al menos, los siguientes requisitos.

 

Establecer dirección IP estática en servidor Windows Server 2012

1. El servidor W2012 debe disponer de una dirección IP fija (estática) y no establecida por DHCP. Para asegurarnos de ello, pulsaremos la tecla "Windows" del teclado o la combinación de teclas Control + Escape para mostrar el nuevo menú de inicio metro de W2012, pulsaremos en "Panel de control":
Requisitos iniciales para instalar Servicios de dominio de Active Directory y promoción a controlador de dominio W2012
Pulsaremos en "Centro de redes y recursos compartidos:
Requisitos iniciales para instalar Servicios de dominio de Active Directory y promoción a controlador de dominio W2012
Pulsaremos en "Ethernet" en "Conexiones":
Requisitos iniciales para instalar Servicios de dominio de Active Directory y promoción a controlador de dominio W2012
Pulsaremos en "Propiedades" en la ventana de "Estado de Ehernet":
Requisitos iniciales para instalar Servicios de dominio de Active Directory y promoción a controlador de dominio W2012
Seleccionaremos "Protocolo de Internet versión 4 (TCP/IPv4)" y pulsaremos en "Propiedades":
Requisitos iniciales para instalar Servicios de dominio de Active Directory y promoción a controlador de dominio W2012
Comprobaremos que tenemos asignada una dirección IP estática (no debe estar marcada la opción "Obtener una dirección IP automáticamente):
Requisitos iniciales para instalar Servicios de dominio de Active Directory y promoción a controlador de dominio W2012

 

Instalar rol de Sevidor de DNS en Windows Server 2012

Para instalar el rol o característica de Servicios de dominio de Active Directory el servidor W2012 requerirá del rol "Servidor DNS" instalado. Para instalarlo (si aún no lo hemos hecho) pulsaremos la tecla "Windows" del teclado o la combinación de teclas Control + Escape, en el menú de Inicio metro pulsaremos en "Administrador del servidor":
Instalar rol de Sevidor de DNS en Windows Server 2012
Pulsaremos en el menú "Administrar" y seleccionaremos "Agregar roles y características":
Instalar rol de Sevidor de DNS en Windows Server 2012
Marcaremos el rol "Servidor DNS":
Instalar rol de Sevidor de DNS en Windows Server 2012
El rol "Serviodor DNS" requerirá de la característica "Herramientas de administración remota del servidor" - "Herramientas de administración de roles" - "Herramientas del servidor DNS". Nos lo indicará en la ventana de agregar características requeridas, marcaremos "Incluir herramientas de administración (si es aplicable)":
Instalar rol de Sevidor de DNS en Windows Server 2012
Con "Servidor DNS" marcado pulsaremos "Siguiente":
Instalar rol de Sevidor de DNS en Windows Server 2012
El asistente para agregar roles y características nos indicará las características que se instalarán, pulsaremos "Siguiente":
Instalar rol de Sevidor de DNS en Windows Server 2012
El asistente para instalar el rol de Servidor DNS nos indicará algunas cuestiones a tener en cuenta, pulsaremos "Siguiente":
Instalar rol de Sevidor de DNS en Windows Server 2012
Con el texto: El Sistema de nombres de dominio (DNS) proporciona un método estándar para asociar nombres a direcciones de Internet numéricas. De esta forma, los usuarios pueden hacer referencia a los equipos de la red usando nombres fáciles de recordar en lugar de largas series de números. Además, DNS proporciona un espacio de nombres jerárquico, lo que garantiza que cada nombre de host será único en una red de área local o extensa. Los servicios DNS de Windows pueden integrarse con los servicios de Protocolo de configuración dinámica de host (DHCP) en Windows, de forma que ya no es necesario agregar registros DNS cuando se agregan equipos a la red. Cosas para tener en cuenta:
  • La integración del servidor DNS con los Servicios de dominio de Active Directory replica automáticamente los datos DNS y otros datos del servicio de directorio. Esto facilita la administración de DNS.
  • Los Servicios de dominio de Active Directory requieren la instalación de un servidor DNS en la red. Si está instalando un controlador de dominio, también puede instalar el rol de servidor DNS seleccionando el rol Servicios de dominio de Active Directory con el Asistente para la instalación de Servicios de dominio de Active Directory.
El asistente para agregar roles y características nos indicará las características y roles elegidos para la instalación, pulsaremos "Instalar":
Instalar rol de Sevidor de DNS en Windows Server 2012
Se iniciará la instalación del rol de Servidor DNS, el asistente nos indicará el progreso del proceso:
Instalar rol de Sevidor de DNS en Windows Server 2012
El asistente para agregar roles y características nos indicará que el proceso ha finalizado con el texto "Instalación correcta en XXX". Pulsaremos "Cerrar":
Instalar rol de Sevidor de DNS en Windows Server 2012
Pulsando en el botón "Inicio" podremos comprobar que se ha añadido un nuevo acceso directo llamado "DNS", pulsaremos sobre él:
Instalar rol de Sevidor de DNS en Windows Server 2012
Desde "Administrador de DNS" podremos consultar y administrar el servicio de DNS del servidor W2012:
Instalar rol de Sevidor de DNS en Windows Server 2012

Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012

Para instalar el rol de Servicios de dominio de Active Directory en un servidor con Windows Server 2012 el equipo deberá cumplir los requisitos que indicamos aquí. En nuestro caso este servidor será el primero del dominio, por lo que al agregar el rol de Servicios de dominio de Active Directory se creará el dominio indicado y este servidor será controlador principal de dominio con el catálogo global.
Para instalar el rol de Servicios de dominio de Active Directory en W2012 pulsaremos el botón "Inicio" (o la combinación de teclas Control + Escape), en el menú Inicio pulsaremos en "Administrardor del servidor":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
En el Administrador del servidor pulsaremos en "Agregar roles y características":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
Pulsaremos "Siguiente":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
Con el texto: Este asistente le ayuda a instalar roles, servicios de rol o características. Podrá elegir qué roles, servicios de rol o características desea instalar según las necesidades de los equipos de la organización, como compartir documentos u hospedar un sitio web. Para quitar roles, servicios de rol o características inicie el Asistente para quitar roles y características. Antes de continuar, compruebe que se han completado las siguientes tareas:
  • La cuenta de administrador tiene una contraseña segura.
  • Las opciones de red, como las direcciones IP estáticas, están configuradas.
  • Las actualizaciones de seguridad más recientes de Windows Update están instaladas.
Si debe comprobar que se ha completado cualquiera de los requisitos previos anteriores, cierre el asistente, complete los pasos y, después, ejecute de nuevo el asistente.
Marcaremos la opción "Instalación basada en características o roles" y pulsaremos "Siguiente":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
Con el texto: Seleccione el tipo de instalación. Puede instalar roles y características en un equipo físico, en una máquina virtual o en un disco duro virtual (VHD) sin conexión.
  • Instalación basada en características o en roles: para configurar un solo servidor, agregue roles, servicios de rol y características.
  • Instalación de Servicios de Escritorio remoto: instale los servicios de rol necesarios para que la infraestructura de escritorio virtual (VDI) cree una implementación de escritorio basada en máquinas o en sesiones.
Marcaremos "Seleccionar un servidor del grupo de servidores", seleccionaremos el servidor SRVAJPDSOFT (el servidor que corresponda) , pulsaremos "Siguiente":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
Marcaremos "Servicios de dominio de Active Directory":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
El rol de "Servicios de dominio de Active Directory" requiere de otras características, por lo que si no están instaladas nos lo indicará en la ventana de agregar características requeridas para Servicios de dominio de Active Directory, estas características son "Herramientas de AD DS y AD LDS", "Módulo de Active Directory para Windows PowerShell". Marcaremos "Incluir herramientas de administración (si es aplicable)" y pulsaremos "Agregar características":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
Tras marcar "Servicios de dominio de Active Directory" y sus características requeridas pulsaremos "Siguiente":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
El asistente para agregar roles y características de W2012 nos mostrará las características que se instalarán, requeridas para el rol Servicios de dominio de Active Directory, pulsaremos "Siguiente":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
El Asistente para agregar roles y características nos mostrará algunas advertencias, las leeremos y comprobaremos que nuestro servidor cumple los requisitos y pulsaremos "Siguiente":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
Con el texto: Servicios de dominio de Active Directory (AD DS) almacena información acerca de los usuarios, los equipos y otros dispositivos de la red. AD DS ayuda a los administradores a administrar esta información de forma segura y facilita el uso compartido de recursos y la colaboración entre usuarios. AD DS también se requiere en aplicaciones habilitadas para el uso de directorios como Microsoft Exchange Server y otras tecnologíasde Windows Server como la directiva de grupo. Observaciones:
  • Para ayudar a garantizar que los usuarios puedan iniciar sesión en la red en caso de una interrupción en el servidor, instale un mínimo de dos controladores de dominio para un dominio.
  • AD DS requiere la instalación de un servidor DNS en la red. Si no hay un servidor DNS instalado, se le pedirá que instale el rol de servidor DNS en este servidor.
  • Al instalar AD DS, también se instalarán los servicios de espacio de nombres DFS, replicación DFS y replicación de archivos requeridos por el servicio de directorio.
El Asistente para agregar roles y características nos mostrará todos los roles y características elegidas para la instalación, pulsaremos "Instalar":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
Se iniciará la instalación, el asistente nos mostrará el progreso del proceso:
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
Tras la instalación de Servicios de dominio de Active Directory el asistente nos indicará que ha concluido, pulsaremos "Cerrar":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
En la ventana de Administrador del servidor nos aparecerá una advertencia, pulsaremos en el triángulo amarillo de advertencia y pulsaremos en "Promocionar este servidor a controlador de dominio":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
Se iniciará el asistente para configuración de Servicios de dominio de Active Directory. Puesto que sólo tenemos un servidor y es el primero marcaremos "Agregar un nuevo bosque", introduciremos el nombre del dominio, por ejemplo "ajpdsoft.local.com":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
El asistente nos mostrará el nivel funcional del bosque y dominio raíz, con las posibilidades: Windows Server 2012, Windows Server 2003, Windows Server 2008, Windows Server 2008 R2, las capacidades del controlador de dominio y la contraseña para restauración de servicios de directorio (DSRM). Especificaremos el nivel funcional para indicar si queremos compatibilidad con sistemas anteriores, en nuestro caso dejaremos "Windows Server 2012" pues todos los servidores serán W2012. Marcaremos "Servidor de Sistema de nombres de dominio (DNS)", "Catálogo global (GC)". Introduciremos una contraseña para modo de restauración y pulsaremos "Siguiente":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
Es posible que nos muestre una advertencia indicando que "No se puede crear una delegación para este servidor DNS porque la zona principal autoritativa no e encuentra". Marcaremos "Crear delegación DNS", si no tenemos instalado el rol de Sevidor de DNS tal vez aparezca deshabilitada dicha opción:
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
Y nos mostrará el siguiente mensaje, pulsaremos "Aceptar":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
Con el texto: No se puede crear una delegación para este dominio DNS porque la zona principal autoritativa no se encuentra o no ejecuta el servidor DNS de Windows. Si está realizando una integración en una infraestructura DNS existente, debe crear manualmente una delegación a este servidor DNS en la zona principal para garantizar una resolución de nombres confiable desde fuera del dominio "ajpdsoft.local.com". De lo contrario no es preciso realizar ninguna acción.
Estableceremos el nombre NetBIOS para el dominio que se creará, por defecto el asistente usará la primera parte del nombre del dominio especificado anteriormente, en nuestrocaso "ajpdsoft":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
A continuación podremos elegir la ubicación (unidad y carpeta) donde se guardará la base de datos, los archivos de registro y la carpeta SYSVOL, por defecto:
  • La carpeta de la base de datos: C:/Windows/NTDS
  • La carpeta de archivos de registro: C:/Windows/NTDS
  • La carpeta SYSVOL: C:/Windows/SYSVOL
El asistente para configuración de Servicios de dominio de Active Directory nos mostrará todas las opciones elegidas. Desde aquí podremos ver el script que generará dicha configuración pulsando en "Ver script":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
El script de Windows PowerShell para implementación de AD DS será:
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
#
# Script de Windows PowerShell para implementación de AD DS
#

Import-Module ADDSDeployment
Install-ADDSForest `
-CreateDnsDelegation:$false `
-DatabasePath "C:/Windows/NTDS" `
-DomainMode "Win2012" `
-DomainName "ajpdsoft.local.com" `
-DomainNetbiosName "AJPDSOFT" `
-ForestMode "Win2012" `
-InstallDns:$true `
-LogPath "C:/Windows/NTDS" `
-NoRebootOnCompletion:$false `
-SysvolPath "C:/Windows/SYSVOL" `
-Force:$true

El asistente para configuración de Servicios de dominio de Active Directory nos indicará todas las advertencias relacionadas con requisitos previos que debe cumplir el servidor, si no son grabes podremos continuar con el proceso. Por supuesto deberemos leer y resolver las advertencias de requisitos previos que sean necesarias. Pulsaremos "Instalar":
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
Algunas advertencias típicas:
  • Los controladores de dominio de Windows Server 2012 tienen un valor predeterminado para la configuración de seguridad llamada "Permitir algoritmos de criptografía compatibles con Windows NT 4.0" que impiede los algoritmos de criptografía más vulnerables al establecer las sesiones del canal de seguridad. Para obtener más información acerca de esta configuración consulte el artículo 942564.
  • Este equipo tiene al menos un adaptador de red físico que no tiene asignadas direcciones IP estáticas en sus propiedades IP. Si se habilitan IPv4 e IPv6 en un adaptador de red, se deben asignar direcciones IP estáticas IPv4 e IPv6 a las propiedades IPv4 e IPv6 del adaptador de red físico. Estas direcciones IP se deben asignar a todos los adaptadores de red físicos para lograr un funcionamiento confiable del Sistema de nombres de dominio (DNS).
  • No se puede crear una delegación para este servidor DNS porque la zona principal autoritativa no se encuentra o no ejecuta el servidor DNS de Windows. Si está realizando una integración en una infraestructura DNS existente, debe crear manualmente una delegación a este servidor DNS en la zona principal para garantizar una resolución de nombres confiable desde fuera del dominio "ajpdsoft.local.com". De lo contrario, no es preciso realizar ninguna acción.

Tras la instalación del rol Servicios de dominio de Active Directory y tras configurar Servicios de dominio de Active Directory en el Administrador del servidor podremos ver el estado del rol AD DS:
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012
Pulsando la combinación de teclas Control + Escape o la tecla "Windows" del teclado, en el menú de Inicio metro, tendremos los accesos directos para administrar Active Directory:
  • Administración de directivas de grupo.
  • Módulo de Active Directory para Windows PowerShell.
  • Editor ADSI.
  • Dominios y confianzas de de Active Directory.
  • Usuarios y equipos de Active Directory.
  • Centro de administración de Active Directory.
  • Sitios y servicios de Active Directory.
Instalar rol de Servicios de dominio de Active Directory en Windows Server 2012

Añadir unidad organizativa y usuario en Active Directory en servidor con Windows Server 2012

Tras instalar el rol de Servicios de dominio de Active Directory podremos crear todos los objetos necesarios para nuestro dominio (impresoras, carpetas compartidas, usuarios, unidades organizativas, alias, grupos, contatos, equipos). Para crear una unidad organizativa pulsaremos la tecla "Windows" del teclado (o las teclas Control + Escape), en el menú de Inicio pulsarmos en "Usuarios y equipos de Active Directory":
Añadir unidad organizativa y usuario en Active Directory en servidor con Windows Server 2012
En el árbol de la izquierda pulsaremos con el botón derecho del ratón sobre el servidor "ajpdsoft.local.com", en el menú desplegable pulsaremos en "Nuevo" - "Unidad organizativa":
Añadir unidad organizativa y usuario en Active Directory en servidor con Windows Server 2012
Introduciremos un nombre para la unidad organizativa, por ejemplo "uoDesarrollo" y pulsaremos "Aceptar":
Añadir unidad organizativa y usuario en Active Directory en servidor con Windows Server 2012
Las unidades organizativas servirán como contenedor para otros objetos de Active Directory como usuarios, equipos, impresoras, ... También servirán para establer directivas diferentes por unidad organizativa.
Para agregar un nuevo usuario al dominio Active Directory pulsaremos con el botón derecho del ratón sobre la unidad organizativa en la que queramos crearlo, seleccionaremos "Nuevo" - "Usuario":
Añadir unidad organizativa y usuario en Active Directory en servidor con Windows Server 2012
Introduciremos los datos para el usuario (nombre, iniciales, apellidos, nombre completo, nick o nombre de inicio de sesión):
Añadir unidad organizativa y usuario en Active Directory en servidor con Windows Server 2012
Introduciremos la contraseña para el nuevo usuario, estableceremos las opciones para la contraseña y pulsaremos "Siguiente":
Añadir unidad organizativa y usuario en Active Directory en servidor con Windows Server 2012
Pulsaremos "Finalizar" y el usuario quedará creado para iniciar sesión en el servidor W2012 o bien para iniciar sesión en cualquier equipo agregado al dominio, incluso para cualquier aplicacion que admita validación en LDAP y Active Directory. En el siguiente tutorial explicamos cómo agregar un equipo tanto Windows XP como Microsoft Windows 7 a un dominio para que valide el inicio de sesión en él:

Consultar qué servidor es el controlador principal de dominio en Windows Server 2012

Para consultar qué servidor de todos los miembros del dominio es el controlador principal (el que tiene todos los roles), en Windows Server 2012 pulsaremos la tecla "Windows" del teclado (o Control + Escape), pulsaremos en "Usuarios y equipos de Active Directory":
Consultar qué servidor es el controlador principal de dominio en Windows Server 2012
Pulsaremos con el botón derecho del ratón sobre el servidor, en nuestro caso "ajpdsoft.local.com", en el menú emergente seleccionaremos "Maestro de operaciones":
Consultar qué servidor es el controlador principal de dominio en Windows Server 2012
En esta ventana podremos consultar qué servidor del dominio es el Maestro de Operaciones:
  • RID: el Maestro de operaciones administra la asignación de grupos RID a otros controladores de dominio, sólo un servidor en el dominio puede realizar este rol.
  • Controlador principal de dominio: el maestro de operaciones emula las funciones de un controlador de dominio principal (PDC) para clientes con versiones anteriores a Windows 2000.
  • Infraestructura: el Maestro de Infraestructura asegura la consistencia de objetos para operaciones entre dominios.
Consultar qué servidor es el controlador principal de dominio en Windows Server 2012
Consultar qué servidor es el controlador principal de dominio en Windows Server 2012
Consultar qué servidor es el controlador principal de dominio en Windows Server 2012

 

Artículos relacionados

 

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft.