jueves, 15 de agosto de 2024

DAEnetIp2

 DAEnetIP2 Rev2

Ha caído en mis manos un par de estas placas

.DAEnetIP2 - SNMP Ethernet controller with 24 digital/analog I/O

Características



Tabla de puertos








miércoles, 14 de agosto de 2024

XPPOWER SHO650PS12

 Un buen amigo, de vez en cuando me traer cosas para ver si saco algo.

Esta vez a sido lo que parecía una fuente de alimentación conmutada doble.


De principio al darle alimentación a las barbas, he visto que daba 12V en continua. 


Al ver que funcionaba, he decidido desarmarlas, y en lateral estaba el nombre del fabricante y el modelo. 

Era una fuente de alimentación conmutada modelo SHO650PS12, de 12V 50 Amperios.

Ya tenemos fuente de alimentación robusta.

Las características y pineado están el el siguiente archivo

miércoles, 10 de enero de 2024

viernes, 21 de noviembre de 2014

Arduino: Temperatura con DS18B20 en display LCD (I2C)


COMO MEDIR LA TEMPERATURA coN EL DS18B20 EN UN LCD (gestionado mediante i2C)

En la anterior entortada del ds18b20, se mostraba la temperatura en el monitor serial, esto solo tiene la utilidad de ver que funciona bien, pero nada de practico.
El controlador del LCD, se puede ver en Controlador I2C para LCD
En el montaje muestro el valor de la temperatura en un LCD, controlado con I2C.
Se utilizan solo los pines 4 y 5 para el bus I2C.

Librerías necesarias:


  • <OneWire.h> 
  • <Wire.h>
  • <LCD.h>
  • <LiquidCrystal_I2C.h>  

Programa

/*******************************************
Prueba del funcionamiento del:
Sensor de temperatura DS18B20
con dispaly LCD I2C
Proyecto
ds18b20_i2c
  ** EA7TB **
www.ea7tb.com
*******************************************/
#include <OneWire.h>
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>

#define BACKLIGHT_PIN     7
#define  LED_OFF  0
#define  LED_ON  1
int DS18S20_Pin = 2; //DS18S20 Señal digital en digital 2

//Temperatura chip i/o
OneWire ds(DS18S20_Pin);
LiquidCrystal_I2C  lcd(0x20,4,5,6,0,1,2,3);
void setup(void) {
 
 Serial.begin(9600);
 lcd.begin (16,2);  // inicializo el LCD 20x4
  // Switch on the backlight
  lcd.setBacklightPin(BACKLIGHT_PIN,NEGATIVE);
  lcd.setBacklight(LED_ON);

  lcd.home();
 
  lcd.setCursor(0, 0);

  for(int i=0;i<16;i++) lcd.print("*");
  lcd.setCursor(0, 1);

  lcd.print(" Hola mundo   ");
  lcd.setCursor(0,2);
  delay(1000);
  lcd.clear();
}

void loop(void) {
 float temperatura = getTemp();
 Serial.println(temperatura);
 lcd.setCursor(0,0);
 lcd.print("temperaura:");
 lcd.print(temperatura);
 delay(500);

}


float getTemp(){
 //Da la temperatura esta ª

 byte data[12];
 byte addr[8];

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

 if ( OneWire::crc8( addr, 7) != addr[7]) {
   Serial.println("CRC no es valido!");
   return -1000;
 }

 if ( addr[0] != 0x10 && addr[0] != 0x28) {
   Serial.print("No se ha reconocido el dispositivo");
   return -1000;
 }

 ds.reset();
 ds.select(addr);
 ds.write(0x44,1); // comienza la converesion

 byte present = ds.reset();
 ds.select(addr);
 ds.write(0xBE);


 for (int i = 0; i < 9; i++) {
  data[i] = ds.read();
 }

 ds.reset_search();

 byte MSB = data[1];
 byte LSB = data[0];

 float tempRead = ((MSB << 8) | LSB);
 float TemperatureSum = tempRead / 16;

 return TemperatureSum;

}

