Skip to content

Katarisoft/sisa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

###############

API SISA

############### Api para el manejor de placas arduino y arduino_mega

Es necesario instalar pyfirmata, django, postgresql

################

Instalar

################ Descargar pyfirmata (https://github.com/tino/pyFirmata)

Según la distro que uses instalar django y postgres

Crear la dase de datos en postgres pg_sisa

cd /home/user/sisa

modificar ./sisa/setting.py, según los parametros de la base de datos creada

DATABASES = {

    'default': {

    'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.

        'NAME': 'pg_sisa',                      # Or path to database file if using sqlite3.
    
        'USER': 'user_sisa',                      # Not used with sqlite3.
    
        'PASSWORD': 'clave_sisa',                  # Not used with sqlite3.
    
        'HOST': 'localhost',                      # Set to empty string for localhost. Not used with sqlite3.
    
        'PORT': '5432',                      # Set to empty string for default. Not used with sqlite3.
    
        }

    }

################ #Configuración # ################

Creamos la estructura de la base de datos

python manage.py syncdb

Se crea la estructura y llena tablas con ejemplos, para no llenar las tablas eliminamos la carpeta ./api/fixtures

Las tablas que se crean son:

placa: que nos permite definir el tipo de arduino a configurar, sus puertos digitales, analogos y pwm

puerto: en que puerto del sistema está configurada, ejemplo linux /dev/ttyACM0

tablero: tablero con el cual trabajaremos es decir que tipo de arduino y en el puerto que esta conectada

pin_placa: configuración de cada pin de un tablero, modo (entrada o salida), tipo (digital, análogo).

Combinacion_pin: Esta tabla define tipos de combinaciones que se tiene de ser el caso, que pin de salida controla un pin de entrada o pin de movimiento, y el tipo de manejo para el pin de movimiento en caso de configurarlo. ejm pinentrada2, queremos que al enviar un pulso electrico a 1, envíe una señal a pinsalida8 y cambie de estado, al igual que pinmovimiento, de acuerdo al modo que esté configurado. off_auto, es decir mientras pinmovimiento no reciba señal, el pin8, o en el que esté configurado cambiara de estado a 0 (apaga), en caso de configurarlo como on_auto, cuando pinmovimiento reciva una señal, pin8 o el que este configurado cambiará de estado a 1 (enciende).

Arrancar el servidor

python manage.py runserver

################

USO

################

Para usar el api, podremos enviar parámetros como recibir el estado de uno o todos los pines, para ello todos devuelve un json de la forma {"tablero":{"pin":"valor"}} ó si genera error {"error":"mesaje"}

Cambiar estado a un pin, solo funciona con tipo=d (pin digital)

http://localhost:8000/api/?pin=8&accion=1&tipo=d&tablero=1

Devuelve

{"1":{"8":false}}

Leer estado de un pin, cambiando tipo=a (análogo), podremos obtener la lectura de un pin análogo

http://localhost:8000/api/?pin=8&accion=0&tipo=d&tablero=1

Devuelve

{"1":{"8":false}} En caso de ser digital

{"1":{"0":0.035}} En caso de ser análogo

Donde:

pin: numero pin a leer o cambiar estado

acción: 1 = cambia estado a pin 0 = lee estado de pin

tipo: d = digital a = análogo

tablero: número de tablero configurado en db

si tipo = a, acción solo puede ser = 0.

Cambiar estado a 0 (apaga) todos los pins digitales de salida sin importar el tablero

http://localhost:8000/api/?estado=0

Devuelve

{"1":{"8":false,"9":false},"3":{"8":false, "10":false}}

Leer estado todos pins, separandolo por tablero en un diccionario

http://localhsot:8000/api/?estad=1&modo=1&tipo=d

{"1":{"8":true,"10":false},"3":{"8":true, "10":false}} En caso de pins digitales

{"1":{"0":0.0085,"1":0.0434}, "3":{"0":0.0485,"1":0.0001}} En caso de pins análogos

Donde:

estado: 0 = cambia a 0 todos los pines de salida digitales, 1 = lee estado de pines según combinación

modo: i = input o = output

tipo: d = digital a = análogo

si tipo = d, modo solo podrá ser = 1

About

Api para el manejo de placa arduino via web

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages