#2 [Edge-Computing] EdgeX - 온습도 데이터 수집 및 전송
Tasks
EdgeX - 온습도 데이터 수집 및 전송#
1. Docker & Docker-compose 설치 - PEC에서 진행#
- cccr 교육자로 git을 다운받으신 후 docker-install.sh 파일을 실행합니다.
$ git clone -b 221021 http://112.217.198.156:9000/%EC%97%91%EC%84%B8%EC%8A%A4%EB%9E%A9/CCCR_Lecture
$ cd ~/CCCR_Lecture/221020
$ chmod +x docker-install.sh
$ sudo ./docker-install.sh
2. EdgeX 실행 - PEC에서 진행#
EdgeX : https://www.edgexfoundry.org/
- docker-compose.yml 파일이 있는 위치로 이동 한 후 EdgeX를 실행합니다
$ cd edgex/
$ docker-compose up -d
3. EdgeX에 디바이스 프로필, 엣지 디바이스 등록#
Postman : https://www.postman.com/
라즈베리파이에서 받을 센서데이터 중 습도 데이터 폼을 생성합니다.
라즈베리파이에서 받을 센서데이터 중 온도 데이터 폼을 생성합니다.
온,습도 데이터 폼이 정상적으로 등록되었는지 확인합니다.
Postman으로 파일 전송하기 위해 allow reading files 옵션을 활성화 합니다.
디바이스 프로필을 업로드 합니다.
엣지 디바이스를 등록합니다.
등록된 디바이스에 데이터를 전송하여 정상적으로 등록이 되었는지 확인합니다.
등록된 디바이스가 가지고 있는 데이터를 확인하여 데이터가 전송되었는지 확인합니다.
4. 라즈베리파이에서 센서 연결 - Raspberry Pi에서 진행#
- VCC > 17번 핀, GND > 25번 핀, DATA > 23번 핀에 꽃으시면 됩니다.
5. 라즈베리파이 - 온습도 센서 라이브러리 설치#
$ sudo apt-get install python3-pip git
$ git clone -b 221021 http://112.217.198.156:9000/%EC%97%91%EC%84%B8%EC%8A%A4%EB%9E%A9/CCCR_Lecture
$ git clone https://github.com/adafruit/Adafruit_Python_DHT
$ cd Adafruit_Python_DHT/
$ sudo python3 setup.py install
$ sudo vim /usr/local/lib/python3.9/dist-packages/Adafruit_DHT-1.4.0-py3.9-linux-aarch64.egg/Adafruit_DHT/platform_detect.py
> 다음의 내용 추가
elif match.group(1) == 'BCM2711':
# Pi 4B
return 3
6. 라즈베리파이4 에서 센서데이터 수신 후 EdgeX로 데이터 전송#
- /CCCR_Lecture/221020/edgex 디렉토리의 Temp_Hum_Sensor.py를 실행하여 센서데이터가 읽히는지 확인합니다.
$ cd ~/CCCR_Lecture/221020/edgex
$ vim Temp_Hum_Sensor.py
> "edgex-ip-address"에 Edgex 서버의 IP를 입력한 후 저장
$ sudo python3 Temp_Hum_Sensor.py
- Postman으로 라즈베리파이가 센서데이터를 EdgeX에 전송하는지 확인합니다.
7. EdgeX에서 MQTT를 통해 외부로 데이터 전송#
7.1 Docker-compose 파일을 수정하여 데이터 전송#
- EdgeX의 docker-compose.yaml 파일에서 다음의 값을 변경 한 후 다음의 명령어를 실행합니다.
<External-MQTT-Ip> : 센서 데이터를 보낼 외부 MQTT Broker의 IP
<External-MQTT-Port> : 센서 데이터를 보낼 외부 MQTT Broker의 Port
"<TopicName>" : 센서데이터가 보내질 Topic의 이름
$ docker-compose up -d
- mosquitto client를 설치 한 후 MQTT 토픽을 구독합니다.
$ sudo apt-get install mosquitto-clients
$ mosquitto_sub -h <External-MQTT-Ip> -p <External-MQTT-Port> -t <TopicName>
7.2 Postman을 통하여 외부로 데이터 전송#
데이터를 외부로 전송할 Stream을 생성합니다.
Steam의 rule을 설정합니다. 설정할 값은 server, topic, username, password, clientID 입니다.
mosquitto client로 MQTT 토픽을 구독합니다.
$ mosquitto_sub -h <External-MQTT-Ip> -p <External-MQTT-Port> -t <TopicName> -u <username> -P <password> -i <clientID> -t <TopicName>
Comment 0
Add a comment