반응형
코로나바이러스 때문에 체온계를 사려했는데... 생각보다 너무 비싸다ㅠ
흙수저답게 만들어 쓰기로 했다...!
준비물
이건 산 것들 (mlx90614온도센서, hc06블루투스, 배터리 등)
아두이노는 집에 굴러댕기는 거 썼음
부품들
부품 조립
<HC-06>
VCC - 5V
GND - GND
TX - D2
RX - D3
<mlx90614>
VCC - 5V
GND - GND
SDA - A5
SCL - A4
(SDA가 먼저나온다고 A4 아님!!)
코딩
* 아두이노
#include <Wire.h>
#include <Adafruit_MLX90614.h>
#include <SoftwareSerial.h> // 블루투스
#define BT_RXD 8 //블루투스 핀
#define BT_TXD 7
SoftwareSerial bluetooth(BT_RXD, BT_TXD); //블루투스
Adafruit_MLX90614 mlx = Adafruit_MLX90614(); //비접촉식온도센서
unsigned long time_previous, time_current;
void setup() {
Serial.begin(9600);
bluetooth.begin(9600);
mlx.begin();
time_previous = millis();
}
void loop() {
time_current = millis();
int temp = mlx.readObjectTempC();
if (time_current - time_previous >= 1000) { //1초마다
bluetooth.println(temp); //블루투스 -> 앱 값 전달
if (bluetooth.available()) {
Serial.write(bluetooth.read());
}
}
if (Serial.available()) {
bluetooth.write(Serial.read());
}
}
* 앱
블루투스는 bluthoothSSPLibrary를 사용하였다. 관련해서 다른 블로거분께서 자세히 설명해주셨다.
(링크 ; https://blog.codejun.space/13) (여기서 참고 해썽요)
사실상 이 부분만 고치면 된다.
bt.setOnDataReceivedListener(new BluetoothSPP.OnDataReceivedListener() { //데이터 수신
TextView temp = findViewById(R.id.temp);
public void onDataReceived(byte[] data, String message) {
temp.setText("체온: " + message + "'C");
}
});
블루투스 -> hc-06 연결 (비밀번호 1234) -> 앱 -> 연결버튼 -> hc - 06 -> 연결됐다고 토스트뜸 -> 끝
연결버튼을 한번 더 누르면 연결 해제된다. (블루투스 모듈이 깜빡깜빡 빛나는 상태가 됨)
전체 코드: https://github.com/Jinyeob/MyThermometer.git
빨리 코로나바이러스가 다 없어졌으면 좋겠다!!!!!!!!!!!!!!!!!!!!!!!
반응형
'프로그래밍 > Arduino, Rasberry Pi' 카테고리의 다른 글
[arduino] 7-segment 가변저항으로 조절 (0) | 2020.08.06 |
---|