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

아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비

부품 및 소모품

아두이노 101 1개
인텔 에디슨 (아두이노 브레이크아웃 보드용) 1개
로지텍 C270 HD 웹캠 1개
Pololu Sharp GP2Y0D815Z0F 디지털 거리 센서 (15cm) 캐리어 보드 2개
Adafruit 정사각형 FSR (압력 센서) - Interlink 406 1개
Adafruit Si7021 온습도 센서 브레이크아웃 1개
Seeed Grove 스타터 키트 플러스, 인텔 IoT 에디션 1개
커패시터 47µF 2개
저항 1kΩ 1개
Adafruit 터미널 블록 2핀 3.5mm (5개 팩) 1팩
Adafruit 콤팩트 스위칭 파워 서플라이 (3-12V 가변 출력) 1개
Adafruit 퍼마-프로토 쿼터 사이즈 브레드보드 PCB 1개
점퍼 와이어 (일반) 1세트

필요 도구 및 기계

앱 및 온라인 서비스

프로젝트 소개

"새들을 위해!" – 아두이노 101로 에코 모니터링의 미래 재발명

소개 및 동기

기후와 생태계 건강을 측정하는 한 방법은 동물 개체군의 크기와 다양성을 관찰하는 것입니다. 1987년부터 매겨 겨울마다 코넬 조류학 연구소는 Project FeederWatch라는 대규모 시민 과학 프로젝트를 진행합니다: 겨울철 새 모이통 방문 조류 종과 개체 수를 조사해 분포와 개체수 변화를 추적합니다.

첫 참여 해에 메이킹/해킹 취미와 자연 관찰, FeederWatch 참여를 결합해 아두이노 101로 조류 모이통을 스마트하게 만들기로 했습니다. 아두이노 101은 아두이노 IDE의 간편함, 내장 BLE, 풍부한 센서/브레이크아웃 보드 지원으로 이 프로젝트에 이상적입니다. Cloudinary, PubNub 같은 IoT 기술로 환경 모니터링의 미래를 재발명해보았습니다!

프로젝트 개요

아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비

아두이노 101 임베디드 모이통이 핵심입니다. 구성:

인텔 에디슨 (아두이노 브레이크아웃 보드)이 BLE 센트럴 겸 인터넷 게이트웨이 역할:

아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비

모이통 본체는 빈 소다병과 나무 막대로 만들어 마당 기둥에 걸었습니다.

프로젝트 제작

아두이노 101 임베디드 모이통

야외 설치라 내구성, 무선 실시간 전송 필요. 거리가 몇 피트라 내장 BLE 활용.

회로는 프리칭 다이어그램 참고하되, 겪은 난제들 중심으로 설명:

아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비
아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비

나머지는 단순: Si7021을 I2C(3.3V)에 연결, IR/FSR 센서를 퍼마-프로토 보드에 납땜해 아두이노 101 아래 양면 테이프로 부착. 전체 패키지를 소다병 모이통 안에 넣어 영하, 안개, 눈(가짜 블리자드 '스텔라')에도 생존.

아두이노 101 스케치 핵심

센서 모니터링 → BLE로 데이터 전송. BLE는 바이트 배열로 전송하므로 float/int를 공용체(union)로 바이트 배열과 메모리 공유해 변환:

union { float t; unsigned char bytes[4]; } tempData;
union { float h; unsigned char bytes[4]; } humidityData;
union { int f; unsigned char bytes[2]; } feedData;

delay() 사용 안 함(프로세서 정지, BLE 알림 간섭). 대신 Bill Earl(Adafruit) 튜토리얼 방식: 디바이스 객체에 폴링 간격 설정, Update() 함수에서 시간 경과 시만 센서 읽기, loop()에서 반복 호출로 멀티태스킹 흉내.

void Update() {
  currentPerchMillis = millis();
  if ((currentPerchMillis - previousPerchMillis) > perchInterval) {
    previousPerchMillis = currentPerchMillis;
    currentLeftPerch = digitalRead(LEFT_PERCH);
    currentRightPerch = digitalRead(RIGHT_PERCH);
    if ((currentLeftPerch == 0) && (previousLeftPerch == 1)) {
      perchCharacteristic.setValue(1); // BLE 알림
      Serial.println("LEFT PERCH ACTIVITY");
      previousLeftPerch = 0;
    }
    // ... 우측 횃대 동일 처리
  }
  // 온습도, FSR 등 다른 센서도 각자 간격으로 폴링
}
void loop() {
  blePeripheral.poll();
  birdFeeder.Update();
}

