산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

옥토포드: 홈/산업용 스마트 IoT 자동화 솔루션

부품 및 소모품

부품명수량비고
아두이노 우노1
아두이노 MKR WiFi 1010 (또는 ESP8266/ESP32 보드)1국내 미출시로 NodeMCU ESP8266으로 대체
Maxim MAX32630FTHR (또는 MAX32620FTHR, 아두이노 1010, ESP8266 보드)1외부 WiFi 모듈/ESP8266 칩 별도 필요
라즈베리파이 제로 W (라즈베리파이 2/3도 가능)1
DHT11 온습도 센서 (4핀)1
시드 그로브 가스 센서 MQ21
스파크펀 토양 수분 센서 (스크류 터미널)1
PIR 모션 센서 (일반)1선택 사항
RFID 리더 (일반)1
릴레이 (일반, 2채널 권장)1
RGB 디퓨즈드 공통 캐소드 LED1
라즈베리파이 카메라 모듈1
서보 (타워프로 MG996R)1
부저2
HC-05 블루투스 모듈1선택 사항
LED (일반)4
벽면 어댑터/파워뱅크2
메모리 카드 (4GB 이상, 클래스 10 권장)1라즈베리파이 OS용

필요한 도구 및 기계

앱 및 온라인 서비스

프로젝트 소개

많은 IoT 자동화 프로젝트가 있지만, 옥토포드만큼 종합적인 건 없습니다! 옥토포드는 NodeMCU(또는 MAX32620FTHR, 아두이노 MKR 1010), 아두이노 우노, 라즈베리파이 3로 구성됩니다. 집을 스마트하게 만들어줍니다.

주요 기능

전체 동작 원리

STEP 1: 메인 옥토포드 코딩 (NodeMCU)

거의 모든 줄에 주석을 달아 복사만 하는 게 아니라 이해하도록 했습니다. 핵심 흐름:

라이브러리 포함

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>
#define BLYNK_PRINT Serial

Blynk 인증 및 WiFi 설정

char auth[] = "Your Blynk Auth Key";
char ssid[] = "Your WiFi SSID";
char pass[] = "Your WiFi Password";

핀 정의 및 변수


#define DHTPIN 2
#define soilPin 4
#define gasPin A0
#define pirPin 12
int pirValue, soilValue;
int PIRpinValue, SOILpinValue;
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;

Blynk 앱에서 제어 핀 수신 (V0: 모션 감지 on/off, V1: 토양 수분 on/off)


BLYNK_WRITE(V0) { PIRpinValue = param.asInt(); }
BLYNK_WRITE(V1) { SOILpinValue = param.asInt(); }

센서 데이터 전송 함수 (1초마다 실행)


void sendSensor() {
  int h = dht.readHumidity();
  int t = dht.readTemperature();
  if (isnan(h) || isnan(t)) { Serial.println("DHT 읽기 실패"); return; }
  Blynk.virtualWrite(V5, h);  // 습도 → V5
  Blynk.virtualWrite(V6, t);  // 온도 → V6
}

모션/토양 수분 감지 및 알림


void getPirValue() {
  pirValue = digitalRead(pirPin);
  if (pirValue) { Serial.println("Motion detected"); Blynk.notify("Motion detected"); }
}
void getSoilValue() {
  soilValue = digitalRead(soilPin);
  if (soilValue == HIGH) { Serial.println("Water Plants"); Blynk.notify("Water Plants"); }
}

Setup & Loop


void setup() {
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  dht.begin();
  Blynk.tweet("OCTOPOD IS ONLINE!");
  pinMode(pirPin, INPUT);
  pinMode(soilPin, INPUT);
  timer.setInterval(1000L, sendSensor);
}

void loop() {
  Blynk.run(); timer.run();
  if (PIRpinValue == HIGH) getPirValue();
  if (SOILpinValue == HIGH) getSoilValue();
}

STEP 2: RFID 스마트 도어락 코딩 (아두이노 우노)

MFRC522 라이브러리 필요. 덤프인포 스케치로 카드 UID 확인 후 코드에 등록.

두 버전: 블루투스 시리얼 출력 버전 / 일반 시리얼 출력 버전. 블루투스 없는 버전 권장.

핵심 로직: 등록된 UID 일치 시 → 서보 180도 회전(문 열림), 녹색 LED + 부저 500Hz → 5초 후 서보 0도(문 닫힘). 불일치 시 → 빨간 LED + 부저 300Hz.

