Mostrando las entradas con la etiqueta Arduino. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Arduino. Mostrar todas las entradas

jueves, 6 de octubre de 2016

Arduino - Comunicacion con PLC industriles.

Me encontre este blog del señor Cartiman Iman de Indonesia y realizo un excelente trabajo en comunicacion entre Arduino y PLC su web es http://program-plc.blogspot.com.ar su google+ https://plus.google.com/+CartimanIman#+CartimanIman/posts.

Voy a traducir sus publicaciones y realizar las practicas con PLC ya que tengo acceso a PLC5 micrologic 1000 y micrologix 1100 de Allen Bradley para unas interfaces HMI tactiles :)...


Comunicacion en PLC Allen-Bradley y Arduino mediante el protocolo DF1

Comunicacion entre PLC de Allen Bradley y Arduino mediante el protocolo DF1.
los datos son enviados desde Arduino al PLC AB y viceversa
los datos se envian desde el arduino en le rango de (0-5v / 0-32767) a el registro de datos del PLC AB N7:1(registro de flotantes) y viceversa.


Se utilizo el PLC Micrologix 1000 AB seteado a 9600 baudios.

Requerimientos de Hardware:

1)PLC AB con soporte de protocolo DF1 ej Micrologix 1000/1100/PLC5 /Controllogix etc.
2)Cables RS232 para el PLC.
3)Arduino uno.
4)Conversor RS232 a TTL (ampliar info).
5)Sensores varios pulsadores, potenciometros.


Requerimientos de Software:
1)Arduino IDE
2)La libreria con el protocolo implementado de DF1 que me sorprendio como q lo hizo el je
3)El codigo a subir para el arduino
4)el codigo a subir al PLC Micro1000

martes, 29 de marzo de 2016

Framework Platformio + Geany + Raspberry PI

Hace un tiempo me quede sin PC sin notebook y buscanba la forma de programar diferentes microcontroladores usando el IDE de arduino bajo RPI (Raspberry PI) pero no hay version del cross-compiler para arm para poder programar los ESP.
Buscando encontre de casualidad Platformio un cross-compiler desde linea de comandos para diferentes entornos de trabajo Atmel, esspresif entre otros y la verdad es que me sorprendio logre programar arduinos y esp8266 sin problemas desde un RPI.
Tiene un excelente control de librerias e instalacion de lo que nesecites es mas que recomendable.
Tiene un par de inconvenientes el IDE grafico para RPI estoy usando GEANY debe haber otro pero realmente estoy comodo programando de esta forma.

Estube realizando pruebas con arduino uno, mega y un esp-01 y andubo perfecto, podemos cargar el firmware de OTA o webupdate y actualizar los esp de forma remota configurando la IP.


Instalacion siguiendo la info de la pagina web http://platformio.org/#/ y otros blogers
***********************************************
si no esta instalado easy_install
sudo apt-get install python-setuptools
luego
sudo easy_install pip (gestor de paquetes en python)
sudo pip install platformio
***********************************************

Tiene algunas complicaciones porque hay q usar la terminal pero es mas de mi agrado:
Crear la carpeta

***********************************************
sudo mkdir arduino/proy_01 (CARPETA DE PROYECTOS)
***********************************************

inicializar la placa tiene muchas opciones pero las podes listar y ver cual necesitas

***********************************************
platformio init --board esp01-1M (ESP8266 CON 1M ojo las esp-01 de color azul claro son de 512K)
***********************************************

otro ejemplo:
***********************************************
platformio init --board uno  (arduino uno)
***********************************************


poner el codigo en la carpeta genera un .ini y dos carpetas src y lib

***********************************************
-platformio.ini (archivo de configuracion)
-src(adentro va el .ino o .cpp)
-lib(librerias externas o propias)
***********************************************

Compilar generar el firmware en modo local.
***********************************************
platformio run
***********************************************

Subir o descargar el firmware al uC
***********************************************
platformio run --target upload
***********************************************

Limpiar archivos compiladodos y temporales.
***********************************************
platformio clean
***********************************************

Todo esto se puede hacer desde geany y compilar desde ahi... :) solo hay que configurar en opciones de compilacion.

compile=platformio run
build=platformio run --target upload
make object=platformio clean

y seleccionar la sintaxis de color de C++ y compilar seleccionando el archivo .ini









Voy a ir actualizando porque me siento bastante comodo con platformio y raspberry PI.
Sldos...

