Project_GitHub
👆프로젝트 코드가 궁금하다면 여기루
라즈베리파이와 조도 센서를 통해 실시간 방의 밝기 측청한 후 밝기에 따라 조명을 켜주는 서비스
라즈베리파이
조도센서 연결, 소켓 통신으로 안드로이드 폰에 값 전달
서버
안드로이드 어플
라즈베리파이에서 받아온 값을 UI로 표현
클라이언트
사용자가 조명을 조작할 수 있도록 함
module Not Found 에러
라즈베리파이에 bluetooth를 설치했지만 계속 찾을 수 없다고 한다.. 결국 이유를 찾지 못하고 소켓 통신을 통해서 라즈베리파이와 안드로이드폰을 연결했다.
구글링을 통해서 upgrade, update, bluzman, pip... 전부 해봤지만 성공하지 못했다..
UNICODE DECODE 에러
# 클라이언트에서 보내는 데이터를 서버에서 처리
print('rev : ', data.decode('utf-8'), len(data))
// 클라이언트에서 현재 밝기에 따라 조명의 상태를 제어, 제어 값을 서버에 보냄
dos.write(lightState);
클라이언트에서 서버로 받아오는 값을 utf-8로 디코드 하도록 처리했는데 클라이언트에서 보내는 값은 utf-8이 아니었다. 보내는 값은 utf-8이 아닌데, 받은 데이터를 해석하는 것은 utf-8로 하고 있기 때문에 나는 에러인 것 같다.
그래서 자바와 파이썬의 int 바이트를 맞춰서 보내는 복잡한 처리를 하는 것을 고민하고 있었는데, 생각보다 간단하게 클라이언트에서 서버로 보내는 데이터 처리를 utf로 하면 해결할 수 있는 문제였다.
// 클라이언트에서 현재 밝기에 따라 조명의 상태를 제어, 제어 값을 서버에 보냄
// 수정
dos.writeUTF(""+lightType);