2021 동계 아두이노 세미나

IVIS wiki

개요

  • 주제 : 아두이노를 이용한 프로젝트(자동 불끄기) / 2학년(김은지, 이세은): C언어로 '백준 온라인 단계별 문제 풀기' 및 코드리뷰
  • 기간 : 2021년 1월 4일 부터 매주 화요일
  • 시간 : 18:00시
  • 목표 : 위키 페이지에 진도 기록, 프로젝트 완성, 결과보고서 작성

수강생 준비

  • 파트별 진행 준비
    • 김은지: 아두이노 회로: 서보모터, Cds 사용 이해
    • 권찬진: 라즈베리파이-아두이노 블루투스: 블루투스 HC-06이해, RPi 블루투스 통신 Python
    • 지유진: Flask 웹 서버: Python 웹 서버
    • 이세은: HTML 웹 페이지: 제어 및 센서 인터페이스
    • 이수균: 프로젝트 도움
    • 윤소정: 프로젝트 총괄

지유진

  • 1/19(화) 진행:
  • 1/26(화) 진행:
    • 공부한 자세한 내용은 https://goor.me/cLq1h 의 README.md 파일에 작성
    • 서버 실행되고 있을 때 모바일 환경에서 구동 가능 (주소 : http://buildtest.run.goorm.io/)
    • 총 공부한 기능
      • html 페이지에서 입력한 내용 database 에 저장하기 (sql 을 사용하지 않고 python 으로 database 기능 구현)
      • 저장된 내용을 database 에서 읽어, html 페이지에 나타내기
      • 사진을 업로드 하여 프로젝트 img 폴더에 저장
      • 저장된 img 를 html 페이지에 나타내기
      • 모바일 환경에서 페이지 나타내기
      • 로그인 기능 구현 (회원가입 절차 x)
    • 위키 사진 업로드 방법
  • 2/2(화) 진행:
    • 프로젝트를 진행 할 페이지에 필요한 내용
      • 1. 버튼을 클릭한 마지막 시간
      • 2. 현재 시간 (서버 시간, 여기서 서버는 라즈베리파이가 될 것)
      • 3. 현재 날씨를 나타내는 이미지
    • 현재 진행 상황 Flask.png
      • 현재 시간은 Client 시간이 아닌 서버 시간을 나타냄 -> 모두 동등한 시간을 보기 위해서
      • 위와 같은 이유로 마지막 버튼 클릭 시간도 서버 시간으로 나타내야하지만 아직 구현을 못했음 ^__^;
      • 날씨는 이미지로 나타내자는 의견에 웹 크롤링을 이용해 네이버 '창원시 의창구 사림동' 날씨에 나타나는 사진을 가져옴 (실시간 반영)
  • 2/9(화) 진행:
    • 페이지 기능 구현 완료
    • Flask3.png
    • 페이지를 새로 고침 하였을 때 Current Time 은 새로고침된 시간을 나타내고, Lask Click 은 마지막으로 버튼을 클릭한 시간을 나타냄
    • 중복되는 코드 정리 후 최종 코드 작성 완료

권찬진

  • 1/19(화) 진행
    • 라즈베리파이4
      • 초기화 : SD카드 포멧, 운영체제 설치
      • 업데이트


  • 1/26(화) 진행
    • 아두이노 보드구성
      • HC-06모듈 : 아두이노에서 시리얼 통신을 이용하여 데이터를 주고 받을 수 있는 모듈이며, 10미터 정도에서 무선으로 데이터를 보내거나 받을 수 있다.
      • HC-06 --- 아두이노
      • VCC --- 5V
      • GND --- GND
      • TXD --- D10번
      • RXD --- D11번
    • 아두이노에 코드 업로드
      • 코드
#include <SoftwareSerial.h> // 0,1번핀 제외하고 Serial 통신을 하기 위해 선언

SoftwareSerial mySerial(11, 10); // HC-06 TX=11번핀 , RX=10번핀 연결

void setup()
{
 Serial.begin(9600); // 통신 속도 9600bps로 PC와 시리얼 통신 시작
 mySerial.begin(9600); // 통신 속도 9600bps로 블루투스 시리얼 통신 시작
}

void loop()
{
 // mySerial 핀에 입력이 들어오면, 바이트단위로 읽어서 PC로 출력
 if (mySerial.available()){
   Serial.write(mySerial.read());
 }
  // Serial 핀에 입력이 들어오면, 바이트단위로 읽어서 블루투스로 출력
 if (Serial.available()){
   mySerial.write(Serial.read());
 }
}
    • 아두이노 - 라즈베리파이4 블루투스 연결
      • 사진 업로드 예정
  • 2/2(화) 진행
    • 아두이노 코드
      • 사진 업로드 예정
#include <SoftwareSerial.h>

int RX = 

김은지

이세은



  • 2/9(화) 진행:
    • 백준 진행 상황