CAFE

2025 SW-AI 프로젝트

아두이노 버전1

작성자김나희|작성시간25.10.11|조회수9 목록 댓글 0

아두이노 코드
#include <Wire.h>
#include <Adafruit_MLX90614.h>
#include <SoftwareSerial.h>

Adafruit_MLX90614 mlx = Adafruit_MLX90614();
SoftwareSerial BTSerial(10, 11); // RX, TX (HC-05 연결)

void setup() {
Serial.begin(9600);
BTSerial.begin(9600);
mlx.begin();
}

void loop() {
float temp = mlx.readObjectTempC(); // 물체 온도 측정
Serial.println(temp);

if (temp >= 150.0) {
BTSerial.println("WARNING: Temp over 150C");
}

delay(1000);
}

flutter코드 예시
import 'package:flutter/material.dart';
import 'package:flutter_blue_plus/flutter_blue_plus.dart';

class BluetoothPage extends StatefulWidget {
@override
_BluetoothPageState createState() => _BluetoothPageState();
}

class _BluetoothPageState extends State<BluetoothPage> {
String warningMessage = "";

@override
void initState() {
super.initState();
scanAndConnect();
}

void scanAndConnect() async {
FlutterBluePlus.instance.startScan(timeout: Duration(seconds: 4));

FlutterBluePlus.instance.scanResults.listen((results) {
for (ScanResult r in results) {
if (r.device.name == "HC-05") {
FlutterBluePlus.instance.stopScan();
connectToDevice(r.device);
break;
}
}
});
}

void connectToDevice(BluetoothDevice device) async {
await device.connect();
var services = await device.discoverServices();

for (var service in services) {
for (var characteristic in service.characteristics) {
if (characteristic.properties.notify) {
await characteristic.setNotifyValue(true);
characteristic.value.listen((value) {
String received = String.fromCharCodes(value);
if (received.contains("WARNING")) {
setState(() {
warningMessage = received;
});
}
});
}
}
}
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Bluetooth Warning")),
body: Center(
child: Text(
warningMessage.isEmpty ? "정상 온도입니다" : warningMessage,
style: TextStyle(fontSize: 24, color: Colors.red),
),
),
);
}
}

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