
안녕하세요!!
첫글로 네이버 블로그에는 실습 후 당시 글을 써서 업로드해뒀지만, 개발공부를 위해 티스토리 블로그를 하나 만들어서 여기에도 정리 겸 올리려 합니다.
TMI지만 사실 loT 쪽은 특히 조금밖에 학교에서 안배우기도 했고 거의 초보적인 거이기도 하고 내가 취업하고 싶은 쪽은 게임개발이나 앱개발, 백엔드 소프트웨어쪽이라 게시 안할까 하다가.. 네이버 블로그에 아래 사진과 같이 댓글 달아주신 분처럼 혹시나 참고하실 분 있을까 하고 게시해봅니다..
팅커캐드를 이용한 화재경보기 만드는 것으로 사진 및 링크를 게시합니다!
<코드>
const int temperature = A0;//온도센서 연결
const int gas_pin = A1; //가스 센서 연결
int buzzer_pin =8; //피에로 부저 연결
void setup()
{
Serial.begin(111530);
pinMode(8, OUTPUT); //피에로 부저 핀
pinMode(7, OUTPUT); //led red
pinMode(6, OUTPUT); //led blue
pinMode(5, OUTPUT); //led yellow
pinMode(4, OUTPUT); //led green
}
void loop()
{
int value = analogRead(temperature);
float volt = value * 5.0/1024.0;
float TempC = (volt-0.5)*100;
Serial.print("temperature : ");
Serial.print(TempC);
Serial.println(" C"); //섭씨 온도 출력
int g = analogRead(gas_pin); //가스 센서 아날로그 불러오기
Serial.print("gas : ");
Serial.println(g);
if(TempC < 0){
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
}
else if(TempC < 50){
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(5, LOW);
digitalWrite(4, HIGH);
}
else if(TempC < 80){
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
}
else if(TempC < 100 && g >300){
digitalWrite(7, LOW);
digitalWrite(6, HIGH);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
tone(buzzer_pin,200,80);
}
else if(TempC < 130 && g > 500){
digitalWrite(7, HIGH);
digitalWrite(6, HIGH);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
tone(buzzer_pin,500,130);
}
delay(500); // 딜레이
}
이는 온도 센서와 가스센서를 이용하여 일정 이상의 온도와 가스의 양이 발생시 피에로 부저가 울리게 만든 것입니다.
https://www.tinkercad.com/things/bjyyJPRkr44-amazing-trug/editel
Tinkercad | From mind to design in minutes
Tinkercad is a free, easy-to-use app for 3D design, electronics, and coding.
www.tinkercad.com
02. lcd 판 추가

온도만 가지고 화재경보기를 울리는 것이 아닌 일정 이상의 가스도 인식이 되야 켜지게 작동합니다!
[단 발동할 때 조건 중 가스 양을 좀 줄여서 가스가 별로 배출되지 않아도 인식되도록 가스의 양을 좀 줄여서 조건에 적어줌]
lcd 판은 온도별 가스의 양별로 나타내는 것이 달라지게 표기합니다!
<코드>
#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
const int temperature = A0;//온도센서 연결
const int gas_pin = A1; //가스 센서 연결
int buzzer_pin =3; //피에로 부저 연결
void setup()
{
lcd.begin(16,2);
Serial.begin(111530);
pinMode(8, OUTPUT); //피에로 부저 핀
pinMode(7, OUTPUT); //led red
pinMode(6, OUTPUT); //led Orange
pinMode(5, OUTPUT); //led blue
pinMode(4, OUTPUT); //led greeN
}
void loop()
{
int value = analogRead(temperature);
float volt = value * 5.0/1024.0;
float TempC = (volt-0.5)*100;
Serial.print("temperature : ");
Serial.print(TempC);
Serial.println(" C"); //섭씨 온도 출력
int g = analogRead(gas_pin); //가스 센서 아날로그 불러오기
Serial.print("gas : ");
Serial.println(g);
if(TempC < 0){
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
lcd.print("TempC is good");
lcd.setCursor(0,1);
lcd.print("gas is good,safe");
}
else if(TempC < 50){
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(5, LOW);
digitalWrite(4, HIGH);
lcd.clear();
lcd.print("Temp is good");
lcd.setCursor(0,1);
lcd.print("gas is good,safe");
}
else if(TempC < 80){
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
lcd.clear();
lcd.print("temp is soso");
lcd.setCursor(0,1);
lcd.print("gas is good,safe");
}
else if(TempC < 100 && g >30){
digitalWrite(7, LOW);
digitalWrite(6, HIGH);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
tone(buzzer_pin,200,80);
lcd.clear();
lcd.print("temp:little risk");
lcd.setCursor(0,1);
lcd.print("gas:little risk");
}
else if(TempC < 130 && g > 50){
digitalWrite(7, HIGH);
digitalWrite(6, HIGH);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
lcd.clear();
lcd.print("temp:dangerous");
lcd.setCursor(0,1);
lcd.print("gas:dangerous");
tone(buzzer_pin,500,90);
}
delay(500); // 딜레이
}
https://www.tinkercad.com/things/eSGRSSG94Kr-amazing-maimu-blad/editel
Tinkercad | From mind to design in minutes
Tinkercad is a free, easy-to-use app for 3D design, electronics, and coding.
www.tinkercad.com
별거 아닌 간단한 코드만으로 만들어진 팅커캐드나 이를 활용한다면 화재경보기의 오류를 조금이나마 줄일 수 있을겁니다! 여기서 더 추가 하여 위에 댓글 캡처본처럼 시각장애인을 위한 장비 개발도 가능할 수 있습니다!
'IoT > 팅커캐드' 카테고리의 다른 글
02. 팅커캐드 스마트 홈 자동 블라인드 (0) | 2022.01.03 |
---|
안녕하세요. si 회사 소속 sm LMS 팀에 소속중인 1년차 백엔드 개발자입니다😀 함께 나누고 성장하는 것을 좋아해요. 언제든 디스코드나 구글 메일로 질문해도 됩니다!
⭐ 잘못된 내용은 댓글 적어주세요 :)