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

아두이노 MKR Fox 1200으로 신뢰성 높은 시그폭스 kWh 미터 만들기

부품 및 소모품

부품수량
아두이노 MKR Fox 12001
브레드보드1
점퍼 와이어1
CNY70 반사형 광센서1
221Ω 저항1
10kΩ 저항1
100Ω 저항1
로터리 포텐셔미터1
스파크펀 푸시버튼 12mm1
LED1

앱 및 온라인 서비스

프로젝트 소개

1) 요약

이 튜토리얼은 오래된 유도식 전력량계를 인터넷에 연결하는 장치를 만드는 방법입니다. 회전 디스크에 반사 페인트와 검은 줄무늬가 있으며, 검은 줄이 지나갈 때마다 1회전 완료. 본 프로젝트에서는 120회전 = 1kWh입니다.

2) 마이크로컨트롤러, IoT 네트워크 등

아두이노 MKRFOX1200 사용. 내장 시그폭스(Sigfox) 모듈로 LPWAN 통신. ISM 대역 868MHz, 일일 업링크 140회(페이로드 12바이트) 가능. 시그폭스 클라우드에 메시지 저장 후 콜백으로 원하는 목적지 전송 가능.

ThingSpeak: IoT 데이터 시각화 플랫폼. 시그폭스 콜백 목적지로 설정해 수신 즉시 차트 표시.

3) 실전 작업

  1. 배선도대로 모든 부품 연결 (USB 파워뱅크 또는 노트북 USB로 전원 공급).
  2. 코드 작성 및 업로드 (하단 코드 참조).
  3. ThingSpeak 채널 생성: 채널 1(소비량 필드), 채널 2(채널 1 기반, MATLAB Analysis로 누적 소비량 계산). 분석 코드 예시 제공.
  4. 시그폭스 콜백 생성: 백엔드 로그인 → 콜백 섹션 → DATA UPLINK, URL 채널, 커스텀 페이로드 설정(status::uint:32:little-endian), URL 패턴(https://api.thingspeak.com/update?api_key=채널1_WriteAPIKey&field1={customData#status}), HTTP GET 방식.

4) 장치 설치 및 로직

CNY70 센서를 전력량계 유리 중앙(회전 디스크 중심)에 양면 테이프로 부착. 버튼 2회 눌러 캘리브레이션: 반사면 감지 시 LED 점등, 검은 줄 감지 시 소등. 캘리브레이션 후 버튼 1회 더 눌러 측정 시작. 30분마다 소비량 전송 (정밀도 25Wh, 즉 3회전마다).

5) 최종 결과

ThingSpeak에서 아름다운 차트로 실시간 전기 에너지 소비량 확인 가능.

코드

Sigfox kWh 전기 에너지 전력량계 (아두이노)

#include 
int DIODE = 13;
int BTN = 12;
int BTN_state = 0, BTN_prev = 0, BTN_NR_OF_PRESS = 0;
int CALC = 0;
unsigned long i = 0;
uint32_t CONSUMPTION = 0;
boolean SHINE = false, KARDAN = false;

void setup() {
  pinMode(DIODE, OUTPUT);
  pinMode(BTN, INPUT);
  Serial.begin(9600);
  if (!SigFox.begin()) Serial.println("Sigfox module unavailable.");
}

void loop() {
  int senzor = analogRead(A3);
  BTN_state = digitalRead(BTN);
  if (BTN_state != BTN_prev) {
    if (BTN_state == HIGH) BTN_NR_OF_PRESS++;
  }
  BTN_prev = BTN_state;

  if (BTN_NR_OF_PRESS % 3 == 0) { // 캘리브레이션 모드
    if (senzor > 300 && senzor < 950) digitalWrite(DIODE, HIGH);
    else digitalWrite(DIODE, LOW);
  }

  if (senzor < 1020 && SHINE == false) SHINE = true;
  if (senzor > 1020 && SHINE == true && BTN_NR_OF_PRESS == 4) {
    CALC++; SHINE = false;
  }
  if (CALC % 3 == 0 && CALC != 0 && KARDAN == false) {
    KARDAN = true; CONSUMPTION += 25; // 25Wh 증가
  }
  if (CALC % 3 != 0) KARDAN = false;

  if (BTN_NR_OF_PRESS % 4 == 0) { // 측정 모드
    digitalWrite(DIODE, LOW);
    if (SHINE == false) {
      for (millis(); (millis() - i) > 1800000;) { // 30분마다
        i = millis();
        SigFox.debug();
        SigFox.beginPacket();
        SigFox.write(CONSUMPTION);
        SigFox.endPacket();
      }
    }
  }
}

회로도

MKRFOX1200, CNY70, 저항, 버튼, LED 연결 회로도 이미지 제공

제조공정

  1. 스마트 식물 갈증 알림기 – DIY 토양 수분 센서로 최적의 수분 관리
  2. 이탈리안 워드 클럭(Word Clock) 제작: 아두이노 나노 + 네오픽셀 + LCD + RTC
  3. 아두이노 핀 절약: 4x3 키패드를 단 3개 연결으로 사용하기
  4. 블루투스 온도 모니터: 아두이노 나노와 NTC 서미스터로 구현
  5. DIY 오토레인지 정전용량 측정기 (10pF~10µF) – 간단한 Arduino 제작
  6. 터치프리 제스처 잠금장치: APDS-9960과 아두이노로 보안 액세스 구현
  7. 아두이노 나노 컴패니언 키트 – DIY 전자 작업을 위한 필수 부품 및 도구
  8. 아두이노 마이크로/레오나르도용 USB MIDI 어댑터 키트 – 전체 부품 리스트
  9. 아두이노용 절연 아날로그 입력 회로 만들기
  10. 아두이노 우노로 정밀 반응 속도 테스터 만들기