Giter Site home page Giter Site logo

hardware-lab's Introduction

들어가기에 앞서

  • 본 프로젝트는 외부에 공개되어 있으므로 민감한 정보가 프로젝트에 추가되지 않도록 주의해주세요.
  • 개발 환경은 OSX 기준으로 되어있습니다.

프로젝트 목표

  • 사무실 내 3대의 에어컨을 음성 제어를 이용해 편하게 켜고 끄는게 목표입니다.
  • 에어컨 2대는 같은 브랜드, 다른 한대는 다른 브랜드라서 에어컨을 켤 때 리모콘을 두 개 찾아야 하는 불편함이 있는데 이를 해결하여 에어컨 리모컨을 찾는데 들어가는 시간을 절약하여 업무 효율성을 높이자.

TODO

  • 회로도 그리기
  • 빵판에 회로 만들기
  • 리모컨에서 나오는 ir신호 캡쳐
  • 캡쳐된 ir신호 발신기 conf 파일 셋업
  • irsend 이용해 에어컨 제어하기
  • 서버 셋업
  • ngrok을 활용한 고정 public ip 할당
  • 도커 배포 환경 구축
  • 모든 배포 환경 자동화
  • 만능 기판에 ir발신기 회로 구성
  • 아마존 에코 연동
  • 슬랙으로 에어컨 켜고/끄기
  • 3일 이상 켜놔도 문제없이 동작하는지 확인

회로도

schematic Download fritzing file(.fzz)

어플리케이션 구조도

structure 원본

회로 구성

준비물

개발 환경

라즈비안 설치 without monitor & keyboard

sudo touch /Volumes/boot/ssh
  • 아래 파일을 열어서 내용추가
sudo vi /Volumes/boot/wpa_supplicant.conf
network={
  ssid="YOUR_NETWORK_NAME"
  psk="YOUR_NETWORK_PASSWORD"
  key_mgmt=WPA-PSK
}
network={
  ssid="YOUR_NETWORK_NAME2"
  psk="YOUR_NETWORK_PASSWORD"
  key_mgmt=WPA-PSK
}
  • 실제로 SD카드에 올라가고 나면 /etc/wpa_supplicant/wpa_supplicant.conf 위치에서 같은 파일 찾을 수 있다
  • pi-baker 받아서 Restore Back으로 img파일 굽기
  • network에서 라즈베리파이 찾기
which apr || brew install arp-scan
arp -a | grep b8:27:eb | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'

or
which nmap || brew install nmap
nmap -sn 192.168.1.0/24
  • ssh [email protected] with password raspberry

  • sudo raspi-config 실행해서 ssh 비번 바꾸기

  • mkdir ~/.ssh -> vi ~/.ssh/authorized_keys 실행해서 public key 넣어놓기

  • ansible로 필요한것들 설치

cd deploy/rpi/ansible
ansible-playbook -i hosts setup_rpi.yml

Docker

sshfs 설정

brew install Caskroom/cask/osxfuse
brew install sshfs
mkdir pi
sshfs [email protected]: pi

LIRC 이용한 적외선 신호 발신기 등록 및 신호 송신

  1. IR receiver 와 lirc 간 연계 테스트 : 셋업해 둔 IR receiver 가 lirc 로 정상적으로 IR 신호를 전달하고 있는지 확인용.
sudo /etc/init.d/lirc stop // lirc deamon 중단
mode2 -d /dev/lirc0

실행 후 IR 송신기의 버튼을 눌렀을 때 터미널에 space, pulse 등의 문자가 출력되면 정상.

  1. irrecord 이용해 송신기의 환경 설정 파일 생성
  • lirc 가 중지된 상태여야 함
irrecord -d /dev/lirc0 --disable-namespace -f ~/lircd.conf
  • --disable-namespace : 각 키에 할당할 수 있는 lable의 리스트가 원래 정해져 있는데, 사용할 label을 직접 정의해서 사용하려고 하는 경우 추가. 원래 정의할 수 있는 label 리스트는 irrecord --list-namespace 로 조회 가능.
  1. samsung ac 인식
  • irrecord 대신에 mode2 사용해야함
sudo mode2 -m -d /dev/lirc0 > ~/lirc.conf

