Este proyecto tiene como objetivo autenticar/autorizar a los usuarios de las etiquetas RFID utilizando una integración simple con la base de datos.
El proyecto tiene como objetivo cumplir con un pendiente que ya tenía con el tema en cuestión y también satisfacer una demanda de usuarios de la comunidad que buscan tales temas. - En 1 día, creo que vi a unas 3 personas que buscaban algo.
Así que deja que comiencen los juegos, espero que te guste :)
En el diagrama anterior, se puede observar el flujo de la aplicación que se desarrolló. Suena complicado, pero cuando comienza a comprender como si das comunicación de red, tomas tal arquitectura.
Básicamente tenemos 2 flujos en este proyecto: el ping y el pong . Ambos se abordarán a continuación.
El flujo para el ping es el flujo inicial de comunicación. Es de esto que toda comunicación había comenzado. Vea la imagen que se refiere a continuación:
Básicamente se realizarán los pasos a continuación:
... sigue en el siguiente tema
El pong será responsable de la devolución, es decir, si la etiqueta de lectura está activa/bloqueada o simplemente no existe. El resultado será un simple retorno booleano - 0 o 1 . Vea cómo fue el flujo en la imagen a continuación:
Por lo tanto, continuando con el flujo de aplicación, la continuidad se administrará de acuerdo con el quinto paso abordado en el tema anterior.
El repositorio está organizado debido a las responsabilidades que ofrece.
El firmware como se indicó se encuentra dentro de la carpeta ESP8266 , así que ábralo con el Arduino IDE.
Nota: Recuerde que necesita tener 2 bibliotecas instaladas, ambas fueron citadas en las tecnologías utilizadas del tema
Al tener el firmware ya abierto, tendrá que cambiar algunas variables a su alcance. Como Wifi Network, Broker, Temas.
Así que tenga en cuenta las siguientes variables:
SSID - nome de sua rede wifi
PASSWORD - senha de sua rede wifi
BROKER_MQTT - url do broker mqtt
BROKER_PORT - porta do broker mqtt
TOPIC_PING - topico utilizado para publicar o valor tag rfid
TOPIC_PONG - topico responsavel por receber o status da autenticação rfid
Tenga en cuenta un anexo al corredor utilizado. Este corredor que he implementado en mi PS para uso personal. Puedes usarlo, pero no garantizo el 100% de estabilidad, ya que todo el tiempo estoy probando algo nuevo: p. El consejo es tener su propio corredor de mosquitto en casa o en algunos vicepresidentes.
Con cada circuito de la placa listo, ahora simplemente suba la placa y vigile el monitor en serie. Mira si todo está bien. Si es así, puede probar sus etiquetas RFID para ver si todo está realmente bien con respecto a los enviados. Ahora vamos al siguiente tema.
Aplicación web: ubicada en la carpeta del cliente , es 100% HTML, por lo que no necesita nada extraordinario para que se ejecute. Incluso puede abrir directamente con el navegador.
A continuación se presentan algunos consejos para tener un entorno de prueba/desarrollo más agradable.
En la parte de la aplicación web, tenemos que hacer solo 2 cambios. Básicamente es la URL API y también la URL del corredor.
Todas las URL están en el archivo app.js , ubicado en activos/js/app.js .
const apiPath = 'http://127.0.0.1:3000/api'; // caso esteja em localhost, pode deixar assim mesmo.
const mqttConfig = {
broker: 'broker.iot-br.com', // url do broker
topic: '/empresas/douglaszuqueto/catraca/entrada/ping', // topico ouvinte
port: 8083 // porta referente ao WebSockets do Broker
};
La base de datos será MySQL (decidí elegirla, ya que es una de las más conocidas, por lo que la mayoría de las personas lo han pasado: P).
El nombre que asigna a la base de datos es RFID , si desea elegir otro nombre sin problemas. La estructura bancaria está dentro del archivo de base de datos/base de datos.sql .
Básicamente no hay misterio, solo cree la estructura de acuerdo con el archivo :).
Al ingresar a la back -end, como se habrá dado cuenta, tendrá 2 alternativas. En Python o NodeJs.
Hasta ahora (06/05/2017), se ha desarrollado solo en NodeJs, tan pronto como doy, crearé uno usando Python con Flask.
Para empezar, nada más justo que instalarse los Nodejs, ¿estás de acuerdo? Para hacer esto, ingrese el sitio web oficial e instale de acuerdo con su sistema operativo.
En segundo lugar, navegue a la carpeta NodeJS: Server/NodeJS .
Al estar en la carpeta, debe realizar algunos procedimientos iniciales, como instalar las instalaciones del proyecto, así como configurar el acceso a la base de datos, entre otras configuraciones.
Como gerente de dependencia, utilicé el hilo, si aún no lo tiene, el enlace de cotización tendrá los pasos necesarios.
Una vez instalado, simplemente ejecute el comando hilo .
Para centralizar de una manera genial en las variables de nuestro entorno, utilicé Dotenv para este propósito.
Se dará cuenta de que en la raíz del proyecto, tiene un archivo .env.example , haga una copia llamada .env . Verás esta estructura:
APP_URL=http://127.0.0.1:3000/ // url base do webservice
DB_HOST=127.0.0.1 // ip/host do Mysql
DB_DATABASE=rfid // nome dado ao banco de dados
DB_USER=rfid // usuário do banco de dados
DB_PASS=rfid // senha do banco de dados
BROKER_HOST=broker.iot-br.com // ip/host do broker
BROKER_PORT=1883 // porta do broker mqtt
Una vez configurado, todo está listo para escalar nuestro servicio web.
Para hacer esto, simplemente ejecute el comando de prod de hilo (un alias del comando de índice nodo )
Si todo salió bien, tendrá acceso al servicio web que se ejecuta en URL 127.0.0.1:3000/api . En el tema de los puntos finales , la apelación disponible será tratada.
Para cada tabla de nuestra aplicación (usuarios, etiquetas, access_log, tendremos una API para hacer crud (crear, leer, actualizar, eliminar) de cada función disponible.
Por lo tanto, para cada característica, puede hacer una solicitud en el siguiente formato:
MÉTODO - URL - RECURSO
GET http://127.0.0.1:3000/api/tags
Neste simples caso, irá retornar todas tags cadastradas no sistema :)
Con cada entorno listo, puede comenzar las pruebas. Para esto, tenga la identificación de sus etiquetas a mano.
Poco después, debe registrarse en el sistema, y si, como yo, solo tengo dos, dejé una etiqueta activa y una discapacitada. Simulando así un entorno donde se autenticará una etiqueta y se negará otra.
Bueno chicos, por ahora eso, creo que pude lograr mi objetivo donde era simplemente demostrar cuál sería una autenticación de etiqueta RFID con la base de datos. Fui un poco más allá de crear WebRservice y etc., pero fue un ecosistema genial.
Como puede ver, este proyecto son los conceptos básicos de lo básico. No tiene capa de autenticación de usuario, cifrado, es decir, seguridad en general.
Otro punto que ya me preguntó era sobre el registro automático de la etiqueta a través de los LCD, LCD y LCD, etc., pronto se centró en el objetivo real.
Quiero hacer un proyecto más completo si hay un cierto interés de la comunidad, confieso que fue un proyecto muy agradable de desarrollar, incluso con toda la 'simplicidad' involucrada.
Me quedo aquí, cualquier comentario, duda, ya sé dónde encontrarme. Entonces, si realmente disfrutó el proyecto, asegúrese de dejar esa estrella en el repositorio :). Es muy importante evaluar cuál fue el grado de contribución que causó.
No olvides seguir el blog :): https://douglaszuqueto.com
Si disfrutó de este y otros proyectos que mantengo, el 18/06/2017 abrí una campaña de financiación recurrente para recaudar fondos para una dedicación de cumplimiento a proyectos de código abierto.
Entonces, si quieres ayudarme, aquí está el enlace de mi apoyo. Gracias de antemano: d.