티스토리 뷰
앞에 이어서......
https://deonggideok.tistory.com/83
앞에서는 아두이노(클라이언트)에서 라즈베리 파이(서버)로 데이터를 보내는 코드를 만들어 봤다.
이제는 라즈베리 파이에서 아두이노에서 보낸 데이터를 받을 수 있도록 코드를 작성해보자.
아두이노에서 받은 데이터를
데이터를 받은 시간과 함께 데이터를 csv에 기록해 볼 것이다.
라즈베리 파이에서는 소켓을 만든다.
소켓에서 아두이노에서 보낸 데이터(clinet.print로 보낸 내용)을 수신한다.
전체 코드는 아래와 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
import socket
import csv
import time
def save_data(data):
# 입력 받은 데이터 가공
data = str(data).split("b")[1].strip("'") # 데이터 가공
result = [time.strftime("%H:%M:%S")]
result.extend(data.split(" "))
# print(result)
# 파일에 데이터
f = open('데이터를 수신받을 파일', 'a', newline='', encoding='utf-8')
wr = csv.writer(f, lineterminator='\n')
wr.writerow(result)
f.close()
def main():
port = 15000 # 포트
# 소켓 객체 설정
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 프로그램을 곧바로 재실행해도 가능하도록
# 소켓을 네트워크 인터페이스와 포트 번호에 연결
sock.bind(("0.0.0.0", port))
# 서버가 클라이언트의 접속을 허용하도록 함
sock.listen(1)
# 접속 승인시 새로운 소켓 리턴
conn, addr = sock.accept()
# print(addr) # 연결된 클라이언트의 주소
while True:
data = conn.recv(1024) # 데이터 수신
# 데이터 없으면 종료
if not data:
break
save_data(data)
# 소켓 종료
conn.close()
sock.close()
if __name__ == "__main__":
main()
|
cs |
이렇게 하면, 파일에 수신 받은 데이터가 찍힌다.
'라즈베리 파이 > 서버' 카테고리의 다른 글
아두이노D1 보드와 라즈베리파이 사용 [1] - 아두이노에서 데이터 전송 (0) | 2020.07.09 |
---|---|
[라즈베리파이로 온습도 센서 사용하기] (2) 아두이노와 라즈베리파이 시리얼 통신 (0) | 2020.06.07 |
[라즈베리파이로 온습도 센서 사용하기] (1) 온습도 센서 + 아두이노 연결 (0) | 2020.06.06 |
[워드 프레스] 사용자 추가하기 (0) | 2020.05.31 |
FTP 530 에러, 553 에러 해결 방법 (0) | 2020.05.29 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 메일서버
- 자바
- 라즈베리파이
- 아두이노
- 키 순서
- 스티커모으기2
- 11503
- mysql
- 구슬 탈출2
- 2981
- dht11
- ESP8266
- BFS
- hc-06
- 집배원 한상덕
- 합승 택시 요금
- dovecot
- 리눅스
- DP
- the pads
- git
- 라즈비안
- hackerrank
- 백준
- 워드프레스
- c++
- FTP
- 프로그래머스
- 블루투스
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함