인텔 에디슨 & 아두이노 브레이크아웃 보드

에디슨 설정은 Vincent Wong의 "Intel Edison and Intel XDK IoT Edition 101" 튜토리얼 추천. Intel XDK IoT 에디션으로 명령줄 조작, JavaScript/Node로 PubNub, noble.js, Cloudinary 등 강력한 API 활용.

WiFi 연결 확인 후 라이브러리 설치:

npm install noble
npm install pubnub
npm install cloudinary

USB 웹캠 설정

로지텍 C270은 UVC 호환. Yocto 리눅스에서 uvcvideo 모듈 필요. 다음 단계로 설정:

vi /etc/opkg/base-feeds.conf  // 리포지토리 추가
opkg update
opkg install kernel-module-uvcvideo
ls -l /dev/video*  // /dev/video0 확인
opkg install fswebcam  // cronie 불필요 (센서 트리거 시 호출)
fswebcam -r 1280x720 --jpeg 100 -D 3 -S 13 "test.jpg"  // 테스트

마이크로 USB/USB 포트 스위치를 USB 포트 쪽으로, 외장 전원(Adafruit 1448) 연결 필요. SD 카드 마운트 확인(cd /media/sdcard; ls), 블루투스 언블록(rfkill unblock bluetooth), bluetoothctl → scan on으로 아두이노 101 BLE 기기 확인.

아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비

Intel XDK에서 BLESCAN 예제 프로젝트 열고 index.js를 우리 코드(GitHub 참조)로 교체 후 업로드/실행. 아두이노 101 켜져 있으면 연결 성공 로그 확인 가능.

아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비

코드 상세: 에디슨 측 (Node.js)

noble.js용 BLE 서비스/캐릭터리스틱 UUID (대시 없음!):

var LOCAL_NAME = 'bird';
var SERVICE_UUID = '917649a0d98e11e59eec0002a5d5c51b';
var PERCH_UUID = '917649a1d98e11e59eec0002a5d5c51b';
var TEMPERATURE_UUID = '917649a2d98e11e59eec0002a5d5c51b';
var HUMIDITY_UUID = '917649a3d98e11e59eec0002a5d5c51b';
var FEED_UUID = '917649a4d98e11e59eec0002a5d5c51b';

noble.on('discover')로 주변 기기 스캔 → 'bird' 이름 매칭 → 연결 → 서비스/캐릭터리스틱 발견 → characteristic.notify(true)로 알림 활성화 → characteristic.on('data', ...)로 데이터 수신 (구버전 noble은 'read' 이벤트였음, 주의).

transformRawData(uuid, data) 함수에서 캐릭터리스틱별 처리:

아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비

PubNub: 실시간 데이터 스트리밍 네트워크. 인터넷만 있으면 전 세계 어디서든 데이터 수신. 별도 서버 불필요. Cloudinary: 이미지 업로드/저장/변환 API 매우 간편, 지원도 훌륭.

index.html (웹 UI)

PubNub 구독 키로 스트림 구독, Cloudinary URL로 이미지 표시. PubNub Eon.js 라이브러리로 게이지/차트 위젯 간편 생성.

<script src="https://cdn.pubnub.com/sdk/javascript/pubnub.4.5.0.js"></script>
<script src="https://pubnub.github.io/eon/v/eon/1.0.0/eon.js"></script>
var pubnub = new PubNub({ subscribeKey: "your_subscribe_key" });
pubnub.subscribe({channels: ['feederView']});
pubnub.addListener({
  message: function(m) {
    var msg = m.message, idx = msg.imageIndex;
    if (msg.latestView) document.getElementById("myImage"+idx).src = msg.latestView;
    // Eon.js로 게이지 업데이트 등
  }
});

모이통 및 인클로저 제작

