산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

스마트 홈 연동을 위한 다중 위치 온도 센서 시스템

부품 및 소모품

DS18B20 온도 센서 × 8개
나사 × 1세트
Arduino Nano R3 × 1개
실험용 PCB × 1개
4.7kΩ 저항 × 1개
2포트 스크류 터미널 × 1개
SparkFun RS232 시프터 (SMD) × 1개
3D 프린트 케이스 × 1개
전선 × 1세트

필요한 도구 및 장비

앱 및 온라인 서비스

프로젝트 소개

여러 위치에서 온도를 측정하여 도모티카 시스템(Crestron/AMX)으로 데이터를 전송해야 했습니다. 비용 효율적인 솔루션이 필요했기 때문에 널리 구할 수 있고 저렴하며 버스 시스템인 DS18B20 센서를 선택했습니다.

센서들은 Arduino Nano에 연결되며, Arduino의 시리얼 출력(TTL)은 RS232로 변환되어 도모티카 시스템과 호환되도록 했습니다.

깔끔한 마감을 위해 Zortrax M200 3D 프린터로 케이스를 설계하여 출력했습니다.

스마트 홈 연동을 위한 다중 위치 온도 센서 시스템
스마트 홈 연동을 위한 다중 위치 온도 센서 시스템
스마트 홈 연동을 위한 다중 위치 온도 센서 시스템

질문이 있으시면 언제든 문의해 주세요!

소스 코드

MultiTempSensor v1.0.0 (Arduino)

/* MultiTempSensor code by WT040
센서 코드는 Rik Kretzinger의 예제와 기타 코드 조각을 기반으로 함
히스토리:
v0.1.1 2016/11/27
v0.1.5 2016/12/04 프리릴리즈 버전
v1.0.0 2017/12/04 릴리즈 버전
*/

// 라이브러리 포함
#include <OneWire.h>
#include <DallasTemperature.h>

// 상수 정의
#define SENSOR_PIN 12
#define READ_TIMER 10000 // 10초

OneWire oneWire(SENSOR_PIN);
DallasTemperature sensors(&oneWire);

// 센서 주소 (각 DS18B20의 고유 64비트 ROM 코드)
DeviceAddress Sensor1 = { 0x28, 0xFF, 0x89, 0x0F, 0x61, 0x16, 0x03, 0x40 };
DeviceAddress Sensor2 = { 0x28, 0xFF, 0xE2, 0x0F, 0x61, 0x16, 0x03, 0x21 };
DeviceAddress Sensor3 = { 0x28, 0xFF, 0x38, 0xB3, 0x60, 0x16, 0x03, 0xEA };
DeviceAddress Sensor4 = { 0x28, 0xFF, 0xA4, 0xBE, 0x60, 0x16, 0x03, 0xE1 };
DeviceAddress Sensor5 = { 0x28, 0xFF, 0xFE, 0x13, 0x61, 0x16, 0x03, 0x56 };
DeviceAddress Sensor6 = { 0x28, 0xFF, 0x89, 0xBA, 0x60, 0x16, 0x03, 0xFB };
DeviceAddress Sensor7 = { 0x28, 0xFF, 0xFA, 0xBC, 0x60, 0x16, 0x03, 0xD1 };
DeviceAddress Sensor8 = { 0x28, 0xFF, 0x57, 0xB1, 0x60, 0x16, 0x03, 0x93 };

int amountOfSensors = 8;
int counterCheckBus = 0;

void setup() {
  Serial.begin(9600);
  printProgramName();
  Serial.print("Initializing Temperature Control Library Version ");
  Serial.println(DALLASTEMPLIBVERSION);
  Serial.print("Searching for ");
  Serial.print(amountOfSensors);
  Serial.println(" sensors...");

  sensors.begin();
  
  // 해상도 10비트로 설정 (9~12비트 가능, 낮을수록 빠름)
  for (int i = 1; i <= 8; i++) {
    DeviceAddress* sensor = getSensorAddress(i);
    if (sensor) sensors.setResolution(*sensor, 10);
  }
  
  getSensorsOnBus();
  Serial.println("System initialized");
}

void loop() {
  counterCheckBus++;
  delay(READ_TIMER);
  Serial.println();
  
  // 1시간마다(360회 × 10초) 버스 상의 센서 재검색
  if (counterCheckBus == 360) {
    getSensorsOnBus();
    counterCheckBus = 0;
  }
  
  sensors.requestTemperatures();
  
  for (int i = 1; i <= 8; i++) {
    DeviceAddress* sensor = getSensorAddress(i);
    if (sensor) {
      Serial.print("Sensor ");
      Serial.print(i);
      Serial.print(": ");
      printTemperature(*sensor);
      Serial.println();
    }
  }
}

void printTemperature(DeviceAddress deviceAddress) {
  float tempC = sensors.getTempC(deviceAddress);
  if (tempC == -127.00) {
    Serial.print("Sensor error!");
  } else {
    Serial.print("C: ");
    Serial.print(tempC);
  }
}

void printProgramName() {
  String path = __FILE__;
  int slash = path.lastIndexOf('\\');
  String programName = path.substring(slash + 1);
  int dot = programName.lastIndexOf('.');
  programName = programName.substring(0, dot);
  Serial.print("\nProgram version: ");
  Serial.println(programName);
}

void getSensorsOnBus() {
  Serial.print("Number of sensors found on bus: ");
  Serial.println(sensors.getDeviceCount());
}

// 헬퍼 함수: 센서 번호로 주소 반환
DeviceAddress* getSensorAddress(int num) {
  switch(num) {
    case 1: return &Sensor1;
    case 2: return &Sensor2;
    case 3: return &Sensor3;
    case 4: return &Sensor4;
    case 5: return &Sensor5;
    case 6: return &Sensor6;
    case 7: return &Sensor7;
    case 8: return &Sensor8;
    default: return nullptr;
  }
}

커스텀 파트 및 인클로저

회로도

기본 회로도 (RS232 모듈 제외)

스마트 홈 연동을 위한 다중 위치 온도 센서 시스템

제조공정

  1. DS18B20 온도 센서 - 산업 및 소비자용 정밀 1-Wire 디지털 온도계
  2. 5달러 I2C 센서로 라즈베리 파이 온도 로거 만들기
  3. 라즈베리 파이와 파이썬으로 원격 온도 센서 만들기 – 단계별 가이드
  4. 라즈베리 파이 & DS18B20으로 다중 센서 온도 & 조도 모니터링 시스템 구축
  5. MCP9808, InfluxDB, Grafana로 라즈베리 파이 홈 온도 모니터 구축하기
  6. DasFilisera 스마트 온실: 고급 식물 생장 모니터링 시스템
  7. MotionSense: 아두이노와 ESP8266으로 만드는 스마트 침입 감지 시스템
  8. 3D 프린터 화재 예방: 스마트 센서 안전 시스템
  9. CoroFence 열화상 감지기: Panasonic Grid-EYE & PIR 센서 IoT 연동
  10. 정밀 베어링 온도 센서/검출기(BTD): 원리, 설치, SKF 제품군