HC-06 자동 설정 장치 만들어보기!
페이지 정보
작성자 드래곤사우르스 작성일17-02-14 13:14 조회3,105회 댓글0건관련링크
본문
안녕하세요 메카솔루션입니다.
이번에는 HC-06을 자동으로 설정해주는 장치를 만들어보고자합니다.
그런대 HC-06자동 설정장치를 만들게 된이유는 간혹 상품이 주문될때 HC06 두개를 슬레이브와 마스터로 짝을 맞추어 설정해달라는 요청이 오는데 적은 수량은 하나하나 명령어를 넣어 주어서 해줄 수 있으나, 300개 단위로 요청이 들어오면 도무지 손으로 하기에는 어려운 수량이 되어버립니다.
그래서 급한대로 장치를 만들어 보게 되었습니다.
만능기판에 바로 납땜해서 보드형으로 사용할 수 있도록 해보았습니다.
노란버튼 -> 마스터로 설정
초록버튼 -> 슬레이브로 설정
파란버튼 -> 장치 번호 1씩 추가
이런식으로 기능을 설정하고 만들어보았습니다.
회로도 알아보기
부품 알아보기
ㄴㅁㅇㄹ
소스코드 알아보기
#include <SoftwareSerial.h> SoftwareSerial btseri(2, 3); int button[] = {4,5,6}; int count = 0; void setup() { Serial.begin(9600); btseri.begin(9600); for(int i = 0;i<3;i++){ pinMode(button[i],INPUT_PULLUP); } } void loop() { switch(ReadButton()){ case 0://set Master Serial.println("set Master"); SendAT("AT"); PrintReq(1000); SendAT("AT+ROLE=M"); PrintReq(1000); SendAT("AT+NAMEBT"+String(count)); PrintReq(1000); SendAT("AT+RESET"); PrintReq(1000); SendAT("AT+RESET"); delay(1000); SendAT("AT"); PrintReq(1000); break; case 1://set Slave SendAT("AT"); PrintReq(1000); SendAT("AT+ROLE=S"); PrintReq(1000); SendAT("AT+NAMEBT"+String(count)); PrintReq(1000); SendAT("AT+RESET"); delay(1000); SendAT("AT"); PrintReq(1000); break; case 2://add count count++; Serial.println(count); break; } } int ReadButton(){ for(int i = 0;i<3;i++){ if(digitalRead(button[i]) == LOW){ delay(500); return i; } } return -1; } void SendAT(String str){ Serial.println(str); btseri.print(str); //btseri.print("\n\r"); } void PrintReq(unsigned long t){ unsigned long last = millis(); while(millis() - last < t){ while(btseri.available() > 0){ Serial.write(btseri.read()); } } Serial.println("."); } |
예전에 HC-06의 사용을 위해 AT 커멘드를 직접 입력해 주었지만 사실 AT커멘드를 아두이노의 시리얼 로 입력만 하여도 충분히 설정이 가능합니다.
이를 이용하면 반복되는 보드의 설정을 직접 손으로 할 수 없을때는 아두이노 보드에 프로그램을 올려두면 충분이 많은 부분을 자동으로 설정할 수 있습니다.
읽어주셔서 감사합니다.
물론 HC-06 300개 설정하는 거는 두번다시 하기 싫습니다.
진짜루...
감사합니다.
출처 : 메카솔루션
댓글목록
등록된 댓글이 없습니다.
최신댓글