[라즈베리파이] Node.js 를 이용해 간단한 서버 구축하기(4) – ESP32와 통신하기

 

 

 

이번에는 ESP32로부터 데이터를 받아 웹브라우저에 받은 데이터를 보여주는 코드를 구현해 보도록 하겠습니다.

ESP32가 JSON 형태로 데이터를 보내주면 서버에서는 이를 받아 파일로 저장하고 웹브라우저를 통해 사용자가 접속을 하면 저장된 데이터를 불러오는 코드입니다.

우선, HTTP 요청을 통해 들어오는 body를 파싱하기 위해 body-parser라는 모듈을 설치해야 합니다.

 

설치가 완료되면 다음 코드를 작성합니다.

[ index.js ]

 

서버에서는 POST 요청에 의해 들어오는 JSON 형태의 값을 data.txt 파일에 저장하고 웹브라우저에서 http://localhost:3000/ 로 접속을 하면 data.txt  파일을 읽어와 데이터를 보여줍니다.

저장하는 데이터는 최근에 들어온 데이터 10개만 저장하도록 합니다.

[ data.pug ]

데이터가 존재할 시 렌더링할 웹페이지를 구현한 pug 파일입니다. data 배열이 전달되면 이를 한 라인씩 화면에 출력합니다.

이로써 서버 쪽 준비는 완료되었습니다.

 

다음은 ESP32 에서 POST 요청을 하기 위한 코드를 짜 보도록 하겠습니다.

POST 요청 시 전송할 데이터를 JSON  형태로 만들기 위해 ArduinoJson 라이브러리가 필요합니다.

Arduino IDE 상단의 스케치 -> 라이브러리 포함하기 -> 라이브러리 관리에 들어가 ArduinoJson을 검색해 최신 Stable 버전인 5.13.2를 다운로드 받습니다.

그 후 아래와 같이 코드를 작성합니다.

[ HttpClient.ino ]

ESP32에서는 10초마다 한 번씩 0부터 255까지 숫자 중 하나를 랜덤하게 생성해 서버로 JSON  형태의 데이터를 전송합니다.

 

ESP32에 위의 코드를 업로드 하고 웹브라우저를 통해 결과를 확인하면 다음과 같이 출력됩니다.

 

 

 

참고자료

 

 

Post Author: yscwcb

1 thought on “[라즈베리파이] Node.js 를 이용해 간단한 서버 구축하기(4) – ESP32와 통신하기

댓글 남기기

이메일은 공개되지 않습니다.