Team name: RainyDay
author: 윤규민
email: gmyun1999@ajou.ac.kr
- service dir로 비지니스 로직과 인프라로직을 분리하였습니다.
- 도메인 로직과 비지니스 로직을 굳이 구분하진 않았습니다.
- config.txt에는 button gpio 핀번호와 pr이 있습니다.
main_device/
├── include/ # 헤더 파일 디렉터리
│ ├── config.h
│ ├── gpio.h
│ ├── LCD1602.h
│ ├── socket.h
│ ├── button.h
│ └── services/
│ ├── button_service.h
│ ├── communication_service.h
│ ├── lcd1602_service.h
│ ├── plant.h
│ └── step.h
├── src/ # 소스 파일 디렉터리
│ ├── config.c
│ ├── gpio.c
│ ├── LCD1602.c
│ ├── socket.c
│ ├── button.c
│ └── services/
│ ├── button_service.c
│ ├── communication_service.c
│ ├── lcd1602_service.c
│ ├── plant.c
│ └── step.c
├── config.txt # 버튼 스레드 pr 및 gpio 핀번호
├── Makefile
├── README.md
└── main.c빌드하고 실행하려면 다음과 같은 라이브러리가 필요합니다
gcc(GNU Compiler Collection)makepthread(POSIX 스레드)i2c라이브러리cjson라이브러리
다음 명령어를 사용하여 필요한 라이브러리를 설치할 수 있습니다
sudo apt update
sudo apt install build-essential make libi2c-dev libcjson-dev-
실행
sudo ./[프로젝트 dir]
-
컴파일
make
-
컴파일된 오브젝트 파일과 실행 파일을 제거
make clean
author: 정원준
email: dietken1@ajou.ac.kr
Main Device에 작동 여부를 요청하고, 응답 값을 바탕으로 워터펌프를 작동시키는 코드
gcc -o waterpump waterpump.c -lwiringPi -ljson-c./waterpump IP주소 PORT번호수위센서를 작동시켜 센서값을 디지털 값으로 변환한 후, Main Device에 전송하는 코드
gcc -o waterlevel watelevel.c -ljson-c./waterlevel IP주소 PORT번호author: 김준성
email: wnstjd123@ajou.ac.kr
Device2 controls 1 sensor and 1 actuator
Sensor: temperature and humidity sensor (dht11)
Actuator: speaker (piezo buzzer)
The order of pin: vcc(+) - i/o - ground(-)
The written code uses GPIO 4
The order of pin: vcc(+) - i/o - ground(-)
The written code uses GPIO 18
Notice: need sudo permission for executing code
cd exe
gcc -c ../src/speaker.c
gcc -c ../src/temperature_and_humidity.c
gcc -I/usr/local/include/cjson ../src/device2.c -L/usr/local/lib/arm-linux-gnueabihf -lcjson -c
export LD_LIBRARY_PATH=/usr/local/lib/arm-linux-gnueabihf:$LD_LIBRARY_PATH
gcc -o device2 -I/usr/local/include/cjson device2.o speaker.o temperature_and_humidity.o -L/usr/local/lib/arm-linux-gnueabihf -lcjson -l wiringPi
sudo LD_LIBRARY_PATH=/usr/local/lib/arm-linux-gnueabihf:$LD_LIBRARY_PATH ./device2 IP PORTauthor: 조민재
email: ussr1285@ajou.ac.kr
device3 디렉토리로 이동 후 아래 명령어들을 수행합니다.
send_second는 서버에게 요청을 보낼 주기(초 단위)입니다. polling_rate는 조도센서가 값을 읽는 주기, LED가 main으로부터 명령받은 빛 양을 체크하는 주기입니다.
make
./main <서버IP> <서버port> <send_second> <polling_rate>