2L 소다병으로 모이통 제작: 11cm 높이로 자르고, 바닥 쪽에 3cm 구멍 내 나무 막대(횃대) 관통. 전자부품 패키지 넣어 크기 확인 후 상단부에 철사(30cm)로 걸이 만들고, 네 면에 서로 다른 높이의 구멍 4개 뚫어 다양한 크기 새 유입 및 모이 냄새 확산. 상하 결합 후 마스킹 테이프로 고정(센서 가리지 않게). 깔때기로 모이 채워 밖에 걸고 새 기다리기.

아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비

전자부품 인클로저: 병 지름(약 105mm) 기준 설계. 아두이노+브레드보드 2개 수납, 손잡이 달린 상단 커버, 배터리 팩 수납 하단부(필라멘트 절약 설계), FSR 감도 향상용 압력 플레이트 등 3D 프린트. 모두 나사로 조립해 컴팩트한 패키지 완성.

아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비
아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비
아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비
아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비
아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비

테스트 및 배포

배포 전 체계적 테스트: BLE 연결(nRF Master Control App으로 1차 확인, 에디슨으로 2차 확인), 배터리 저하 시 BLE부터 끊김 확인. FSR 캘리브레이션: 돌기점 플랫폼으로 선형 구간 확보, Eon.js 게이지 min/max/색상 범위 조정.

아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비
아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비

배포 갤러리

새들이 모이통 발견하면 몇 시간 만에 수천 장 JPEG 생성! Cloudinary 대시보드나 SD 카드에서 확인.

아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비
아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비
아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비
아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비
아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비
아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비
아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비
아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비
아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비

Seeed Grove 키트로 개선

Seeed Grove 베이스 실드 전원부로 Sharp IR 센서 2개 커패시터 없이도 안정 작동. 배선 대폭 단순화. 표준 Grove IR 센서는 핀아웃 달라 솔리드 와이어로 GND/Vin/SIG 연결해 호환.

아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비
아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비

Project FeederWatch 연계 및 결론

FeederWatch는 2일 연속 관찰 중 동시 최대 개체 수 보고 방식이라 우리 횃대 카운트와 직접 매칭은 안 되나, 환경 파라미터 자동 측정과 모이 소비량 자동화, 사진 자료로 희귀 조류 기록 등에 부합. PubNub 실시간 스트리밍으로 전 세계 버드워처/교실과 데이터 공유 가능. 향후 PubNub Clarifai 블록으로 이미지 자동 조류 종 분류, Cloudinary 블록으로 날씨 보정, 추가 Grove 센서 확장 등 기대.

메이커로서 새들 실시간 관찰하고 수천 장 사진 중 보물 찾기처럼 확인하는 재미, 모이 감소 그래프 보는 재미, 아두이노/에디슨/그로브/PubNub/Cloudinary/3D프린팅 모든 기술이 어우러지는 멋진 도전이었습니다. 여러분도 FeederWatch 참여해보시길 – 결국 이건 새들을 위한 것!

코드

It's For the Birds! – 전체 코드 파일: GitHub 저장소

커스텀 파트 및 인클로저

.stl 파일들 – "소다병 안" 모이통 제작 필수 파일: GitHub 3DBuild 폴더

회로도

아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비

에디슨 부분은 단순하며 웹캠 프리칭 부품 없어 사진으로 대체.

아두이노 101 & 인텔 에디슨 스타터 키트 – 센서, 웹캠, 필수 액세서리 완비

제조공정

  1. 라즈베리 파이용 콤팩트 DHT 온습도 브레이크아웃: ATtiny85와 DHT22/DHT11
  2. HC-SR04 초음파 센서를 라즈베리 파이에 연결하기 – 실전 가이드
  3. 라즈베리 파이의 잠재력을 100% 끌어내는 필수 액세서리
  4. SIGHT: 시각장애인을 돕는 스마트 안경
  5. 인텔·유다시티, 엣지 AI 개발자 인증 나노디그리 프로그램 출시
  6. 올바른 충진 센서 선택: 정확성, 신뢰성 및 수익성
  7. 첨단 TOMOPLEX 센서 필름, 항공우주 실시간 모니터링 구현
  8. ISS 센서용 정확한 WiFi RSSI 추적
  9. 혁신적 수학 프레임워크, 엔지니어의 최적 항공기 센서 선택 지원
  10. 인더스트리 4.0에 5S 기법 도입하기: 구현 과제 극복 방안