Arduino: Temperatura con DS18B20

Como medir la temperatura mediante este sensor de 1 Wire.

Información sobre el integrado.

Para mas información sobre integrado lo podemos ver en el siguiente enlace: http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf



El patillaje es el mostrado en siguiente imagen.



El montaje con el arduino seria el siguiente:




Libreria necesarias:

Se necesita la librería OneWire, 
Que debe estar en el siguiente directorio:
  • MAC: (directorio personal)/Documents/Arduino/libraries
  • Win: Mis documentos/Arduino/libraries
  • LINUX: (directorio personal)/Documents/Arduino/libraries

Esta disponible en: http://playground.arduino.cc/Learning/OneWire

Programa:

Un pequeño programa para leer la temperatura.
#include <OneWire.h>

int DS18S20_Pin = 2; //DS18S20 Señal digital en digital 2

//Temperatura chip i/o
OneWire ds(DS18S20_Pin);

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

void loop(void) {
 float temperatura = getTemp();
 Serial.println(temperatura);
 delay(100);

}


float getTemp(){
 //Da la temperatura esta ª

 byte data[12];
 byte addr[8];

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

 if ( OneWire::crc8( addr, 7) != addr[7]) {
   Serial.println("CRC no es valido!");
   return -1000;
 }

 if ( addr[0] != 0x10 && addr[0] != 0x28) {
   Serial.print("No se ha reconocido el dispositivo");
   return -1000;
 }

 ds.reset();
 ds.select(addr);
 ds.write(0x44,1); // comienza la converesion

 byte present = ds.reset();
 ds.select(addr);
 ds.write(0xBE);


 for (int i = 0; i < 9; i++) {
  data[i] = ds.read();
 }

 ds.reset_search();

 byte MSB = data[1];
 byte LSB = data[0];

 float tempRead = ((MSB << 8) | LSB);
 float TemperatureSum = tempRead / 16;

 return TemperatureSum;

}

martes, 12 de noviembre de 2013

Raspberry Pi: Instalar PYWWS

Como instalar el programa PYWWS para recoger los datos de una estación meteorológica.


Instalar Git

    sudo apt-get install git

Instalar python-dev

    sudo apt-get install python-dev
    sudo apt-get install libudev-dev

crear un directorio para descargar y descomprimir los ficheros de instalación

    cd ~
    mkdir dls
    cd dls


Descargar las librerías y utilidades necesarias

    wget http://pypi.python.org/packages/source/C/Cython/Cython-0.16.tar.gz
    wget http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.9/libusb-1.0.9.tar.bz2
    git clone https://github.com/gbishop/cython-hidapi.git


Descomprimir los ficheros que habíamos descargado.

    tar xvzf Cython-0.16.tar.gz
    tar xvjf libusb-1.0.9.tar.bz2

Compilar e instalar Cython 0.16 (esto puede llevar un tiempo)

    cd ~/dls/Cython-0.16
    sudo python setup.py install
    cd ~/dls/libusb-1.0.9
    ./configure
    make  
    sudo make install            
    cd ~/dls/cython-hidapi

Editar el fichero de conflagración: setup.py

    sudo nano setup.py

Cambiamos la linea:

   os.environ['CFLAGS'] = "-I/usr/include/libusb-1.0"
a
   os.environ['CFLAGS'] = "-I/usr/local/include/libusb-1.0"


Cambiamos la linea:

   os.environ['LDFLAGS'] = "-L/usr/lib/�i386-linux-gnu -lusb-1.0 -ludev -lrt"
a
   os.environ['LDFLAGS'] = "-L/usr/lib/arm-linux-gnueabihf -lusb-1.0 -ludev -lrt"


Copiar el fichero libudev.so.0

   sudo cp /lib/arm-linux-gnueabihf/libudev.so.0 /usr/lib/arm-linux-gnueabihf/libudev.so
   sudo python setup.py install


Descargar la ultima versión pywws http://pypi.python.org/pypi/pywws/

   cd ~
   sudo mkdir weather
   cd weather
   sudo git clone https://github.com/jim-easterbrook/pywws.git

