hanmolee / IoT_Car-Final_Project

IoT Car (미래형 자동차) Project_final TEAM
5 stars 2 forks source link

JS_PARK 진행사항 #3

Open ParkJongsoon opened 7 years ago

ParkJongsoon commented 7 years ago

7월 5일

아두이노 초음파 센서 3개를 사용하여 전방, 좌측 , 우측 거리 측정 필요 -> 아두이노와 같은경우 쓰레드를 진행하지 않으므로 각 센서별 측정 문제 발생 -> NewPing 라이브러리를 사용하여 측정을 진행 (url : http://playground.arduino.cc/Code/NewPing)

아두이노 측정 값 -> python 시리얼 통신 -> python에서 시리얼 통신을 통하여 아두이노 측정 값 수신

7월 6일 python에서 시리얼 통신을 통해 수신한 데이터를 MySQL에 Insert하기 위하여 데이터 처리가 필요. -> Queue자료구조 사용 : 시리얼 통신을 통해 수신한 데이터를 서버로 보낼 시에 서버와의 통신문제로 인하여 데이터를 Insert 시키지 못할 경우 고려 -> 수신받은 데이터를 큐에 1차적으로 저장

Queue에 저장되는 값이 값들만 저장 -> 딕셔너리(사전) 자료형을 사용하여 키와 벨류로 묶어서 큐에 저장

하나의 반복문에서 Queue에 저장하며 DB Insert 하는 동작은 한번씩 진행되는 문제 -> Python에서 쓰레드를 사용하여 Queue -> DB_insert하는 작업을 별도의 쓰레드로 동작시킴

dic_time_distance

7월 7일 Node.JS를 이용하여 Web Server 구축, REST API를 이용하여 파이썬에서 Node를 통해 MySQL Insert

selectdb

DB에서 데이터 처리를 위하여 프로시저 사용 (insert 프로시저로 아래 명령 실행)

DELIMITER $$

DROP PROCEDURE IF EXISTS insertDistance$$

CREATE PROCEDURE insertDistance( inputTime datetime, frontValue int, rightValue int, leftValue int ) BEGIN

INSERT INTO testDistance(checkTime,FrontDistance,RightDistance,LeftDistance) VALUES(inputTime,frontValue,rightValue,leftValue); END $$

(혹시 몰라 테이블 코드도 삽입)

CREATE TABLE testDistance( checkTime datetime, FrontDistance int, RightDistance int, LeftDistance int, primary key checkTime );

node와 통신할 시 서버가 열리지 않았을시에 서버가 열리지 않았다는 출력을 위해 예외처리 코드 추가 sercerdon topen