지난 글
IoT Core와 센서 연결하기: https://cooookieeee.tistory.com/18
진행사항
1. Lambda 생성 및 Iot Core와 RDS에 대한 권한 역할 부착
2. pymysql layer 다운 받기 위해 서버에서 pip install pymysql 후 library에서 pymysql zip으로 압축 후 sftp 서버로 로컬 전송
3. Lambda에 layer 등록 후 환경변수로 DB 접속 Requirement 등록
4. event로 받은 정보를 column에 맞게 DB에 insert하는 함수 작성 ( RDS 에서 table 생성 선행)
5. Iot core에서 규칙 생성 및 query 작성 및 Lambda와 연결
6. Django에서 RDS로부터 센서 데이터 받아와서 처리
- 특정 sensor_id로부터의 값을 받아온 시간과 현재 시간을 비교하여 10초 이내에 센서가 값을 보냈을 시를 조건으로
score 값에 변화를 주었다.
# 3. 기울기 sensor
sensor_score = dict()
slope_sensor_id = "ea2b62"
sql = f"""SELECT i.time, i.inc
FROM inclination i
WHERE i.sen_id='{slope_sensor_id}'
ORDER BY i.`time` DESC LIMIT 1"""
# now = datetime.utcnow()
sensor_data = connectDB(sql)[0]
time_diff = datetime.utcnow() - datetime.strptime(sensor_data[0], "%Y-%m-%d %H:%M:%S")
if time_diff.seconds < 10:
sensor_score["angle"] = 0
else:
sensor_score["angle"] = 2
결과
문제점 및 개선점
1. pymysql insert 사용시 커밋도 같이 해줘야 반영된다.
2. 메시지 먼저 개시해보고 구독 실행하는것이 진행이 매끄럽다.
3. 메시지 형식에서 작은 따옴표를 인식 못하는 문제 => 람다 호출 불가
- 큰따옴표로 수정
4..ino 파일(C언어 기반) 컴파일시 작은 따옴표를 string으로 컴파일 불가
- 역 슬래시로 “ 내 “ 사용
5. lambda event에서 str아닌 정보는 받지 못함
6. pymysql 에서 insert구문 쓸땐 작은 따옴표를 적용해야한다.
Ref
https://aws.amazon.com/ko/premiumsupport/knowledge-center/iot-core-publish-mqtt-messages-python/
-python으로 iot core에 메시지 pub 하는 방법
https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/iot-lambda-rule.html
-iot core와 lambda 연결
'융복합 프로젝트 PZONE' 카테고리의 다른 글
<PZONE 프로젝트> 18. 회원가입 및 로그인 로그아웃 기능 생성 및 세션관리 (0) | 2023.02.21 |
---|---|
<PZONE 프로젝트> 16. IoT Core와 센서 연결하기 (0) | 2023.02.21 |
<PZONE 프로젝트> 15. PV, PVC로 정적 파일들 공유하기 (1) | 2023.02.21 |
<PZONE 프로젝트> 14. Domain 구매 후 인증서 적용하기 (0) | 2023.02.21 |
<PZONE 프로젝트> 13. Ingress 적용하기 (0) | 2023.02.21 |