Conectar la estación a la Raspberry con el conector USB

Cambiamos al directorio:

   cd ~/weather/pywws

Comprobamos la conexion de la estación meteorológica.

sudo python -m pywws.TestWeatherStation





Debería ver una serie de números hexadecimales si la conexión está funcionando.
Si no tiene conexión o no esta conectada:

Si esta conectada daría:
pi@raspberrypi ~/weather/pywws $ sudo python -m pywws.TestWeatherStation
  
Ya tenemos instalado el programa ahora falta configurarlo.
En un próximo estará explicado.

sábado, 9 de noviembre de 2013

Raspberry PI: Instalar Transmission.

Con nuestra Raspberry podemos crear un centro de descargas, con un consumo mínimo. Con un pendrive de 16G, su consumo es ínfimo, es suficiente un cargador de 0,6A para que funcione.

Configuración de las carpetas de descarga

Para que el programa descargue en el pendrive que utilizamos como almacenamiento, hay que crear varias carpetas. En la entrada "Crear un pendrive", puedes ver como hacerlo.
  • Carpeta de descarga de ficheros.
  • Carpeta de almacenamiento de incompletos.
Carpeta de descarga: descarga
cd /media/pendrive
sudo mkdir descargas
sudo chmod 777 descargas

Carpeta de almacenamiento de incompletos: partes
cd /media/pendrive
sudo mkdir partes
sudo chmod 777 partes

Instalación del programa:

Ejecutamos el comando:

  •  sudo apt-get -y install transmission-daemon
Una vez instalado, debemos para el demonio para poder configurarlo.

  •   sudo service transmission-daemon stop

 Configuración del programa:

Una vez parado el programa, configuramos los parámetros de trabajo.
Editamos el fichero de configuración
  •  sudo nano /var/lib/transmission-daemon/info/settings.json
Modificaremos los siguientes parámetros:

Directorio donde se guardaran los ficheros descargados:
 "download-dir": "/var/lib/transmission-daemon/downloads",

cambiamos a:

"download-dir": "/media/pendrive/descargas",

Habilitar que las partes se guarden en un directorio diferente a las dercargas:
"incomplete-dir-enabled": false,

cambiar por

"incomplete-dir-enabled": true,

Directorio donde se guardaran las partes:
"incomplete-dir": "/root/Downloads",

cambiar por

"incomplete-dir": "/media/pendrive/partes",

Habilitar las aplicaciones que pueden conectarse al RPC:
Necesario para poder conectarnos mediante la pagina web. xxx.xxx.xxx.xxx:9091
Por defecto esta habilitada, si no estuviera, se tiene que habilitar
"rpc-enabled": true,

Habilitar las direcciones para conectarse.
Por defecto viene 0.0.0.0. Si queremos limitar a una dirección IP, la pondremos aquí.
"rpc-bind-address": "0.0.0.0",

Deshabilitar las listas RPC :
Si no se deshabilita, buscaría esa lista para ver las direcciones que pueden acceder.

"rpc-whitelist-enabled": true,

 Cambiamos por

"rpc-whitelist-enabled": false,

Usuario para conectarse:
Por defecto es "transmission". Lo podemos cambiar a gusto del usuario.
"rpc-username": "transmission",

Password
Por defecto es "transmission ".
"rpc-password": "{75e10b6e7306b07d013a7d866eea98fe484e12cd/RzC0ohJ",
Para cambiarla, borramos lo que hay entre las comillas y escribimos la nueva contraseña.

Definir el numero de descargas:
Definimos cuantas descargas se realizan simultáneamente. Por defecto es 5.
"download-queue-size": 5,




Una vez configurado, hay que arrancar el demonio para que se ejecute. Para ello, ejecutamos el comando:

  • sudo /etc/init.d/transmission-daemon start

 Acceso al programa:

El acceso se hace mediante la web del programa. La dirección es la que tenga la Raspberry, (por ejemplo 192.168.0.22)
Para acceder seria 192.168.0.22:9091