e-interiores Headline Animator

Mostrando entradas con la etiqueta mini-itx. Mostrar todas las entradas
Mostrando entradas con la etiqueta mini-itx. Mostrar todas las entradas

5.10.07

ds18x20 con Arduino (midiendo la temperatura)

Desde hace tiempo tengo conectado un arduino a mi mini-itx
Por ahora solo monitorizo la temperatura de la cpu, disco duro, fuente de alimentación y exterior. Como sensores uso ds18x20 de Maxim (Gracias maxim por esos excelentes samples)
Arduino busca los sensores que hay en su red filtra los que son del tipo sensor de temperatura y les pide su valor. Dado que cada uno de ellos tiene un id interno único, es posible identificarlos. Posterioremente se envía el id del sensor y la temperatura leida por el puerto serie.
En el pc hay un programa c# (mono) que lee el puerto serie, traduce el id a un nombre dado y añade la fecha y hora de la lectura.
El código fuente de arduino:



#include
/* OneWire en Arduino
Descargamos el código fuente de aquí */

/* DS18S20 Temperature chip i/o */

OneWire ds(10); // on pin 10

void setup(void) {
Serial.begin(57600);
}

void loop(void) {
byte i;
byte present = 0;
byte data[12];
byte addr[8];

if ( !ds.search(addr)) {
ds.reset_search();
return;
}

Serial.print("R");
for( i = 0; i < 8; i++) {
Serial.print("-");
if(addr[i]<16)
Serial.print(0);
Serial.print(addr[i], HEX);
}

if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.print("CRC is not valid!\n");
return;
}

if ( addr[0] != 0x10) {
Serial.print("Device is not a DS18S20 family device.\n");
return;
}

ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end

delay(1000); // maybe 750ms is enough, maybe not
// we might do a ds.depower() here, but the reset will take care of it.

present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad

for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
}
int HighByte=data[0];
int LowByte=data[1];

// Teniendo LowByte y HighByte
int TReading = (HighByte << 8) + LowByte;
int SignBit = TReading & 0x8000; // test most sig bit
if (SignBit) // negative
{
TReading = (TReading ^ 0xffff) + 1; // 2's comp
}
int Tc_100 = (6 * TReading) + TReading / 4; // multiply by (100 * 0.0625) or 6.25

int Whole = Tc_100 / 100; // separate off the whole and fractional portions
int Fract = Tc_100 % 100;

Serial.print(":");
Serial.print(HighByte/2);
Serial.print(".");
Serial.print(LowByte/2);
Serial.print(":");
Serial.print(TReading);

Serial.println();
}


Fuentes: Arduino playground, foros de arduino y phanderson

15.5.07

Servidor mini-itx en funcionamiento

Ya llevo 3 días con mi mini-servidor mini-itx y la verdad es que va de vicio.

Para muestra un botón:

guardando: UbuntuStudio 7.04
tamaño de archivo: 909,677,023 (868 MB)
porcentaje realizado: 61.0
tiempo restante: finishing in 53:28 minutes
descargar a: /home/javacasm/Desktop/BitTorrent Downloads/UbuntuStudio 7.04
velocidad de descarga: 435.8 KB/s
velocidad de carga: 0.1 KB/s
rango de distribución: 0.075 (32.9 MB carga / 438.2 MB descarga)
estado de seeding: 6 visto ahora
estado de peer: 7 visto ahora

Es la salida que da bittorrent-console

Emule (como servicio con amuled) va muy bien también, no llega a estas velocidades pero sí que queda estable en 40kb/s durante el día y hasta los 80kb/s por la noche (es lo máximo que conseguía antes).

Con screen estoy permanentemente conectado y al tanto de lo que ocurre.

Ya tengo instalado un servidor web aunque no me decido a hacerlo visible desde internet porque no me fío de su seguridad.

El servidor de streaming permite ver películas a pantalla completa en mi n800

Tengo compartidas muchas carpetas por samba y funciona realmente bien tanto con máquinas windows como con máquinas Linux.

¿Qué me falta? NFS para comparar si va mejor que samba y montarle algún sistema para hacer copias de seguridad del resto de equipos de la casa.

Me planteo un par de cosas: como es posible que una máquina ten pequeña sea capaz de dar tantos servicios ¿donde se invierte entonces los GHz y los Gb de los grandes servidores? y ¿como es posible que con tan pocos conocimientos como tengo sea posible montar una infraestructura así?

12.5.07

Optimizando ubuntu servidor para mini-itx

Dado que solo me conecto a mi mini-itx por ssh, creo que es inútil tener activo todo el sistema de XWindows con gnome.
Para ello basta con eliminar el link a /etc/init.d/gdm desde el correspondiente directorio de arranque rc2.d (En ubuntu el nivel de ejecución gŕafico es el 2, no el 5 como es usual): S13gdm
Otra forma de hacerlo es instalar el paquete rcconfig (sudo apt-get install rcconfig) que nos permite activar/desactivar el arranque de los servicios que queramos (en realidad lo que hace es añadir o quitar eso links). Si no tenemos activo gnome sólo tenemos que ejecutar startx para que se arranque todo el sistema de XWindows.
Algo que tampoco necesito son las consolas a las que accedemos con Alt+Ctrl+n (con n de 1 a 5). Creo que con tener 2 sería mas que suficiente.
Para quitarlas tradicionalmente bastaba con comentar las líneas con getty del fichero /etc/inittab, pero mi ubuntu no tiene ese fichero. Buscando getty en el directorio /etc/ he encontrado un directorio llamado event.d donde aparentemente se lanzan esas consolas. Comentando el contenido de estos archivos supongo que desactivaré estas consolas.

Otra cosa que quiero activar es el acceder a la consola desde el puerto serie, opción que me sería enormemente útil en el caso de algún problema de red que me impidiera acceder al sistema. Ya tengo un par de enlaces (nixcraft y howtoforge) para desmenuzarlos

10.5.07

Ubuntu en una mini-itx

Me he comprado una placa mini-itx. Llevaba muuuucho tiempo queriendo tener una par hacer mil cacharreos y cuando he visto una Via 5000 en Ebay por 50$ no me lo he pensado.
Tiene un procesador propio (C3) a 500MHz. En alguna comparativa he visto que es equivalente a un Celeron a 400MHz.
Lo que más me gusta es que el micro no necesita ventilador, lo que me permitiría hacer un sistema totalmente silencioso que pudiera estar encendido todo el día (servidor de ficheros, emule, torrent, servidor de impresion...)
No estaba seguro si con tan poco micro iba a funcionar bien, pero adelanto que se porta como un campeón.
Le he puesto 512Mb de RAM DDR de 133MHz y un disco de 80Gb supersilencioso.
Para probarla he instalado un ubuntu 7.0.4 (sí ya sé que Xubuntu iría mejor o DSL ...) y se porta muy bien. La instalación ha ido fenomenal (aunque lógicamente fue un poco lenta).
También probé a instalarle un XP y en 45 minutos lo tenía funcionando sin ningun problema.
Espera que iba a ser mucho más lenta.
Ahora mismo la tengo compartiendo ficheros con samba, haciendo streaming con ushare, y con el emule a tope.
Tengo pendiente que me permita acceder desde internet por ssh, ftp y quien sabe si me animaré a montarme mi propia página web...
Ya iré contando que más perrerías le hago...