본문으로 바로가기

NAS 전원관리 아두이노 스케치

category 개발/개발내용 2016. 2. 26. 04:22
반응형

처음에는 제대로 릴레이로 NAS 전원 신호를 컨트롤 하려고 했는데, 막상 테스트해보니 예상과 다른 결과가 나왔다.

내가 라즈베리파이 서버로 신호를 주면 서버는 아두이노와 시리얼 통신을 연결하고 정해지니 명령어를 전송하면 아두이노가 그에 해당하는 동작을 해야 한다.


그러나 실제로는 시리얼통신이 연결되는 순간 아두이노 보드가 리셋되면서 짧은시간 전류를 변화시키고, 이 때문에 릴레이가 NAS를 작동시켜버린다.


시리얼이 연결되어도 아두이노 보드가 리셋되지 않게 설정하는 방법이 있어서 해 봤는데, 결론적으로는 이래저래 불편해서 포기하고 그냥 NAS를 동작시키고 싶을 때 단순하게 시리얼통신만 연결헀다 끊는 방식으로 하기로 했다. 내가 원하는 건 어차피 전원을 켜고 끄는거니까 모로가도 서울만 가면 됨.

그래서 사실 소스코드에 내용이 없다. 진짜로.

소스코드

루프에는 아무 기능도 넣지 않았고, 아두이노는 그냥 시리얼이 연결되면 LED로 표시한 뒤 접속됐다는 메시지만 보내주게 했다.


int RELAY = 7;
int LED_R = 5;
int LED_B = 9;

void setup() {
    pinMode(RELAY, OUTPUT);
    pinMode(LED_R, OUTPUT);
    pinMode(LED_B, OUTPUT);

    Serial.begin(9600);
    Serial.println("Hello from Arduino! I'll send Power Signal to NAS!!");
  
    for (int i=0 ; i<35 ; i++){
        digitalWrite(LED_R, HIGH);
        delay(60);
        digitalWrite(LED_R, LOW);
        digitalWrite(LED_B, HIGH);
        delay(60);
        digitalWrite(LED_B, LOW);
    }
}

void loop() {
}


참고 : 아두이노 시리얼 통신이 시작될 때 자동 리셋되지 않게 하기

아두이노 보드에서 다음과 같이 연결하면 된다. 5V 핀 --- 110옴 저항 --- RST 핀


이 방법을 사용하게 되면 Arduino IDE 에서 스케치를 업로드할 때 에러가 발생하게 되므로 주의할 것.
해결 방법은 아래 내용을 참고.

1. 아두이노 보드에서 리셋 버튼을 누르고 있는다.

2. 리셋버튼을 누른 상태에서 Arduino IDE의 업로드 버튼을 누른다.

3. Rx의 LED가 한번 깜박이자마자 리셋버튼을 놓는다.

4. 그러면 LED가 미친듯이 깜박거리면서 업로드에 성공한다.

만약 업로드에 실패하면 타이밍을 잘못 맞춘거니 다시 해보면 된다.

반응형