질문게시판 > 블루투스 통신이랑 도어락 코드를 합치고 싶습니다.

TODAY16,379 TOTAL4,210,628
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | 블루투스 통신이랑 도어락 코드를 합치고 싶습니다.

페이지 정보

작성자 이재우 작성일2022-11-20 22:08 조회4,687회 댓글1건

본문

	

1번 코드 : 도어락 ,2번 코드(master), 3번(slave)

2번 코드에 충격 감지센서를 부착하여 코드를 수정하고 블루투스 통신을 통해 3번 코드에 충격 감지값을 전달하고 그 진동값에 따라 NFC모듈을 동작시키고 싶습니다. 진동값이 200 정도의 값에서 더 작아지게 된다고 하면 충격이 감지되었다고 하고 블루투스 통신으로 값을 전달하고 전달 받은 3번 코드에서 NFC모듈이 지정된 카드를 대게 된다면 문이 열리게 되는 동작을 수행하고 싶습니다.하지만 진행이 잘 되지 않아서 질문을 남깁니다. 

 

3번 코드와 1번 코드를 합치려고 생각중이고 합치려고 하는데 릴레이 동작부분에서 코드가 이해가 안되는 부분이 존재해서 여쭤보려고 합니다.  

 

1번 코드의 회로도를 다른 사람이 만든 것을 참조하고 있는데 회로도에서 이해가 안되는 부분도 있습니다. 밑에 있는 건전지 9v의 +축에서 나오는 저항과 릴레이가 이어지는 부분이 선 연결이 NFC모듈의 3.3v와 GND가 연결이 되는 것인가요? 그리고 저항도 선에 연결을 해주는 걸까요?  

 

*평소에는 NFC로 열려고 해도 안열리다가 진동센서에 충격이 감지된다면 NFC모듈을 사용해서 문을 열 수 있는 모드로 전환이 됨. 그러다가 다시 돌아오는 모드가 필요할 듯 싶은데....한번 NFC로 문을 열게 된다면 다시 또 안 열리게 되는 모드로 전환이 되면 좋을 것 같습니다. 

 

1번코드

​#include <AddicoreRFID.h>

#include <SPI.h>

#include "LowPower.h"

  

#define    uchar    unsigned char

#define    uint    unsigned int

#define MAX_LEN 16

 

AddicoreRFID myRFID; 

  

/////////////////////////////////////////////////////////////////////

//set the pins

/////////////////////////////////////////////////////////////////////

const int chipSelectPin = 10;

const int resetPin = 9;

const int button = 2;

const int power_Relay = 7;

const int door_Relay = 8; 

 

void setup() {                

  Serial.begin(9600);                        // 시리얼 모니터 출력 설정

  SPI.begin();

 

  pinMode(chipSelectPin,OUTPUT);              // Set digital pin 10 as OUTPUT to connect it to the RFID /ENABLE pin 

  pinMode(resetPin,OUTPUT);                     // Set digital pin 10 , Not Reset and Power-down

  pinMode(power_Relay,OUTPUT);

  pinMode(door_Relay,OUTPUT);

  pinMode(button,INPUT_PULLUP);

   

  digitalWrite(chipSelectPin, LOW);         // Activate the RFID reader

  digitalWrite(resetPin, HIGH);

 

  myRFID.AddicoreRFID_Init();  

}

 

void loop() {

  attachInterrupt(0, wakeUp, LOW);  

   

  //Serial.println("sleep");

  LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF); //set Sleep mode

 

  detachInterrupt(0); 

  //Serial.println("wake up");    

  checking();

   

}

 

void wakeUp(){}

 

void checking() //when wake up, this function will working

{

    int button_state = 0;

    int count = 0; 

    int k,check_nfc=0;

 

    digitalWrite(power_Relay, HIGH);

    count=15;

    delay(200);        

    

    while(count!=0){

        check_nfc=0;

        button_state = digitalRead(button);

        count--;

 

        if(button_state==0){ // this is safe Function. 

            delay(100);

            for(k=0;k<35;k++){    

                button_state = digitalRead(button);

                if(button_state==0){

                    delay(200);

                    check_nfc++;

                }

                else

                  break;

            }

             

            if(check_nfc>30){ when you push Button for 30 seconds, door lock is unlock

                digitalWrite(door_Relay, HIGH);

                delay(500);

                digitalWrite(door_Relay, LOW);

                count=0;

            }

                     

        }else{               

            uchar status;

            uchar str[MAX_LEN];

            str[1] = 0x4400;

            String mynum = "";

 

            //Find tags, return tag type

            status = myRFID.AddicoreRFID_Request(PICC_REQIDL, str); 

            if (status == MI_OK)

            {

                if(str[0] == 100 && str[1] == 11)                    

                {                  

                digitalWrite(door_Relay, HIGH);

                delay(500);

                digitalWrite(door_Relay, LOW);

                }

            }

             

            status = myRFID.AddicoreRFID_Anticoll(str);

            if (status == MI_OK)//if attached card is registered card, doorlock will working

            {         

                Serial.println(str[0]);            

                Serial.println(str[1]);            

                if(str[0] == 5 && str[1] == 167)                    

                {                  

                    digitalWrite(door_Relay, HIGH);

                    delay(500);

                    digitalWrite(door_Relay, LOW);

                } else if(str[0] == 115 && str[1] == 5 ) {            

                    digitalWrite(door_Relay, HIGH);

                    delay(500);

                    digitalWrite(door_Relay, LOW);

                }

                else if(str[0] == 213 && str[1] == 143  ) {            

                    digitalWrite(door_Relay, HIGH);

                    delay(500);

                    digitalWrite(door_Relay, LOW);

                }

                delay(1000);

                count=0;

            }

            myRFID.AddicoreRFID_Halt();      

        }

         

        delay(100);

    }

    digitalWrite(power_Relay, LOW);

}


