Probando Django Rest Framework

Después de la primera fase en la que tocó aprender los fundamentos y funcionamiento de Django, es hora de empezar a pensar en como realizar una de las claves del proyecto, la API.

He estado viendo la posibilidad de no utilizar ningún framework para ello, pero viendo las facilidades que da y  todas las cosas que tiene, quiero ver que tal funciona el Django Rest Framework.

Django REST Framework

http://www.django-rest-framework.org/

Llevo unos días investigando su funcionamiento e incluso “pelándome” con algunas funciones como “Filtrar por URL” más del tiempo que debía, pero al final me va saliendo.

Ya he publicado un commit con la primera parte de la API, donde obtiene un ID por URL que filtra en base de datos, saca el ID del usuario y verifica si ha pagado para devorlver un resultado que interpretrá la puerta (clientes) en forma de JSON.

Anuncios

Fase Django 1.8

He comenzado a poner en github la parte del proyecto que quiero realizar con Django. Básicamente la creación de una API que atienda las peticiones de los clientes (las puertas).
La verdad que como lo tenía antes, con Flask (MicroFramework de Python), me gustaba mucho porque era simple. Pero esa sencilez me hacía darme cuenta de las limitaciones que tenía al ser tan pequeño y aún “muy” nuevo.

Por ello decidí evolucionar a su “hermano mayor”, Django. Cuidado! que Flask crece rápido 😉

Toca aprenderlo, ver mucha documentación y disfrutar mejorando.

Commit del comienzo del proyecto de Django

 

 

 

Nuevo Hardware Recibido – ESP-8266EX (Wifi)

ESP-wifi-Wemos

El día 5 de Noviembre recibido una placa de desarrollo con chip ESP-8266EX (Wifi) y compatible con el entorno de Arduino.

La nueva placa la que quiero poner como “cliente” en las puertas para el control de acceso, bajando el coste de tener una Raspberry Pi por puerta (~50€) a los 9€ que sale está.

Cada puerta tendrá de forma básica ésta placa Wifi junto con un lector RC522 de NFC y un Relé para activar una cerradura eléctrica.

Durante las pruebas iniciales a dado ciertos problemas al compilar algunos de los ejemplos del código pero después se ha resuelto.

Documentacion de la placa Wifi: http://www.wemos.cc/d1/Hardware

Sigo investigando el tema…

Estado Actual del Proyecto

El proyecto se encuentra en una fase muy temprana donde lo fundamental es que funciona.

Después de estructurar las ideas y ver como era posible hacerlo de la forma más adecuada he llegado a varias conclusiones referente al proyecto:

-Low Cost: Tiene que ser lo más económico posible, siempre que pueda reducir en algo el coste de la instalación será una prioridad aplicarlo si fuera posible.

-Abierto:

“Devuelve a la comunidad el conocimiento que has conseguido gracias a ella.”

Este proyecto no sería posible sin el software y hardware open source, así que es muy gratificante ayudar a aumentar este patrimonio Open.

-Documentar bien: No solo se trata de hacerlo y que funcione bien, sino que cualquiera pueda utilizarlo de forma sencilla. Es ahí donde la documentación es fundamental. Mi nivel de inglés es normal así que también es una meta documentarlo en este idioma.

FUNCIONAMIENTO ACTUAL:

Ahora mismo el control de acceso funciona basado en una estructura “Cliente-Servidor”.

Una Raspberry Pi como servidor donde se aloja una web en Flask (Microframework de Python) que tiene una API que responde a los clientes sobre una base de datos PostgreSQL. También dispone de un bot de Telegram para escribir en un grupo si el sitio está abierto o cerrado según la gente que esté dentro.
Como cliente se utiliza también una Raspberry Pi que hace una consulta HTTP a la API web, ésta consulta la realiza al capturar el ID de un tag NFC mediante el uso del lector RC522. La web le responde un JSON que el cliente parsea y en función del resultado activa un relé para abrir una cerradura electrónica que funciona a 12V en corriente alterna.

El código de esto se encuentra en: https://github.com/torehc/carontepass-v1