이슈

  • docker for mac clock skew
https://github.com/docker/for-mac/issues/17
맥이 잠자기 모드 갔다오면 clock skew가 생기는 문제가 있다
이때 boto library 사용시 
An error occurred (InvalidSignatureException) on request () on table () when calling the DescribeTable operation: Signature expired: 20170503T140209Z is now earlier than 20170503T144558Z (20170503T150058Z - 15 min.)
와 같이 에러가 발생한다
docker image에 ntp 설치해서 해결

고민거리

  • 환경 설정을 도커로 하면 이점이 있을까?
  • 에어컨 3대를 제어하기 위해서는 ir 발신기가 장착된 라즈베리파이 3대가 필요한데 블루투스 -> 적외선 신호로 변환해주는 모듈이 어딘가 존재하지는 않을까? ir발신기의 유효 거리가 길지 않고 각도가 좁은게 문제인데 이를 해결할 방법이 있으면 좋겠다. 원가절감을 어떻게 할 것인가.
  • 만능기판 레이아웃도 그려야하나?

Research & Study

회로도 작성 툴 선택

납땜 환경 구축

준비물

  • FX-888D(70W)
  • 칼팁 T18-K
  • 테프론 와이어 AWG30 (AWG숫자가 작을수록 굵고 저항이 작음)
  • KESTER Solder 1mm
  • Burnley 솔더링 페이스트
  • Hakko Solder Wick 1.9mm
  • PCB지지대 (긴거 수, 짧은거 암)
  • VETUS [SS-SA] 스테인레스 정밀 무광핀셋
  • 소켓 점퍼케이블 DC-40P 20CM (F/F)
  • 핀 헤더 한줄짜리 PH01(2.54)-SS40P-11.5MM -> 두줄짜리 자르기 힘듦
  • 만능기판 - 페놀보다는 좀 더 좋은 에폭시 재질을 구매

회로

  • 부품 주문 시 패키지 타입을 잘 체크하자. 예를들어 빵판에 회로 구현하는데 칩 저항 사면 못 붙인다. 고정저항(LEAD)을 주문해야함.
  • 모든 부품은 인터넷에 찾아보면 데이터시트가 있으니 데이터시트 보는데 익숙해지자.

저항 구매 팁

  • 탄소피막저항 lead 타입 1/4W 5% 짜리로 구입. 1/2W로 사면 크기가 좀 크다.

IR emitter 선택

라즈베리파이 운영체제 선택

  • Android things, Ubuntu Mate, Raspbian 등이 있는 것 같음
  • GUI쪽에 특별히 신경쓸게 아니라면 뭘 쓰던 상관 없는 것 같고 공식으로 지원하는 Raspbian이 아무래도 호환성이 좋을 듯 하고 레퍼런스 찾기도 쉬울 것 같아 좋지 않을까 생각함
  • Raspbian도 데비안 기반이라 apt-get 명령도 쓸 수 있는등 우분투에 익숙하다면 쉽게 쓸 수 있을 것 같다

부품구매 사이트 추천

국내

해외

레퍼런스

IR 제어

납땜 준비

SD카드 구매

Alexa

Memo

  • https://pinout.xyz/ -> P01 == GPIO01 == BCM 01
  • 같은 네트웍에 여러 라즈베리파이 띄우면 호스트네임 충돌로 네트워크가 잘 안잡히는 것 같다 sudo vi /etc/hostname sudo vi /etc/hosts raspberrypi 부분을 다른 hostname으로 바꾸자 /etc/init.d/hostname.sh sudo reboot

sudo mode2 -m -d /dev/lirc0 https://codebender.cc/library/Souliss#extras%2FSamsungMH026FB.cpp https://stackoverflow.com/questions/11863920/samsung-ir-codes-checksum?rq=1 라즈베리파이 안에서 docker image 받자마자 전원 뽑으면 disk에 이미지가 완전히 flush되지 못하는 경우가 생겨서 이미지가 깨져 실행이 안되는 경우가 있으니 주의.

hardware-lab's People

Contributors

seojueun avatar matibek avatar seojunghong avatar urunimi avatar

Watchers

Youngju Jaden Kim avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.