Siguiendo con las pruebas me consegui un esp-12, me costo programarlo pero funciono bien, unos de los problemas es la memoria no sabes si tienen 512K-1M o 4M y vienen con el protector para EMF el cual no te deja ver la flash a menos que lo desarmes.

Voy a tratar de analizar y probar un poco la arquitectura asi me queda en el blog...

Tamaños de memoria SPI

***********esto es del foro del esp822 *******************************
# SPI_SIZE_MAP
# 0 : 512 KB (256 KB + 256 KB)
# 1 : 256 KB
# 2 : 1024 KB (512 KB + 512 KB)
# 3 : 2048 KB (512 KB + 512 KB)
# 4 : 4096 KB (512 KB + 512 KB)
# 5 : 2048 KB (1024 KB + 1024 KB)
# 6 : 4096 KB (1024 KB + 1024 KB)
*******************************************************

esp8266-01 azul claro 512k (no funcionan para OTA)



esp8266-01 negro o verde obscuro  1M (si funcionan pero tienen poco espacio)


esp8266-12 azul claro (1M - no estoy seguro si alguien lo sabe he visto q les cambian la memoria de 512k a 1M  no hay mucha info muchas dudas, yo le descargue con la opcion esp01_1m pero no estoy seguro ya que hice una prueba con un DHT11 y me muestra un float y no hay conversion a entero esto lo tengo que revisar creo q son de 512k)


esp8266-12E verde oscuro AI (4M de memoria eeprom)
esp12E - Pinout

Diagrama de ingenieria inversa de la version de AI-Thinker


esta bueno agregarla un capacitor en la alimentacion por pequeñas variaciones en los consumos de corriente para evitar se active el WDT y se resetee.

Programando el esp12



Programando el esp12E(no lo probe aun)



Bueno programe un esp12 como indica el datasheet

1-reset no lo use aun pero es necesario una ves descargas el firmware, sacar jumper y debes resetearlo
2-ADC (convertidor analogico a digital soporta 1v)
3-CH_PD (enable chip va a 1 yo use una resist. 101R - 100ohm)
4-GPIO16 usado para el modo deep_sleep (no probado aun)
5-GPIO14
6-GPIO12
7-GPIO13
8-VCC (3.3 Vcc) va a 1
9-GND
10-102R smd a GND va a 0
11-GPIO2
12-GPIO0 este se usa para ponerlo en modo programacion va a 0 con un jumper
13-GPIO5
14-GPIO4
15-TX aca va cruzado a RX (en los datasheet sale diferente chequear)
16-RX aca va cruzado a TX (en los datasheet sale diferente chequear)

Entonces:
*******************************************************
Flash Mode
vcc CH_PD  GPIO0 GPIO15
 1        1           0            0

Boot Mode
vcc CH_PD GPIO0  GPIO15
1        1             X        0

X- a nada libre o a VCC
*******************************************************

Funciono asi es mas al GPIO2 lo use para leer un DHT11 otra cosa que lei y lo voy a poner en practica es el modo bajo consumo o "deep sleep mode" algo que es muy util bajar el consumo tambien tiene un WDT (watdog timer) muy util cuando se cuelga el uP.

La idea es ponerlo a dormir y despertarlo (deep sleep mode) por decirlo asi con:

un timer interno (que lea cada 1hs un DHT22 ej. )
una interrupcion externa(arduino - rpi)
via UART (Arduino - RPI - uP - uC - PC con ftdi )
WDT (bueno este es interesante teoricamente se genera un pulso el cual si no existe resetea el uC lo he usado en PLC se genera el pulso sobre un rele/timer si falla el PLC chau pulso y activa una proteccion, aca es algo diferente porque es interno pero se podria crear un WDT con un GPIO generas el pulso y con algun arduino si deja de leerlo activar el respaldo)

Administracion de energia(sacado del datasheet de espressif)



OFF
si se pone a 0 CH_PD el RTC se desabilita y se borran los registros.

DEEP_SLEEP
Solo el RTC se alimenta el resta esta desconectado y mantiene datos basicos dela coneccion WIFI

SLEEP
El RTC queda operando algun evento para despertarlo (MAC - host - RTC timer - ext int) lo pone en modo de funcionamiento

WAKEUP
en este modo funciona el crystal oscilador y los PLL todo habilitado

