당신은 주제를 찾고 있습니까 “iot 졸업 작품 – 졸업작품_IoT식물재배_Andorid“? 다음 카테고리의 웹사이트 https://you.tfvp.org 에서 귀하의 모든 질문에 답변해 드립니다: https://you.tfvp.org/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 Ilyoung Hwang 이(가) 작성한 기사에는 조회수 144회 및 좋아요 없음 개의 좋아요가 있습니다.
iot 졸업 작품 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 졸업작품_IoT식물재배_Andorid – iot 졸업 작품 주제에 대한 세부정보를 참조하세요
iot 졸업 작품 주제에 대한 자세한 내용은 여기를 참조하세요.
[종합설계(졸업작품) 프로젝트] – Smart Living(홈 IoT)
이번 포스팅은 학교에서 이루어진 종합설계(졸업작품) 프로젝트에 대한 소개입니다. (※ 이번 포스팅은 프로젝트인 경우로 전체적인 세부과정에 …
Source: m.blog.naver.com
Date Published: 8/16/2022
View: 9543
졸업작품전시회 – 정보통신공학과 – 한밭대학교
졸업작품전시회 ; [2021-111] 파일 무결성 검증을 위한 elliptic curve방식의 · 321 …
Source: www.hanbat.ac.kr
Date Published: 6/20/2021
View: 6456
대학교 졸업작품으로 이 정도면 괜찮을까요..? – OKKY
졸업 작품으로 IOT(스마트 홈)을 혼자서 만들어 봤는데 선배님들의 고견을 여쭈어보고자 글 쓰. 게 되었습니다. 구현 목적은 음성인식을 이용한 home …
Source: okky.kr
Date Published: 4/14/2021
View: 895
졸업작품, IoT 재배 환경 시스템 구현 – DEBTOLEE
졸업작품, IoT 재배 환경 시스템 구현 · 참여 : 100% · 기능. 센싱 : 미세먼지,온습도,수분 값을 측정하여 서버 DB에 저장; 제어 : 쿨링펜, 서보모터, 워터 …
Source: debtolee.pe.kr
Date Published: 7/11/2022
View: 9084
컴공 졸업작품 스마트 홈케어 iot 로 – 프로그래밍 갤러리
컴공 졸업작품 스마트 홈케어 iot 로. ㅇㅇ(118.235); 2021.11.16 14:42. 조회수 847; 추천 0; 댓글 27. 어느정도 구현해야 교수의 합격 목걸이를 받을수있을까?
Source: m.dcinside.com
Date Published: 1/13/2022
View: 2009
주제와 관련된 이미지 iot 졸업 작품
주제와 관련된 더 많은 사진을 참조하십시오 졸업작품_IoT식물재배_Andorid. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.
주제에 대한 기사 평가 iot 졸업 작품
- Author: Ilyoung Hwang
- Views: 조회수 144회
- Likes: 좋아요 없음
- Date Published: 2018. 12. 27.
- Video Url link: https://www.youtube.com/watch?v=Ht4OhtqtPlQ
[종합설계(졸업작품) 프로젝트] – Smart Living(홈 IoT)
안녕하세요!!
이번 포스팅은 학교에서 이루어진 종합설계(졸업작품) 프로젝트에 대한 소개입니다.
(※ 이번 포스팅은 프로젝트인 경우로 전체적인 세부과정에 대해서는 설명을 생략하고, 중요한 부분 위주로 설명을 할 것이고, 소스코드에 대한 설명도 필요한 부분만 간단히 언급할 것입니다. 또한 자료들에 대한 것은 발표자료를 참조하였습니다. 전체적인 소스코드는 깃허브를 참조하시면 됩니다. 또한 전체적인 센서 관련 테스트 영상은 아래 동영상 파일을 참조하세요)
순서로는 프로젝트 개요 / 목표 -> 프로젝트 기술요점 -> 프로젝트 내용(시스템 설계) -> 시스템 구현 부분 -> 보완사항, 참고문헌 입니다. 해당 프로젝트는 완벽한 홈 IoT가 아닌 프로토타입 수준의 작품입니다.
———————————————————————
1. 프로젝트 개요 / 목표
프로젝트 개요와 목표는 아래와 같습니다.
최근에 홈 IoT 추세가 증가하고, 사용자들에 디바이스는 점점 소형화 되고 스마트폰이 주 제어 디바이스로 자리잡고 있습니다. 그리고 기존에 스마트 홈의 서비스로는 사용자가 아이디와 비밀번호를 입력하고 인증을 하는 과정이지만 이번 프로젝트에서는 단순 인증이 아닌 NFC를 이용해서 보다 안전성, 보안성이 높은 방식을 적용하였습니다. 이번 프로젝트에 목표는 사물이나 환경을 지속적으로 모니터링하고, 원격제어하고, 실생활에 유용한 데이터를 제공해줌으로서 생산성 있는 가치를 창출할 것을 목표로 합니다.
2. 프로젝트 기술 요점
프로젝트의 기술 요점으로는 아래와 같습니다.
프로젝트의 전체적인 기술핵심은 IoT(사물인터넷)입니다. 기본적으로 IoT가 갖추어야 할 기술적 요소는 아래와 같습니다.
(1) : Sensing
(2) : 유무선 통신 및 네트워크 인프라 기술
(3) : IoT 서비스 인터페이스 기술
이와 같은 요소들을 적용 하였고, 아래와 같은 기술들 또한 적용하였습니다.
(1) : 사물 신원 확인
(2) : 네트워크 구축
(3) : 감각 부여
(4) : 컨트롤 가능성
3. 프로젝트 내용(시스템 설계)
프로젝트 내용으로는 아래와 같습니다.
핵심적인 기술과 서비스를 정리하면 크게 3부분으로 나누어집니다.
(1) : 모바일 부분(사용자 디바이스)
– 사용자 컨트롤 디바이스
– 푸시 서비스(구글 메일 서비스 연동, 센서 상태에 따른 Notification기능 제공)
– 공공데이터 서비스
– NFC센서 지원
– 데이터 통신(서버, TCP소켓)
– 웹 뷰 컨트롤(웹 서버, HTTP방식)
– 사용자에게 TTS를 이용한 음성지원 서비스를 제공
– 음성인식 서비스 제공
– 공공데이터 : 현재 센서가 센싱하지 못하는 좀 더 광범위한 정보들(식중독지수, 동상지수 등)을 제공
(2) : 웹 서버
– 데이터 통신(서버)
– 통계정보 제공(그래프) – 통계정보(센서 사용량)를 통해 사용자는 에너지 효율을 고려할 수 있다.
– AWS기반
– 안드로이드 웹 뷰랑 연동
(3) : 센서 부분
– 온도 센서 : 실내 온도 수치 제공
– 습도 센서 : 실내 습도 수치 제공
– 모터 : 현관문 동력 제어
– 물 센서 : 강우 확인 서비스
– 먼지 센서 : 실내 미세먼지 농도 수치 제공
– 조도 센서 : 실내 광량수치 제공
– 가스 센서 : 실내 가스수치 제공
– 화재 감지 센서 : 실내 화재 감지 제공
– 움직임 감지 센서 : 현관문 방법 서비스
– 카메라 센서 : CCTV기능의 방범 서비스
안드로이드와 라즈베리파이간의 서버접속방법은 TCP소켓통신을 이용하게 된다. 그리고 라즈베리파이와 하위 아두이노들간에는 Master/Slaves구조를 적용한 I2C방식을 따른다.
4. 시스템 구현 부분
(1) : 시스템 인증 / 보안 구조도
사용자가 스마트 홈 서비스를 이용하기 위해서 서버에 접속을 하게 된다. 라즈베리파이에서 현재 스마트 홈 서버가 돌고 있고 안드로이드에서 접속을 하게 된다. 기존에 스마트 홈 로그인 서비스와 차이점은 아래와 같다.
– 기존에 인증방식을 벗어나 사용자가 항상 카드형식으로 가지고 다닐 수 있는 태그를 이용한 NFC방식을 적용
– 기존 인증방식에서는 해커가 웹 서버를 해킹을 하게되면 아이디와 비밀번호가 노출되어 위험할 수 있는 취약점을 가지고 있다. 하지만 NFC인증방식을 적용하면 실제 사용자 고유의 비밀번호가 저장되어 있는 태그를 확보하지 않는 이상 해킹이 어렵게 되므로 보안상 더 안전한 효과를 가질 수 있다.
– 사용자가 인증을 하게 되면 인증된 시간과 날짜를 사용자가 등록한 구글메일로 전송을 해주어서 사용자가 언제 접속을 하였는지 확인가능하다. 네트워크에서의 로그데이터를 남기게 되므로 후에 추적이 가능하다.
해당 부분에 안드로이드 코드이다.
NFC를 사용하기 위해서 NfcAdapter클래스를 이용한다. 그리고 NFC액션을 수행하기 위해서 PendingIntent를 정의한다. 그리고 해당 서비스를 위해 IntentFilter를 정의한다.
NfcAdapter를 초기화 한다.
실질적인 NFC에 대한 기능은 안드로이드의 onResume()상태에서 수행하게 된다. 즉 액티비티가 초기화가 완료되고(onCreate())난 후 대기상태에서 수행하게 된다. 안드로이드의 LifeCycle을 참조하면 된다. NFC는 NDEF통신 형식을 따르게 된다. 태그에 가져다 대면 태그를 인식하는 액션인 ACTION_NDEF_DISCOVERED가 동작하여 태그의 정보를 가져오게 되고 태그 데이터는 Body에 전송되게 된다. (payload)
인증에 대한 과정은 Body의 데이터를 이용하여 판단하게 된다. 기본적으로 사용자가 입력한 id와 비밀번호값을 가져오고, 전달 된 Body의 값을 가져와서 equals()를 통해 비교를 하게 된다. 최종적으로 id와 태그의 비밀번호랑 일치하게 되면 Intent를 통해서 다음 화면으로 이동하게 된다. 인증을 하게 되면 아래와 같이 구글메일로 해당 접속기록이 전송되게 된다. 자바에서 구글메일 연동에 대한 것은 추후 안드로이드 카테고리에 포스팅을 참조하면 된다.
해당 부분에 자바서버 관련 코드이다.
라즈베리파이와의 통신방법은 TCP이므로 소켓통신을 하게 된다. 따라서 ServerSocket을 이용하여 통신을 하기 위한 소켓을 개방한다. accept()로 클라이언트의 응답을 기다리게 된다. 클라이언트가 데이터를 전송하게 되면 BufferedReader를 이용하여 InputStreamReader의 기능을 버퍼를 이용하여 향상시키고 getInputStream()을 이용하여 데이터를 받아오게 된다. PrintWrite는 서버에서 다시 데이터를 전송하기 위해서 필요한 객체이다. readLine()을 이용하여 최종적으로 클라이언트의 데이터를 받아온다.
if()를 통해 클라이언트로부터 접속을 성공했는지의 여부를 판단하기 위해서 connect를 보내는데 서버에서 해당 데이터를 받으면 다시 클라이언트에게 에코메시지로 success를 전송하여 클라이언트가 서버와의 접속 성공 여부를 알 수 있게 된다. 그리고 연결되어 있는 LCD를 통해 정보를 보여주기 위해서 clear()를 우선 수행하고, write()를 이용하여 LCD에 데이터를 출력해준다.
(2) : UART / Master / Slaves I2C 구조 (라즈베리파이 <-> 아두이노(master) / 아두이노(master) <-> 아두이노(slaves))
아래와 같은 회로도 구조로 라즈베리파이와 아두이노간의 데이터를 송/수신하게 된다.
라즈베리파이에서 자체적으로 제어하는 센서로는 LCD와 라즈베리파이 카메라 모듈이 있다. 이들에 대한 소스코드는 본 블로그에 라즈베리파이 카테고리를 참조하면 된다. 기본적으로 마스터는 Arduino Mega 2560 ADK가 역할을 수행한다. 이유는 Uno에 비해서 메모리나 성능상으로 더 뛰어나서 여러개의 아두이노를 제어할려면 메가를 사용하게 된다.
– 라즈베리파이와 웹 서버와의 통신관련 소스코드
웹 서버로 전송하는 데이터는 해당 센서들에 정보를 넘기게 된다. 웹 서버는 해당 데이터를 받아서 센서의 사용량등을 측정하게 된다. 기본적으로 통신방식은 HTTP방식을 따르고 통신포맷은 JSON을 따른다. 안드로이드에서 호출된 정보를 가지고 센서 번호를 파싱하여(subString())해당 센서에 대해서 json 포맷을 결정하고 URLConnection을 이용하여 연결을 설정하게 된다. 프로토콜 방식은 GET방식을 따른다. (URL에 파라미터 노출되는 위험이 존재)
– 라즈베리파이와 아두이노간의 통신
라즈베리파이에서 기본적으로 하드웨어를 제어하기 위한 pi4j라이브러리가 존재한다. 해당 라이브러리를 사용하여 Serial객체를 사용하여 아두이노와 UART통신을 하게 된다. 아래는 해당 관련 코드이다.
Serial객체의 open()메소드를 이용하여 UART통신할 포트번호를 설정한다. writeln()을 이용하여 마스터 아두이노에게 데이터를 전송하게 된다. 이 후 for()문을 수행하여 char타입의 수신데이터를 받는다. 받는 도중 “.”, ”
“이 존재 시 수신을 종료하고 해당 데이터 값을 안드로이드로 PrintWriter를 이용하여 전송하게 된다. 데이터는 사용자가 요청한 센서의 센싱된 데이터가 된다.
아래의 코드는 마스터 아두이노에서 받는 경우의 코드이다
setup()에서 해당 아두이노의 초기화 작업이 이루어지는데 UART에 대한 초기화는 Serial.begin()을 이용하게 된다. Wire.begin()은 슬레이브 아두이노와 I2C통신을 하기 위한 초기화이다. 일반적으로 마스터는 begin()에 아무런 값을 넣어주지 않는다.
먼저 서버로 부터 데이터를 전송받는다. available()을 이용해서 데이터가 수신되기를 기다리고 read()를 이용해서 데이터를 전송받는다.
write()를 이용해서 센싱된 데이터를 다시 서버로 전송하게 된다.
– 마스터 아두이노와 슬레이브 아두이노간의 통신
기본적으로 I2C방식을 따른다. I2C방식은 여러개의 슬레이브 아두이노가 하나의 마스터 아두이노에 제어되는 Mater/Slaves구조를 가지고 통신하는 구조이다. 1:N통신을 가지게 된다. 기본적으로 I2C를 하기 위해서 Wire헤더파일이 필요하다.
마스터 부분의 관련 코드는 아래와 같다.
슬레이브로 전송하기 위해서 우선적으로 beginTransmission()을 이용하여 통신할 슬레이브의 설정을 하게 된다. 이후 write()를 이용해서 해당 슬레이브로 데이터를 전송한다. 통신이 완료된 후 endTransmission()을 이용하여 종료한다. 그리고 i2c_communication()이라는 콜백 함수를 이용하여 슬레이브로 부터 응답 데이터를 전송받게 된다. 아래는 i2c_communication의 코드이다.
UART와 동일하게 Wire에 available()을 이용하여 슬레이브로부터의 수신을 기다리고 데이터가 수신되었을 시 read()로 데이터를 읽고, 서버에게 전송할 배열을 만든다.
아래의 코드는 슬레이브 아두이노에서 처리하는 코드이다.
setup()에서 기본적으로 설정을 해준다. 슬레이브는 begin()에 해당 슬레이브의 address값을 넣어준다. 이 부분이 마스터하고의 큰 차이점이다. onReceive와 onRequest의 콜백메소드를 정의한다. 콜백 메소드의 이름은 sendToMaster가 된다. 기본적으로 마스터가 요청을 하면 onRequest()콜백이 동작하여 다시 마스터로 데이터를 전송하게 된다. 아래는 콜백메소드 관련 코드이다.
콜백 메소드에서는 간단하게 write()를 이용하여 마스터로 데이터를 전송한다.
(3) : 공공데이터
공공데이터는 기본적으로 공공데이터 홈페이지에서 제공해주는 데이터를 이용한다. 따라서 기본적인 데이터의 구조는 공공데이터의 데이터 포맷을 참조하면 된다. 본 프로젝트에서는 데이터 형식이 xml로 제공되어지기에 xml파싱을 수행한다. 기본적으로 해당 공공데이터를 이용할려면 지역주소값이 필요하다. 데이터베이스를 이용하여 주소정보를 저장하고 있어야 한다. 안드로이드 내부 데이터베이스를 사용하기에는 데이터양이 크기에 비효율적이다. 따라서 라즈베리파이의 서버에 mysql을 이용하여 안드로이드에서 외부DB에 접근하는 방식으로 작업을 수행한다. 즉 안드로이드에서 쿼리문을 이용하여 서버에 전달하여 서버에서 쿼리문을 수행하여 데이터를 얻어오고 얻어온 데이터를 다시 안드로이드에 전달하는 방법이다.
아래의 코드는 안드로이드에서 서버로 SQL을 호출하는 부분이다.
안드로이드에서 네트워크 작업은 ICS버전 이후 메인 스레드에서 하면 안된다. 기본적으로 메인 스레드에서는 UI작업을 하여야 하고 네트워크 작업은 작업 스레드를 따로 두어서 관리를 해야 한다. 이 작업을 쉽게 해결해주는 방법은 AsyncTask<>를 이용하는 것이다. 이 클래스의 콜백 메소드 중 실질적인 작업을 수행하는 콜백 메소드는 doInBackground()가 된다. 해당 메소드에서 소켓객체를 할당하여 연결을 하고, InputStream으로 서버의 정보를 전달한다. 아래의 코드는 서버가 데이터를 받아서 처리하는 작업의 코드이다.
우선적으로 안드로이드로부터 데이터를 받아서 쿼리문을 확보하기 위해서 splite로 작업을 해준다. 헤더에 서비스 번호를 분리한 쿼리문을 가지고 Search()작업을 수행하게 된다.
검색작업은 기본적인 JDBC를 따른다. Connection -> Statement할당 -> ResultSet으로 컬럼확보등의 과정은 일반적인 과정이므로 생략한다. 이후의 코드는 Service Key의 노출등을 피하기 위해서 생략하겠다. 데이터를 받아와서 xml형식에 맞게 파싱해서 매개변수로 넘어온 PrintWriter를 이용해서 다시 안드로이드로 전송하면 된다.
(4) : 시스템 특징 정의
아래의 구조는 시스템의 구조이다.
(5) : 하드웨어 회로도
아래의 구조는 하드웨어의 회로도이다.
모터의 경우 전력유지를 위해서 외부전력을 사용한다. (9V)
(6) : 외관 (모형 집 부분)
(7) : 어플리케이션 구성
개발된 어플리케이션의 구성도이다.
4. 보완사항, 참고문헌
(1) : 참고문헌
본 프로젝트 간 참조문헌과 사이트는 아래와 같다.
(2) : 보완사항
프로젝트 간 미비한 점은 아래와 같다. 다음과 같은 사항들은 보완하게 되면 보다 완벽하고 안정적인 홈 IoT를 구축할 수 있다.
– 네트워크 데이터 송수신간 암호 알고리즘을 적용한 보안적인 부분 향상 (시큐어 코딩 필요)
– 모터를 추가적으로 더 연결하여 액추에이터 부분 강화하기
– 통신방법을 I2C는 기본적으로 느린통신이기에 좀 더 향상된 방법인 ZigBee, ZiWave를 사용하여 무선통신으로 구축. (좀 더 안정적인 통신을 보장)
– 센서정보에 따른 안드로이드에서의 사용자에게 제공하는 서비스를 다양화
지금까지 졸업작품에 대한 전반적인 설명이였습니다. 이 밖에 코드나 추가적인 부분은 깃허브를 참조하시면 됩니다.
https://github.com/seochangwook/School_Final_Project-IoT
키워드에 대한 정보 iot 졸업 작품
다음은 Bing에서 iot 졸업 작품 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.
이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!
사람들이 주제에 대해 자주 검색하는 키워드 졸업작품_IoT식물재배_Andorid
- 동영상
- 공유
- 카메라폰
- 동영상폰
- 무료
- 올리기
졸업작품_IoT식물재배_Andorid
YouTube에서 iot 졸업 작품 주제의 다른 동영상 보기
주제에 대한 기사를 시청해 주셔서 감사합니다 졸업작품_IoT식물재배_Andorid | iot 졸업 작품, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.