2번코드

#include <SoftwareSerial.h>


//시리얼 통신 모드 Both NL & CR로 해야 상호통신이 가능 

SoftwareSerial myBT(2, 3); //BlueTooth(Rx, Tx)


void setup() {

  Serial.begin(9600);

  pinMode(7, OUTPUT);

  digitalWrite(7, HIGH);

  Serial.println("Enter AT Commands: ");

  myBT.begin(38400);

}


void loop() {

  if (myBT.available())

    Serial.write(myBT.read());


  if (Serial.available())

    myBT.write(Serial.read());

 

}


3번코드

#include <SoftwareSerial.h>


//시리얼 통신 모드 Both NL & CR로 해야 상호통신이 가능 

SoftwareSerial myBT(2, 3); //BlueTooth(Rx, Tx)


void setup() {

  Serial.begin(9600);

  pinMode(7, OUTPUT);

  digitalWrite(7, HIGH);

  Serial.println("Enter AT Commands: ");

  myBT.begin(38400);

}


void loop() {

  if (myBT.available())

    Serial.write(myBT.read());


  if (Serial.available())

    myBT.write(Serial.read());

 

}

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 1

조회수 4,687

master님의 댓글

master 작성일

소스가 길고 출장이 겹쳐서 답변이 어렵습니다.
스스로 해결 해보셔야겠습니다.

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
질문 아두이노 블루투스 통신댓글[3] 이미지첨부파일 찌릿공돌이 24-08-27 138
질문 센서나 블루투스에서 조건문이 실행이 느립니다. 현아 24-05-03 305
답변 답변글 답변 : 센서나 블루투스에서 조건문이 실행이 느립니다. master 24-05-03 272
질문 hc-05 블루투스와 가스센서 서브모터(sg-90) 코드 wwqa 24-04-29 337
답변 답변글 답변 : hc-05 블루투스와 가스센서 서브모터(sg-90) 코드댓글[1] master 24-04-29 603
질문 블루투스(hc-05) 서브모터(sg-90) 연동 질문 있습니다. wwqa 24-04-24 302
답변 답변글 답변 : 블루투스(hc-05) 서브모터(sg-90) 연동 질문 있습니다.댓글[2] master 24-04-24 903
질문 ,아두이노 서보모터 블루투스 연결댓글[4] 비누 23-12-22 5026
질문 Atmega128 CLCD와 블루투스 통신 문제댓글[1] fanfan 23-12-07 1330
답변 답변글 답변 : Atmega128 CLCD와 블루투스 통신 문제댓글[3] master 23-12-07 2938
질문 ATmega128에서 LCD와 블루투스 fanfan 23-12-05 971
답변 답변글 답변 : ATmega128에서 LCD와 블루투스댓글[1] master 23-12-05 1386
질문 atmega128 블루투스 CLCD댓글[3] 릴를 23-12-03 4011
질문 아두이노 블루투스와 초음파센서를 이용한 장애물 정지댓글[2] 둘둘이 23-09-22 2514
답변 답변글 답변 : 아두이노 블루투스와 초음파센서를 이용한 장애물 정지댓글[1] master 23-09-25 2000
질문 Arduino nano 33 iot 모듈 블루투스 통신댓글[5] 이미지첨부파일 senior 23-08-16 6277
질문 아두이노 블루투스모듈(HC-06) 모바일 값 전송 질문댓글[3] 이미지첨부파일 소오금 23-08-13 3628
질문 아두이노 서보모터 블루투스 제어댓글[3] rnqudah 23-08-01 4842
질문 dfplayer 블루투스 연결 앱인벤터댓글[1] 이미지첨부파일 아두이노우 23-06-11 1224
질문 Ph 블루투스로 앱인벤터 출력 안녕하세요13 23-04-28 1465
답변 답변글 답변 : Ph 블루투스로 앱인벤터 출력댓글[15] master 23-04-29 48792
질문 아두이노 초음파센서와 HC06(블루투스)를 이용, 릴레이동작댓글[3] 나도할수있어아두 23-04-27 6205
질문 아두이노 블루투스 서보 제어서 튐댓글[2] 첨부파일 타이지 23-04-24 3315
질문 아두이노 2대 블루투스댓글[2] 다유 23-04-13 3020
질문 Attiny85로 블루투스 수신받아서 모터 방향제어가 가능할까요?댓글[1] 비차 23-04-07 2298
질문 아두이노우노 블루투스 2개 연결댓글[1] dsfadfs 23-02-28 2759
질문 아두이노 블루투스 관련 질문입니다. 생물공학도 23-02-21 1923
답변 답변글 답변 : 아두이노 블루투스 관련 질문입니다. master 23-02-21 1979
질문 블루투스에서 아두이노로 신호전달에 대하여(2)댓글[1] 이미지첨부파일 밍경 23-02-14 2900
질문 블루투스에서 아두이노로 신호전달에 대하여 밍경 23-02-13 1952
게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기