ON
EN este modo el clock opera a toda velocidad se puede usar la instruccion WAITI para operar a velocidad minima.

:) mas que interesante no ?




Detalles a tener en cuenta para programar(no hacer lo que yo jaja)

Algunos errores al descargar el firmware con PlatformIO, fueron ocasionados por el cableado arme
todo en una plaqueta y funciona bien, tambien fallo la descarga por que tenia una terminal serie abierta leyendo por el puerto usb /dev/USB0, o sea usaba el archivo, (terminal minicom no aconsejada pero funciona ya encontrare alguna mejor).

*usar plaquetas para prototipos
*usar el menor cableado posible y que este bien firme
*no dejar abierta las consolas serie (arduino ide - minicom - putty etc.)

Saludos....

lunes, 3 de agosto de 2015

Arduino - Comunicación con SIM800l GPRS/GSM

Resumen de funcionamiento shield sim800l, como interface arduino, esp8266, esp32 u otro microcontrolador, se puede utilizar para un sistema de seguridad, comunicacion gsm, scanner, etc.

Ejemplos  y casos de uso.

1)Sistema de seguridad
PIR --> Arduino ---> sim800L    )))  (gprs/gsm)   (((( "celular 3G"

2)Sistema de seguridad 2(nodos wifi bajo consumo )

PIR_1 -->esp-01 -))))        ((((--router_wifi_red_domotica--)))     ((((-esp-12--sim800l-)))) celular 3G
PIR_2 --->esp-01-))))                                                                                 
PIR_3 --->esp-01-))))

3)Sistema de comunicacion y reconocimiento de voz

maple_mini --->sim800l  ))) gprs/gsm/internet
                      --->esp-12  )))wifi P2P/router
                      --->easy-VR "reconocimiento de voz"
                      -->HC-05 programacion por bluetooth o conexion a celulares
                      --->GPS
                      ---->RF transceiver de rf 2.4ghz red domotica

Este es el breakout sim800l con comunicacion serie el cual se puede conectar a un uC 'microcontrolador', arduino, esp8266, raspberry pi etc, o a un programador usb-rs232
Hay varias versiones de este  CI , sim800, sim900 y el adaptador para smd, se puede armar pero ya hay breakout desarroladas, por costos muy bajos.
El breakout sim800l que consegui no tiene salida ni entrada de audio por lo cual me limita solo a realizar llamadas y enviar y recibir mensajes.