STEP 3: 라즈베리파이 사람 감지 AI 설정

스마트 보안 카메라 구축: 사람 감지 시 이메일 발송, 동일 WiFi 네트워크에서 IP:5000으로 실시간 스트리밍 접속 가능.

요구사항

전제 조건

상세 설치 과정

  1. 카메라 연결 및 활성화: 정전기 주의, 케이블 연결(HDMI 포트 쪽 은색 면 향함), sudo raspi-config로 카메라 활성화 후 리부트
  2. 파일시스템 확장: sudo raspi-config → Advanced Options → Expand Filesystem. 8GB 카드면 LibreOffice, Wolfram 엔진 제거로 ~1GB 확보
  3. 의존성 설치: 빌드 도구, 이미지/비디오 I/O 라이브러리, GTK, 최적화 라이브러리, Python 헤더 등 설치
  4. OpenCV 소스 다운로드: 3.3.0 버전 + opencv_contrib 동일 버전
  5. Python 가상환경 설정: pip, virtualenv, virtualenvwrapper 설치, mkvirtualenv cv -p python3로 cv 환경 생성
  6. NumPy 설치: pip install numpy
  7. OpenCV 컴파일 및 설치 (약 4시간 소요):
    
      cd ~/opencv-3.3.0/
      mkdir build && cd build
      cmake -D CMAKE_BUILD_TYPE=RELEASE \
        -D CMAKE_INSTALL_PREFIX=/usr/local \
        -D INSTALL_PYTHON_EXAMPLES=ON \
        -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \
        -D BUILD_EXAMPLES=ON ..
      
    스왑 사이즈 1024MB로 늘린 후 make -j4 (4코어 활용). 실패 시 make clean && make로 단일 코어 재시도. sudo make install && sudo ldconfig
  8. 가상환경에 심볼릭 링크: Python 3용 cv2.cpython-35m-arm-linux-gnueabihf.so → cv2.so로 rename 후 링크
  9. 테스트: python -c "import cv2; print(cv2.__version__)" → 3.3.0 출력 확인
  10. 스왑 사이즈 100MB로 복구 (SD 카드 수명 보호)

파이썬 프로그램 설정

  1. 카메라 테스트: raspistill -o image.jpg
  2. Google Drive에서 파이썬 파일 및 모델 다운로드
  3. 가상환경 활성화(source ~/.profile && workon cv) 후 pip install -r requirements.txt
  4. mail.py에서 Gmail SMTP 설정 (발신/수신 이메일, 앱 비밀번호)
  5. main.py에서 이메일 간격(기본 600초), 카메라 플립, 분류기 모델(fullbody/upperbody/facial) 설정
  6. 실행: python main.py
  7. 브라우저에서 https://<라즈베리파이 IP>:5000으로 실시간 스트림 확인
  8. 외부 네트워크에서 접속하려면 ngrok 사용: ./ngrok http 5000
  9. 자동 시작: /etc/rc.local에 등록
  10. Gmail '보안 수준 낮은 앱 허용' 설정 필요

STEP 4: Blynk 앱 인터페이스 설정

직관적이고 재미있는 단계입니다.

  1. Blynk 앱 설치(앱스토어/플레이스토어), 회원가입/로그인
  2. New Project → 디바이스: NodeMCU, 연결: WiFi → Auth Key 이메일로 수신, 코드에 입력
  3. 위젯 추가 (에너지 필요할 수 있음)
  4. 게이지 3개: 온도(V6, 0-50°C), 습도(V5), 가스(V?)
  5. zeRGBa: R→GP15, G→GP3, B→GP1 (RGB LED 제어)
  6. 버튼 4개: 모션 감지 on/off(V0), 토양 수분 on/off(V1), 릴레이 1, 릴레이 2
  7. SuperChart: 온도/습도/가스 데이터 스트림 추가
  8. 탭 추가: Twitter, Notifications(하드웨어 오프라인 알림), Email, Eventor(트리거 설정)
  9. Play 버튼으로 인터페이스 사용 시작

STEP 5: 옥토포드 구조물 만들기

경고: 가장 시간 많이 소요되는 과정! 3D 프린팅 가능한 인클로저 파일 제공하니 원하면 건너뛰세요.

