이 프로젝트는 데이터베이스와 간단한 통합을 사용하여 RFID 태그에서 사용자를 인증/승인하는 것을 목표로합니다.
이 프로젝트는 내가 이미 문제의 주제로 가지고있는 계류 중이며 그러한 주제를 찾는 커뮤니티 사용자의 요구를 충족시키는 것을 목표로합니다. - 하루 만에, 나는 약 3 명이 무언가를 찾고 있다고 생각합니다.
그러니 게임을 시작하게하십시오 - 나는 당신이 그것을 좋아하기를 바랍니다 :)
위의 다이어그램에서 개발 된 응용 프로그램의 흐름을 관찰 할 수 있습니다. 복잡하게 들리지만 네트워크 커뮤니케이션을 제공하는 것처럼 이해를 시작하면 그러한 아키텍처를 취합니다.
기본적으로 우리는이 프로젝트에서 핑 과 폰이 2 개의 흐름을 가지고 있습니다. 둘 다 아래에서 다룰 것입니다.
핑 의 흐름은 통신의 초기 흐름입니다. 모든 커뮤니케이션이 시작되었습니다. 아래를 참조하는 이미지를 참조하십시오.
기본적으로 아래 단계는 다음과 같습니다.
... 다음 주제에서 다음과 같습니다
판은 반환에 대한 책임이 있습니다. 즉, 읽기 태그가 활성화/차단되었거나 단순히 존재하지 않는 경우. 결과는 간단한 부울 리턴 -0 또는 1 입니다. 아래 이미지의 흐름이 어떻게되었는지 확인하십시오.
따라서 적용 흐름에 따라 위의 주제에서 다루어진 5 단계 에 따라 연속성이 제공됩니다.
이 저장소는 제공하는 책임으로 인해 구성됩니다.
언급 된 펌웨어는 ESP8266 폴더 내부에 있으므로 Arduino IDE와 함께 열립니다.
참고 : 2 개의 라이브러리가 설치되어 있어야합니다. 두 가지 도서관이 사용 된 주제에서 인용되었습니다.
펌웨어가 이미 열려 있으려면 일부 변수를 범위로 변경해야합니다. Wi -Fi 네트워크, 브로커, 주제와 마찬가지로.
따라서 다음 변수에주의하십시오.
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
사용 된 브로커에 대한 부록에 주목하십시오 . 이 중개인은 개인 용도로 PS에서 구현했습니다. 당신은 그것을 사용할 수 있지만, 나는 새로운 것을 테스트하고 있기 때문에 100% 안정성을 보장하지는 않습니다. p. 팁은 집이나 일부 VP에 자신의 중개인 모기를 두는 것입니다.
보드의 모든 회로가 준비되면 이제 플레이트를 업로드하고 직렬 모니터를 주시하십시오. 모든 것이 정상인지 확인하십시오. 당신이 있다면, 당신은 당신의 RFID 태그를 테스트하여 모든 것이 실제로 선적 된 것과 관련이 있는지 확인할 수 있습니다. 이제 다음 주제로 가자.
웹 애플리케이션 - 클라이언트 폴더에 위치한 100% HTML이므로 실행하기 위해 특별한 것이 필요하지 않습니다. 브라우저로 직접 열 수도 있습니다.
다음은보다 즐거운 시험/개발 환경을 갖기위한 몇 가지 팁입니다.
웹 응용 프로그램 부분에서는 2 개의 변경 만 수행해야합니다. 기본적으로 API URL 및 브로커 URL입니다.
모든 URL은 app.js 파일에 있으며 자산/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
};
데이터베이스는 MySQL이 될 것입니다 (나는 가장 잘 알려진 것 중 하나이므로 대부분의 사람들이 그것을 겪었습니다 : p).
데이터베이스에 지정된 이름은 RFID 입니다. 문제없이 다른 이름을 선택하려면 다른 이름을 선택하십시오. 은행 구조는 데이터베이스/Database.sql 파일 내에 있습니다.
기본적으로 미스터리가 없으며 파일에 따라 구조를 만듭니다 :).
백엔드에 들어가면, 당신이 알 수 있듯이, 당신은 2 개의 대안이 있습니다. 파이썬 또는 nodejs에서.
지금까지 (05/06/2017), 그것은 Nodejs에서만 개발되었으며, 내가주는 즉시 플라스크와 함께 Python을 사용하여 하나를 만들 것입니다.
우선, NodeJS를 설치하는 것보다 더 공정한 것은 없습니다. 동의하십니까? 이렇게하려면 공식 웹 사이트를 입력하고 운영 체제에 따라 설치하십시오.
둘째, nodejs : server/nodejs 폴더로 이동하십시오.
폴더에 있으면 프로젝트 시설 설치뿐만 아니라 데이터베이스에 대한 액세스 설정 등의 초기 절차를 수행해야합니다.
종속성 관리자로서 나는 원사를 사용했는데, 당신이 아직 없다면, 당신이 아직 없다면, 견적 링크에는 필요한 단계가 있습니다.
설치되면 원사 명령을 실행하십시오.
환경의 변수를 멋진 방식으로 중앙 집중화하기 위해이 목적으로 dotenv를 사용했습니다.
프로젝트의 루트에는 .env.example 파일이 있으며 .env 라는 사본을 작성합니다. 이 구조를 볼 수 있습니다.
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
일단 구성되면 모든 것이 우리 웹 서비스를 등반 할 준비가되었습니다.
이렇게하려면 Yarn Prod 명령을 실행합니다 ( 노드 인덱스 명령에서 하나의 별칭).
모든 것이 잘 진행되면 URL 127.0.0.1:3000/api 에서 실행되는 웹 서비스에 액세스 할 수 있습니다. 엔드 포인트 주제에서 이용 가능한 항소가 처리됩니다.
응용 프로그램의 각 테이블 (사용자, 태그, Access_Log- 사용 가능한 각 기능의 CRUD) (작성, 읽기, 업데이트, 삭제)를 만들 수있는 API가 있습니다.
따라서 각 기능에 대해 다음 형식으로 요청할 수 있습니다.
MÉTODO - URL - RECURSO
GET http://127.0.0.1:3000/api/tags
Neste simples caso, irá retornar todas tags cadastradas no sistema :)
모든 환경이 준비되면 테스트를 시작할 수 있습니다. 이를 위해 태그의 ID를 손으로 가져 가십시오.
그 후 얼마 지나지 않아 시스템에 등록해야하며, 나처럼 두 개만 있으면 활성 태그와 1 개의 비활성화를 남겼습니다. 따라서 태그가 인증되고 다른 태그가 거부되는 환경을 시뮬레이션합니다.
Bueno Guys, 지금은 데이터베이스의 RFID 태그 인증이 무엇인지 보여주는 것이 목표를 달성 할 수 있다고 생각합니다. 나는 Webrservice 등을 만드는 것 이상으로 조금 갔지만 매우 멋진 생태계였습니다.
보시다시피,이 프로젝트는 기본의 기본입니다. 사용자 인증, 암호화, 즉 일반적으로 안전 계층이 없습니다.
이미 나에게 물었던 또 다른 요점은 내장, LED, LCD 등을 통해 태그의 자동 등록에 관한 것이 었습니다. 실제로 실제로 실제 목표에 중점을 두었습니다.
커뮤니티의 관심이 있다면 더 완전한 프로젝트를 만들고 싶습니다. 모든 '단순성'이 관련되어 있어도 그것이 개발하기에 아주 좋은 프로젝트라고 고백합니다.
나는 여기에 머물고 있습니다. 어떤 피드백, 의심 - 이미 나를 찾을 곳을 알고 있습니다. 따라서 프로젝트를 정말로 즐겼다면 저장소에 그 별을 남겨 두십시오 :). 기여의 정도를 평가하는 것이 매우 중요합니다.
블로그를 팔로우하는 것을 잊지 마십시오 :) : https://douglaszuqueto.com
내가 유지 관리하는이 프로젝트와 다른 프로젝트를 즐겼다면, 2017 년 6 월 18 일에 나는 오픈 소스 프로젝트에 대한 헌신을위한 기금을 모으기위한 반복적 인 자금 조달 캠페인을 열었습니다.
그래서 당신이 나를 도와주고 싶다면 여기 내 지원의 링크가 있습니다. 미리 감사드립니다 : d.