라벨이 Project인 게시물 표시

#5 수경재배 스마트팜 (1)

이미지
집에서 농사해서 직접 재배해 먹으면 좋을 것 같다는 생각에서 시작되었다. 전공도 컴퓨터이고 아두이노, 라즈베리파이를 이용하면 될 것 같다고 생각했기 때문에 수경재배에 대해 알아보았다. 집에서 현실적으로 가능한 수경재배기법은 무엇이 있을까 생각해보았는데 답은 이미 시중에 파는 제품들에 있었다. 점적관수형 수경재배기법이 쉽기도 하고 현실 가능해보였다. (출처: https://hydroponicsgrower.org/wp-content/uploads/2014/01/1-Hydroponic-Drip-System.jpg ) 윗쪽 물을 담고 있는 통을 어떻게 이용하느냐에 따라 다시 세분된다. 위와 같은 방법은 하나의 큰 통을 이용했지만 구하기가 어려워 PVC 파이프를 이용했다. 큰 틀은 위의 사진과 같다. PVC 파이프에 구멍을 뚫어 식물 재배 포트를 끼우고 그 안에 식물을 키우는 구조이다. 물이 노지 재배에서의 흙을 대체한다. 그러기 위해선 흙 속의 영양분을 물 안에 녹여야 한다. 물 속에 양액을 넣어 영양분을 채워준다. 이것이 수경재배의 핵심인 듯 하다. 이 글에서는 농사에 대한 기술적인 부분이나 방법론에 대해는 세세하게 기술하지 않겠다. 그러면 글이 너무 방대해져 오랜 기간 써야 하고 블로그는 컴퓨터와 책에 대한 주제이기 때문이다. 또 중요한 키 포인트는 집에서 스마트팜을 하기 때문에 햇빛이 필요 없게 하고 싶었다. 구글링 하던 중 일본식 스마트팜은 조명으로 햇빛을 대체한다고 한다. 그래서 알아보던 중 네이버 카페 "나만의 베란타 텃밭 이야기"에 가입하고 도움을 정말 많이 얻었다. 이 카페 회원분들이 아니였다면 이 프로젝트의 기간은 엄청 길어졌을 것이다. 요약하자면 위 점적관수형 수경재배기법의 핵심은 아래와 같다. - 두 개의 물을 담는 통이 있고 하나는 포트를 끼워 식물을 재배하고, 나머지 하나는 물을 갈아줄 때 필요하다. - 물은 흙의 역할 중 영양분 공급을 대체하기 위해 양액을 넣어야 한다. - 햇빛이 없는 장소에서의 식물 성장을 위해 조명...

#4 가게 매출 예측

회귀를 공부하고 분류 강의가 나올 때까지 기다리고 있는 상황에서 딥러닝 강의도 회귀까지 정리했고 할 것이 마땅치 않아 선형 회귀 실습을 해봐야겠다고 생각했다. 데이터를 찾다가 공공 데이터도 있겠지만 어머니 가게 매출 데이터를 뽑아서 해봐야겠다고 생각했다. 하지만 가게 포스 기계에서는 매출만 txt로 뽑을 수 있고 메뉴별 매출이나 시간대별 매출은 제공되지 않는 것 같았다. 그래서 내가 여러 변수를 만들기로 했다. 우선 매출은 데이터로 뽑아 왔고, 매출에 영향을 줄 수 있는 요인은 무엇이 있나 생각해보았다. 날씨도 영향을 줄 것 같고 학교 앞이라 방학 여부도 중요할 것 같았다. 그리고 중요하다고 생각한 것은 요일이었다. 그래서 날씨 데이터를 인터넷에서 뽑고 방학 여부는 1,2,7,8 월 달은 방학이라는 표시를 했다. 요일은 파이썬의 datetime 모듈을 사용했다. 매출 데이터는 2013년 부터 2016년까지 사용했다. 아래의 코드를 사용해 매출 데이터를 예측해봤다. ----------------------------------------------------------------------- import numpy as np import pandas as pd import matplotlib.pyplot as plt from datetime import datetime import time from sklearn import linear_model from sklearn import cross_validation def order_data():     f = open("샤브향_정산분석파일.txt")     sales = []     count = 0     for line in f.readlines():         if line[-1] == '\n':       ...

#3 라즈베리파이에서 opencv로 얼굴 인식

이미지
쓸 게 참 많다. 라즈베리파이에 opencv를 까는 데만 3일이 걸렸다.. 나중에 좋은 블로그를 찾아 겨우 할 수 있었지만 처음부터 쉽지 않았다. 라즈베리파이 상태는 아래의 사진과 같다. 거리 계산하는 센서를 두어 가까운 물체가 왔을 때만 작동하는 라즈베리파이를 구현했지만 다시 생각해보니 거리 계산 센서를 계속 켜놓는 것도 낭비인 것 같아 나중에는 그냥 그 센서를 떼고 카메라만 두었다. 다운로드는 내가 따라해본 블로그 중 가장 좋은 블로그를 링크 걸어 놓겠다. http://cyaninfinite.com/tutorials/installing-opencv-in-ubuntu-for-python-3/ 라즈베리파이와 ubuntu mate를 쓰는 사람에게 좋은 정보일 것이다. 하지만 라즈비안도 크게 차이는 없을 거라고 본다. 설치는 위의 블로그에서 도움을 받아 설치했고 이제 opencv에 대해 공부해야했다. 그래서 유뷰트의 sentdex 의 동영상을 보고 공부했다. https://www.youtube.com/watch?v=Z78zbnLlPUA&list=PLQVvvaa0QuDdttJXlLtAJxJetJcqmqlQq&index=1 영어라서 자세히는 공부하기 힘들었지만 코드를 하나하나 따라가면서 마지막까지 열심히 했던 것 같다. 마지막에는 자신만의 haar cascade 를 만드는 강의가 있는데 그 강의에서 아이디어를 착안해 내 얼굴만 인식하는 라즈베리파이를 만들어보고자 한다. 위의 haar cascade 는 명암의 패턴을 인식해서 결론적으로 인식하고자하는 얼굴을 감지하는 것이다. 지금도 cascade를 training 하고 있는데 지금까지 2일동안 지속되고 있다. 버츄얼 박스에서 하다보면 램이 1기가 밖에 안되서 많이 느리다. 보통 20 stage 까지 20~30 시간 걸린다는데 전기세가 걱정된다. Itseez 에서 제공하는 face_cascade.xml 은 파일을 열어보니 25 stage까지 trai...

#2 웹 크롤링을 이용한 텔레그램 봇 만들기

중간고사 끝나고 2주동안 이거 만드느라 아무것도 못했다. 자비스 같은 개인 비서를 만들고 싶었다. 그래서 실생활에서 내가 하고 있는 것들을 버튼 하나로 출력 값이 나오는 봇을 만들었다. 날씨 검색과 현재 핫 뉴스 검색이다. 소스 코드는 https://github.com/kbj2060/Data_Analysis 에 올려놨다. 소스 코드는 2가지로 이루어져있다. 첫번째는 기상청에서 zone_code 를 긁어서 데이터 베이스에 넣는 코드 두번째는 텔레그램 api를 이용해 봇을 만드는 코드이다. class 는 weather와 news와 마지막으로 telegram api를 이용해 데이터를 출력하는 bot이 있다. 1. 날씨 검색 흠..날씨 검색은 기상청 RSS를 이용해 정보를 긁어왔다. 참 복잡하다. 전국에 있는 zone_code를 긁어와야했다. 3000개의 zone_code를 손으로 하기엔 무리가 있었다. 그래서 웹 자동화인 selenium을 이용했다. selenium과 BeautifulSoup을 이용해 버튼 클릭하고 웹페이지 정보를 스크래핑하는 코드를 만들어야했다. 스크래핑 후 몽고 디비에 zone_code 와 zone_code에 맞는 지역 이름으로 딕셔너리를 만들어 몽고 디비에 insert했다. 그 후엔 이제 지역을 설정하면 zone_code를 불러와 URL + zone_code 로 그 지역의 날씨를 불러왔다. 2. 핫 뉴스 검색 이건 그냥 네이버 현재 핫 뉴스를 BeautifulSoup을 이용해 긁어 왔다. 또 할 게 없어 그냥 몽고 디비에 계속 넣고 있다.