종이박스로도 가능하지만, 독특한 디자인이 프로젝트 가치를 높입니다. 팔각형 입체 도형(3D 옥타곤) 디자인으로 수학 숙제하다 영감 얻음.

제작 과정

  1. 골판지에 9cm × 9.5cm 직사각형 4개(또는 8개) 연이어 그리기
  2. 사이 부분 칼집(접힘선) 내고 긴 조각으로 자르기, 4개 만들기
  3. 135° 각도 16개 잘라내기
  4. 글루건으로 각도 조각을 직사각형 사이 접합부에 붙이기
  5. 열린 구조 2개씩 붙여 닫힌 팔각형 2개 만들기
  6. 두 팔각형을 수직으로 붙여 3D 형태 완성
  7. 빈 공간에 9×9.5cm 조각 4개 추가
  8. 남은 8개 삼각형 구멍에 아크릴 버터페이퍼 삼각형 잘라 끼우기 (나중 수리용으로 1-2개는 열어둠)

도색

환기 잘 되는 곳에서 마스크/장갑 착용 후 스프레이 3회 도장 (4-5시간 간격). 유튜브 참고해 깔끔하게.

STEP 6: 도어락 인클로저 만들기

신발 박스에 스프레이 2-3회 도장, 덕트 테이프로 체크무늬 포인트.

STEP 7: 옥토포드 조립

회로도 참조해 연결:

전원 켜고 식탁이나 손님용 테이블에 올리면 끝! 라즈베리파이 IP로 브라우저에서 실시간 피드 확인.

STEP 8: 도어락 조립

아두이노에 코드 업로드 후 회로도대로 연결. 신발 박스에 LED 구멍 2개, 서보 노출 구멍 뚫기. 서보 대신 기계식 잠금장치도 시중 판매 중이나 서보로도 충분. RFID 리더, 브레드보드, 아두이노 박스에 고정. 파워뱅크/어댑터로 전원 공급.

결론

정말 재미있는 프로젝트였습니다! 조명 효과가 예쁘게 나와 사이드 램프로도 손색없습니다. Blynk와 OpenCV 라이브러리 제작자들께 감사드립니다. 질문 있으면 댓글로 남겨주세요. 투표 부탁드립니다!

- Saksham

업데이트

아마존 알렉사 연동 작업 중, 2-3일 내 코드 업로드 예정!

코드

octopod.ino (아두이노) - 메인 NodeMCU 코드

아두이노 MKR 1010용. MAX32620FTHR 사용 시 해당 라이브러리 설치 후 보드 설정 변경, 핀 매핑 참고(ESP↔MAX 핀 매핑표 코드 내 포함).

octopod_door.ino (아두이노) - 자동 도어락 제어 (블루투스 없음)

MFRC522 라이브러리 필요. 허용 UID를 content.substring(1) == "XX XX XX XX" 부분에 입력.

octopod_door_bluetooth.ino (아두이노) - 자동 도어락 제어 (블루투스 버전)

SoftwareSerial로 블루투스 통신, 허용 UID 2개 등록 예시 포함.

커스텀 파트 및 인클로저

회로도

핀 구성은 아두이노 MKR 1010과 다를 수 있음. 블루투스 버전: HC-05 Rx→아두이노 Tx, HC-05 Tx→아두이노 Rx, 5V↔5V, GND↔GND. ESP↔MAX 핀 매핑표 포함.

제조공정

  1. 스마트 홈 기술이 일상을 바꾸는 방법
  2. 멀버타이징이 스마트 홈 IoT 위협: 숨겨진 광고가 디바이스 손상시킬 수 있다
  3. 라즈베리 파이 기반 홈 오토메이션 시스템으로 원격 제어 구축하기
  4. 스마트 블라인드: 아두이노와 태양광으로 자동 조명 제어
  5. 스마트 IoT 자 제작: ESP8266, 아두이노 & 초음파 센서로 실시간 모니터링
  6. 1Sheeld로 스마트 홈 자동화 및 보안 시스템 구축하기
  7. 아두이노 틱택토 게임 - MAX7219 LED 매트릭스와 골판지 케이스
  8. 스파크펀 7-세그먼트 디스플레이로 신뢰할 수 있는 아두이노 카운트다운 타이머 만들기
  9. 아두이노와 ESP8266으로 만드는 와이파이 스마트 도어락 - 스마트폰으로 잠금 해제
  10. 산업 자동화 4.0: 생산 효율성 혁신