Hoja de datos
http://www.seeedstudio.com/wiki/LoNet_-_GSM/GPRS/GPS_Breakout


  • Quad-band 850/900/1800/1900MHz( cuatribanda para 2G y 3G)
  • GPRS multi-slot class12 connectivity: max. 85.6kbps(down-load/up-load)
  • GPRS mobile station class B
  • Controlled by AT Command (3GPP TS 27.007, 27.005 and SIMCOM enhanced AT Commands)
  • Supports charging control for Li-Ion battery
  • Supports Real Time Clock
  • Supply voltage range 3.4V ~ 4.4V (muy importante recomendado 4.2)
  • Integrated GPS/CNSS and supports A-GPS
  • Supports 3.0V to 5.0V logic level (conversion TTL 3vcc a 5vvcc)
  • Low power consumption, 1mA in sleep mode
  • Supports GPS NMEA protocol
  • Compact size 27mm x 46mm x 10mm
  • Standard SIM Card



  • Diagrama de conexion
    este diagrama de conexion es bastante bueno tuve inconvenientes para hacerlo funcionar consejo hay que alimentarlo con una fuente estable alrededor de 4.2vcc@800mA ya sea una bateria LIPO o una fuente regulada no usar la alimentacion de arduino porque funciona pero no adecuadamente ya que el sim800 tiene un ESD el cual si detecta baja o alta tension se desconecta o reinicia... (Proteccion por alto o vajo voltaje) el cual es muy buena funcion ya que nos asegura no dañarlo muy importanto leer lo que responde por la consola serie


    Fuente switching  ---->sim800l -->arduino o esp8266



    El primer ejemplo lo conectas direscto al uC le bajas el codigo de FONA o el tuyo y ya esta.
    El segundo te conectas con un USB-FT232 y desde una consola ya sea en win o linux abris la terminal en /dev/usb te conectas con baudrate 9600 y tenes que ingrasar los comandos AT.


    PDF con todos los comandos AT
    http://www.seeedstudio.com/wiki/images/5/51/SIM800_ATCommand_Manual_V1.02.pdf

    Aca hay muhca info.
    http://www.seeedstudio.com/wiki/LoNet_-_GSM/GPRS/GPS_Breakout

    En cuanto a librerias deberian descargar la ultima verision del IDE para arduino ya que hubieron muchos cambios en las librerias y soporte para hardware han agregado el soporte para los esp8266 esta mi querido souliss(framework domotica) y muchas otras placas

    Esta libreria de ADAFRUIT es recomenda ya que esta completa poder realizar llamadas enviar sms y conectarte a internet solo funciona con la version del IDE nueva de arduino
    https://github.com/adafruit/Adafruit_FONA_Library (ya tiene implementado los comandos AT)
    este es un codigo de ejemplo para mi alrma ya que fona tiene cosas que no voy a ocupar pero para hacer pruebas y sacar el codigo que necesitas te sirve.

    https://github.com/pablinn/sim800_v2

    Video demo de sim800l usando FONA_Library


    Sldos.....


    Agregado de protocolos TCP
    Desarrollo de libreria con soporte "HTTP GET y POST" le falta mucho pero me gusta como esta quedando.

    *modo debug o logico(ver las respuestas AT o solo los estado True o False) para poder hacer tu programa basado en estados(maquina de estados )
    *generar una clase
    *soporte para TCP/IP o UDP/IP
    *"HTTP GET o POST "

    https://github.com/pablinn/sim800v3.git


    Saludos....

    Envio de mensajes
    Una forma simple y sencilla de mandar mensaje con la librería que estoy haciendo de ultima borra el resto y deja la que necesitas me imagino que es para automatización.

    4.2@800mA (estables con esto y ya lo charle en el grupo de whatsapp debe ser fijo no debe variar sino se desconecta de la red)

    AT+CBC   --> indica la tension 0,100,4212 (0, 100 % carga de la bateria , tension en milivolt)

     una vez conecatado a la red demora 3 segundos revisar con

    AT+COPS=? redes disponibles
    AT+COPS?  red conectada
    AT+CGREG?

    Mandar mensaje conectado a la red movil (unifon - movistar / CTImovil - claro)

    AT+CMGF=1
    AT+CMGS=\"+54299xxxxx\"  (el cel es con cod \"+pais-area-celular\")
    te devuelve >
    mandas el msj y terminas con control Z
    escribir (0x1A)

    en la libreria sim800v3 el cual esta funcionando la probamos en varios celulares un compañero colombiano logro automatizar una cerradura desde su celular asi que funciona si no es otra cosa..
    Ademas te podes conectar a internet usando TCP/IP UDP/IP HTTP  FTP EMAIL POP funciones de RADIO FM :) aun no termino ya estoy mareado :O

        //CMGS_SMS("+54299xxxxx","Hola Mundo");

    tener en cuenta la tension revisar con AT+CBC varias veces no debe variar o se resetea o desconecta.

    Saludos.

    Bueno nada nuevo a lo mucho que hay solo el montaje final un arduino nano los dos PIR por las interrupciones del nano para ponerlo en modo sleep y ahorrar el consumo de la bateria.



    Saludos..

    lunes, 29 de diciembre de 2014

    Arduino - Programación inalambrica blueT HC-05

    Primero estoy recansado de los cables jaja mirando por internet hay shield de programación inalambrica por comunicación blueT, mas allá de los costos hay que plantear objetivos

    *que queremos hacer ??
    *existe??
    *se puede hacer de otra forma mas económica y que funcione  igual ??
    *caso contrario compralo hecho jeje

    creo da mas satisfacción hacerlo uno, recorrer ese camino te deja mucha experiencia pero bueno llegar al objetivo es importante y si es un producto industrial debe poseer calidad y seguridad.

    Como esto es para mi lo voy a hacer a la difícil que es mas divertido y repito esto es para acordarme luego y si le sirve a alguien mejor...

    Buscando por la web ya pondre los link unos chicos muy hábiles lograron usar los módulos HC-06 muy económicos y conocidos para programación inalambrica es un proceso heavy usar oscloscopio hacer electrónica, diferenciación con con amplificadores operacionales y modificar un bootloader
    me pareció genial pero extremo.
    http://morf.lv/modules.php?name=tutorials&lasit=30

    Encontre otra pagina con algo similar en donde se usa el HC-05 de los cuales note:
    http://makezine.com/projects/diy-arduino-bluetooth-programming-shield/

    otro link interesante pero aquí flashean el fimware de las placas
    http://byron76.blogspot.com.ar/search/label/HC05


    1) el problema de la velocidad de comunicacion por defecto de la placa el cual hay que cambiarlo con los comandos AT del HC-05 diferentes del HC-06 arduino envia los datos a 115200

    2)cuando el modulo este conectado y descargando la aplicación debe generar un pulso de reset al arduino para descargar el programa y devolver el control al arduino

    Leí por todos lados que con el HC-06 es mas complicado y con HC-05 es mas facil WTF son iguales cambia el firmware y una par de pines, empece las pruebas hacia calor la verdad no tengo ganas de hacer nada me gustaría estar en un crucero tomando un vodka con pulpa de naranja pero me aburriría al final o me iría a ver las turbinas del crucero jeje

    Primero cambiar la velocidad del modulo HC-05

    Es un problema pero tenia una interfaz USB-TTL por lo cual la conexion queda asi

    blueT-HC-06 -->USB-TTL-->PC-->serialmonitor del arduino o terminal de linux


    AT+BAUD8    115200

    y listo lo probé y funciono comprobé que la velocidad cambio para el HC-06 para el HC-05 el firmware es diferente.

    Ahora me pregunte admito que pensé en el arduino pro mini para programarlo debes hacerlo manualmente presionar el reset cuando este descargando y soltar es complicado por que por ahí anda, por ahí no jaja pero funciona, me dije porque no probar ademas no estaba haciendo nada

    Paso dos como conectar el Arduino Ide al blueT tb vi varias las expongo linkeare a sus autores el cual es muy buen trabajo agradezco su inspiración.

    1) configurar el archivo preferences.txt y agregar en la comunicación el dispositivo blueT
    es interesante, ordenado y prolijo es mas gracias a esta chica pude entender varias cositas del blueT

    2)como no soy muy ordenado y tampoco soy muy bueno le menti al arduino
    hacer un link a un dispositivo serial que no exista y luego linquearlo al blueT
    luego hacer un link a un dispositivo serie que no exista conectar el dispositivo blueT y te aparecera en la lista de dispositivos seriales en al arduino IDE :)


    sudo ln -s /dev/rfcomm0 /dev/ttyblueT
    sudo rfcomm connect 00:00:00:00:00 mac del blueT
    /dev/rfcomm0 archivo virtual de montaje para el blueT pude variar por fallas a rfcomm1 etc.


    Ahora una ves conectado y enviando los datos por blueT primer intento nada no funciono
    después probé lo del reset y no lo podia creer descargo los datos :O
    para programar hay que corregir un problema de sincronismo por el reset.. :)

    *******update 29/12/14*************
    Bueno me dispuse a probar el circuito de reset del HC-05 el cual utiliza el led para saber cuando esta conectado es simple, elegante y funciono perfectamente :) ahora puedo programar a mi arduino por blueT sin cables.
    Resumiendo mas específicamente y sin vueltas
    1)  configurar velocidad 115200 con la interfase USB-TTL
    AT+BAUD8    115200

    2)crear el dispositivo serie y vincularlo al blueT esto lo pueden automatizar con python o bash.
    sudo ln -s /dev/rfcomm0 /dev/ttyblueT
    sudo rfcomm connect 00:00:00:00:00 mac del blueT

    3)modificar el HC-06 circuito de reset
    1 ressitencia de 2.2 k
    1 resitencia de 10k
    1 resitencia de 15k
    1 capacitor ceramico o plastico de 100nF
    el único cable soldado al pin 32 no desarmen nada.




















    próximo paso prolijar todo el circuito y agregarlo a mi sistema de domotica :) ya puedo programar de forma inalambrica  :) :)


    *****************************************************************************
    Update 23/01/15

    No todo es tan facil me encontre con varios inconvenientes una es que el programador inalambrico es posible pero con el HC-05 con el HC-06 es mas complejo

    1)cuando realizas la coneccion y descargas tira error de sincronismo si pulsas el reset en la descarga te descarga el programa pero la idea es hacerlo de forma inalambrica y remota

    2) Rcomiendo conseguir el HC-05 y armar el circuito funcionaria muy bien.
    *HC-05 posee dos led de los cuales el pin 32 obtenemos el reset para programar al micro



    *HC-06 en el pin 24 pero aqui el problema a diferencia de su hno gemelo con firmware diferente posee un solo led que parpadea por lo que hay que montar un amplificador diferencial y filtrar solo el momento de coneccion y tomarlo como reset.

    aqui hay un circuito diferencial
    http://morf.lv/modules.php?name=tutorials&lasit=30

    PD:si tienen conectado el arduino a la PC descarga el sketch creo es por la tierra ??? pero si lo alimentan desde una fuente se conectan al blueT nos tira error de sincronismo a menos que presionemos el reset como los arduino pro mini

    voy a probar los HC-05 por costo aunque habria que probar con un amplificador en modo diferencial para los HC-06.

    *************************************************************************
    Update 19-02-15
    Funciona correctamente en windows  con el modulo HC-05 y las instrucciones
    http://makezine.com/projects/diy-arduino-bluetooth-programming-shield/
    pero utilize el programador serial usb-ttl para configurarlo por terminal de linux :)





    Sldos..



    jueves, 20 de noviembre de 2014

    Arduino - GPS EM406 Bluetooth Acelerometro MMA6671

    Bueno aca presento mi pequeño proyecto de GPS con conexion  Bluetooth y acelerometro...

    Lista de materiales
    Arduino uno o micro similar

    Modulo Serie Bluetooth
    Datasheet: http://www.exp-tech.de/service/datasheet/HC-Serial-Bluetooth-Products.pdf 
     
     
     
    Version para 3.3vcc


    Version para 5vcc



    Las dos son las mismas nada mas que el segundo shield posee pines y reguladores de tension, led, etc.

    Modulo Serie GPS EM406
    Datasheet: https://www.sparkfun.com/datasheets/GPS/EM-406A_User_Manual.PDF








    Video demo de su funcionamiento.....




    Sldos...

    Arduino - RTD PT-100 PID PWM (English version)


    Closed loop temperature control for three-phase heater industry.

    Sensor: RTD PT100  "Resistance change in temperature linear function.

    Conditioner: Not over yet, for now is a voltage divider, is best to use op-amps to improve zero stability.

    Control: Arduino Mega 2560.

    Output Interface: Interface with power solid state relay supports 400VCA - 90A per phase, modulating the current with very stable PWM.

    Actuator: For testing I use a "temperature gun" with regulated PWM solid state relay will be the real tubular resistors.

    HMI or SCADA: isn´t a hmi or scada but, fulfills the function for monitoring, KST and RealTerm under windows work fine, but under ubuntu i use GtkTerm.
    Other monitors can be used, scadabr or another also have to test the OPC driver for arduino but it only works on Windows and turns your Arduino into a Modbus device other option is proccessing and android.

    Things to improve
    Measure the temperature with two RTD averaging and improve stability condition with op-amp to improve on precision but with the ADC of arduino works great to add a function to interrupt, and cut high temperature thermocouple, to measure the power consumption of this would be great for know all consumption per phase and take decicions on failure, improve the graphics a SHIELD LCD PWM is a very well-armed great library but can be improved with a RNA or Perceptron learning of values ​​for PID autotuning and use a slightly more powerful SCADA



    Code on github for the heater.

    • Regards :)




    ************************************************** *******************************
    Update 18/05/2014

    This is an update of my project control by arduino or openhardware temeperature control under PT100.
    I use a mega, Freaduino 2560 or can run other arduino.
    The first test showed his running its power, flexibility and the proper firmware runs on a mega one or another clone or our own microcontroller.
    The downside of this project is safety pin or put wire welding isn´t very safe and meet safety regulations and standards, so the following is to improve the safety, I have seen boards that serve no intrinsic safety and function and are installed in industrial processes (Argentina :)).
    Next, mount it in a  Junction box "APE" on a DIN rail with sockets, DC-DC power stable and sometime make my graphic program to program ladder.

    Information:
    ++ very good in Spanish   ++

    Controllino

    In so many will arise, which encourages me to continue with my project of course this is an improvement but thanks to 3D printers, I'll be able to make the brackets for DIN rail housings platelets.

    It occurred to me the idea of mounting on the DIN rail mega thereupon told'll print my 3D printer models have to do in OpenSCAD and a good bum looking at Thingiverse already had thought lol

    Mr. jean claude ingenious make this model in OpenSCAD or other, fabulous program you download the STL model and print directly to your printer 3d.

    by JEAN CLAUDE


    This type of boxes or junction box gives us security against moisture and outdoor "intemperie hazardous area"  house burned would contain short.





    The DIN rail is a standard 35mm rail for mounting electrical applications.



    Well first and foremost we mount on DIN rail with brackets, I got one but I plan to print with my i3 Prussa with the ABS housing and industrial terminal blocks using standardized.
    It should be something like this is the idea.





    1- Ape aluminum box
    2- Standardized DIN rail
    3- Industrial terminal blocks
    4- DC-DC power filters
    5- Grounded - Fuses.


    Hardware:

    Enclosure: IP66 JunctionBox
    Sensor: PT100 double with two three-wire RTD.
    Controller: Freaduino mega 2560.
    Display: LCD 16x2 is a shield but I will make an extension with terminal blocks.
    Power Interface: Solid state relay 400Vac and 90A of .

    Software:


    Among the improvements calibration was performed with a dry thermal bath contrasted with a thermometer Thermocouple fluke 51 k, and a pyrometer Raytek for safety, use a double PT100 fault if some have their backup works with either and is a priority, if they fail both the DIP process stops and go without alarming the same function.
    You can increase or decrease the required setpoint from keypads.

    According configure and works with both declare arduino mega as the one.









    With respect to security wiring board and I plan to use a shield of this type but I think I will myself to realize the plate here in Argentina isn´t got no one to one but I'm not convinced.


    Regards ...

    Update 30/05/2014 ******************************************** *************

    Well so it is becoming a little better and not look like a tangle of cables "It is dedicated to the person who told me   it was a tangle of wires "¬¬   hahaha







    It gets better :)

    ********************************************************************************************************

    Update 20/11/2014

     I found myself with the drawback of using terminal blocks give more security to the board did not find the screw shield in Argentina so assemble your own and after several models fritzing mountain all on one plate so I'll take more verbose but future I want to mount on a DIN rail :)














    Regards.

    martes, 18 de noviembre de 2014

    Arduino - Nodo souliss para domotica

    Arrancando con mi proyecto de domotica me encontre con una app para android muy buena facil de configurar y funciona en mi celular y tablet es una app italiana muy interesante ya la portaron al español.

    De aca bajas tanto la app para android como el firmware para arduino(conjunto de librerias y ejemplos)


    Las funciones y logica me parece muy buena esta orientada a programacion de PLC manejo de dispositivos, slots, timing etc.
    Otra cosa que me sorprendio es la comunicacion el cual es peer to peer o todos a todos por cualquier medio ehternet - Wifi - RF- RS485 - RS232 a traves de vNET o virtual NET en donde por un canal pueden haber varios tipos de comunicacion.


    Pruebas de hardware y consumos 2 shield de 8 reles.


    Probando todos los reles desde arduino con un par de bucles del tipo

    i=pin_inicial;
    for(i=0<pin_inal;i++)
    {
    pinMode(i,OUTPUT);
    digitalWrite(i,LOW); //logica invertida
    }



    Todos consumen alrededor de 1.3A casi 90mA por rele la temperatura es infernal si estan todos activos como precaucion y pensando en maxima carga si o si colocar un fan o peltier para refrigeracion y problema solucionado.




    Proyecto para gabinet domotica.

    Alimentacion 220vca de back-up
    *************************
    Rectificador 220vca a 24vcc (cargando mientras hay tension por algun corte activa el inversor)
    Regulador y control de carga a baterias 12vcc (un banco de dos baterias 12vcc)
    Inversor de 12vcc a 220vca - 1500watt
    (la electronica no consume tanto estaba pensando en una fuente con 24vcc/12vcc(motores ) - 5vcc -3.3vcc)

    Gateway
    ************
    router d-link (1 WAN - 4 LAN - 1 WLAN)

    ServerNAS
    *************
    Rasperry PI B 512MB(conexion escritorio y shell remoto)
    Disco USB 500GB
    Placa de red LAN - WLAN

    nodo 1 (como prueba no esta definitivamente armado)
    *********
    1 - fuente 5vcc - 3.3vcc
    1 - arduino mega 2560(souliss lib)
    2 - modulos de salidas 8 Reles
    1 - placa enc28j60

    Control Modo remoto
    *************************
    Celular samsung galaxy chat - soulissApp
    Tablet generica - soulisApp

    La primer prueba espectacular es increible me dio un poco de problemas el mega con respecto a los pines pero mirando codigo me di cuenta por si le sirve a alguien...

    enc28j60 -> Arduino Mega 2560 definido en spi.h
    CS --> D10 (creia era el 53 y nooo)
    SI     ->   D51
    SO     --> D50
    SCK --> D52

    souliss/framevNet/drivers/ethENC28J60/spi.h
    define atmega 2560
    BIT4 --->0x10 - 00100000
    DDRB -->portB como salida
    PORTB-->lo pone en alto

    segun el pinout del atmega se podria cambiar para ocupar el pin 53 pero no lo hice lo pase al D10 y fue


    PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0
    0 0 0 1 0 0 0 0 --->PB4 pin 10 del mega 0x10
    0 0 0 0 0 0 0 1 ---->PB0 pin 53 del mega 0x1 (pero no lo probe)

    Programa soulissAPP corriendo desde tablet generica. (16 dispositivos o slots)







    me quedan hacer un par de montajes para que no quede todo suelto agregar pulsadores o comando de vos un gabinete y tomas corriente para rack por ahora.




    Sldoss...


    **********************Actualizacion   03/12/14**********************************
    Bueno despues de hacer funcionar todo como corresponde se me ocurrio armar un rack de comunicaciones u algo parecido siempre tuve ganas de tener un rack y como tenemos equipo de comunicacion controladores rele con tensiones y alimentaciones me parece ideal, la idea seria que quedara algo asi los que puedan  armar el cableado de cero desde el rack a los cañeros o usar tomacorrientes por RF en mi caso voy a conectar los dispositivos hasta los toma corrientes del rack :) me gusta mas asi quizas hasta bandeja utilize como se utiliza en la industria :) u oficinas con falsos pisos esto es poco comun en hogares normales pero como no soy muy normal que digamos lo voy a pensar.





     



    Por ahora solo armaria un rack para mantener todo ordenado los dispositivos que conecte los puedo pasar por cable canal pasarlos por los cañeros ya veremos o usar tomas RF.

    La idea es armar un gabinete rackeable la fuente quiza la separe de tener espacio por el ruido electromagnetico.

    1  - rack con la fuente el arduino y los reles (no definido aun)
    2  - rack con el router wifi en modo bridge (WDS) o sea replicando el principal si se cae el principal entras por  el bridge :) probado y funciona :)
    3  - rack con tomacorrientes de 20A para alimentacion de fuentes y equipo de comunicacion
    4  - rack de tomacorrientes de salida (1 x 8 20A) para los dispositivos 1 al 8
    5  - rack de tomacorrientes de salida (2 x 8 20A) para los dispositivos 9 al 16







    Sldos espero les guste....

     lo anoto ya o me olvido

    Estaria bueno no solo habilitar el dispositivo sino tb controlarlo

    esto me gusto emular controles remotos(tv-home-dvd-aire-decoder-etc)
    http://www.ladyada.net/wiki/tutorials/learn/sensors/ir.html 


    esto tb me interesa emular mandos rf aunque lo del roling code suena complicado de replicar
    http://en.wikipedia.org/wiki/Rolling_code



    Sldos..

    Que alegría un compañero que trabaja en comunicaciones,  me regalo un rack estaba desarmado lo arme y ya parece un rack de comunicaciones es solo prueba aun le falta banda



     Sldos...

    ***************************09/12/14**********************************************
    Bueno tras tatar de montar las placas para que queden prolijas para armar los tomacorrientes asi va quedando no me convence del todo aun en cuanto a prolijidad ni orden de cables....


    por un lado tengo
    La fuente de 220vca a 12 - 5 y 3.3vcc
    La placa arduino - enc28j60
    La interface de reles 16 reles para 220vca
    El fan de 12vcc
    y el router en modo bridge WDS

    dejare en el frente conexiones de red y entrada al arduino para configuraciones y salidas alimentaciones por la parte posterior.










    Funciona corectamente pero no me cierra el orden aun.

    Sldos..


    ********************************16/12/14******************************

    bueno va mejorando el orden y el cableado






    Sldos...


    Actualizacion  18-02-2015

    Mejoras en cableado, borneras, y tomas para rack mas modulo HC-05 para poder programarlo de manera inalambrica.


    Modulo Bluetooth HC-05 (Programacion inalambrica por bluetooth)







    Cableado de reles protecciones y borneras.


    Tomas para rack 19"







    Sldos...