🌡️ ESP32 센서 API 명세서

AWS EC2 실시간 데이터 + 학교 서버 연습 API

server.js / Node.js / Express
http://15.164.120.40:3000
실시간 데이터 확인

📊 아키텍처 흐름

ESP32 센서
온도/습도 데이터(더미 값)
↔ 10분 주기 업데이트
AHT20+BMP280(적용 예정~📌)
→ POST
AWS EC2 + SQL 자체 관리형 SQL ❌
↔ 우분투 직접 설치(연습)
✨ Static IP 발급
→ POST ←
server.js(REST API 서버) /api/sensors
↔ AWS SQL 중계 역활
← GET →
학교 서버
연습 데이터 수신
PHP-sql 연동 불가능 하므로
중계 서버로 해결
PHP 정보 확인

🔌 주요 엔드포인트

메서드 경로 설명 요청 본문(headers: application/json) 응답 예시
GET /api/sensors 센서 데이터 목록 조회 - [{id:1, sensor_id:"ESP32-01", temperature:25.5, humidity:60, timestamp:"2025-12-15 "}]
POST /api/sensors 센서 데이터 저장 {sensor_id:"ESP32-01", temperature:25.5, humidity:60, "timestamp":"2025-12-15 23:11:27"} {success:true, id:1}

📋 실제 링크 데이터

원시 데이터 새창 열기 http://15.164.120.40:3000/api/sensors.

준비됨
AWS 최근 10개 데이터 불러오는 중...
학교 서버는 정상 작동 중입니다. 새 탭에서 확인하세요.
원본 HTML 내용을 불러오는 중...

📝 게시판 API (연습용) 실제 사용시 JWT 토큰 등으로 보안성 강화

메서드 경로 설명 요청 JSON 응답 요약
GET /api/board/posts 게시글 목록 조회 - 게시글 배열
POST /api/board/posts 새 게시글 등록 { "title":"제목", "content":"내용", "writer":"학번" } 생성된 게시글 객체
GET /api/board/posts/:id 특정 게시글 상세 - 게시글 한 개
POST /api/board/posts/:postId/comments 댓글 작성 { "content":"댓글", "writer":"학번" } 생성된 댓글 객체

💻 클라이언트 연동 예시

// 실제 학교 서버 코드 (sensor_id 사용) async function loadSensors() { const response = await fetch('http://15.164.120.40:3000/api/sensors'); const data = await response.json(); // row.sensor_id, row.temperature, row.humidity 사용 }