오늘보다 더 나은 내일의 나에게_

비전공자의 IoT 국비 교육 수강일지 Day_40 본문

비전공자의 코딩일지

비전공자의 IoT 국비 교육 수강일지 Day_40

chan_96 2022. 2. 15. 18:02
728x90

서버 만들어 LED 제어

웹에서 LED 제어


콘솔 창  출력



=> 웹페이지에서 제어 후 아두이노 스케치 시리얼모니터 

Send.servlet 코드
=> stack과 heap 영역에 대한 원리 이해
package test;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Send")
public class Send extends HttpServlet {
	
	public static String led = "0";
	
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//LED의 값을 저장하는 서블릿
		led = request.getParameter("led");
		
		// index.html로 되돌려 보내주자
		response.sendRedirect("index.html");
	}
}​

 



Exam01 코드
package test;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Exam01")
public class Exam01 extends HttpServlet {
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		
		response.setCharacterEncoding("UTF-8");
	    response.setContentType("text/html; charset=UTF-8");
		
		PrintWriter out = response.getWriter();
		String led = Send.led;
		
		System.out.println("led : " + led);
		
		String result = "{\"led\":\"" + led + "\"}";
		
		out.print(result);
		
	}
}​

 


JSON parser

 

날씨 OPEN API

아두이노
http.begin(api.openweathermap.org/data/2.5/weather?q=Gwangju,kr&appid=발급받은 key값)
수정 후 시리얼 모니터 확인


=> 코드 수정 후 시리얼 모니터 출력


JSON 데이터 가져오기

=> 아두이노 라이브러리-ArduinoJson 추가


코드 작성

시리얼 모니터 출력

기온 습도 풍속 출력

시리얼 모니터 출력

 

 

블루투스 통신

=> 안드로이드만 가능

블루투스 예제코드 불러오기


예제코드


구글 플레이스토어에서 설치
=> 어플 설치 후 폰에서 블루투스 기능 페어링!
=> 시리얼 모니터에서
옵션 : line ending 없음에서 새 줄로 변경

=> APP에서 본인의 블루투스 클릭 -> Terminal mode

 

728x90
Comments