사이트 도구


ec-sense:tb600c_co_100

TB600C CO 100

고체 폴리머 센서 기술을 기반으로 하는 최첨단 감지 장치와 정교한 회로 기판의 조합 모듈입니다. 작은 센서 신호를 디지털 출력을 변환하여 쉽게 사용할 수 있습니다. 전력 소비량이 낮고 설치 공간이 적은 장점이 있습니다.


제품 사양

항목 내용
측정 범위 0-100ppm
센서 감지 Type 1) CO Type 2) 온도(-20 - 55℃) Type 3) 습도(15%-95% RH)
응답 및 제로 리턴 시간 Type 1) 응답 시간 : 3초 Type 2) 제로 리턴 시간 : 2분
통신 방식 3.3V UART
전원 전압 3.3-5.5VDC
전력 소비량 25mW
센서 치수 및 무게 L x W x H(23mm x 25.5mm x 10.2mm), Weight(3.1g)
센서 수명 5년
센서 적용 애플리케이션 배터리 및 IoT 애플리케이션 적합
센서 디자인 RoHS 승인

Sensor Datasheet


제품 구성

  • TB600C-CO-100 Sensor
  • Arduino Due(3.3V).(Arduino Uno Rev3(5V) 가능, TB600C CO 100 Supply Voltages Min:3.3V Max:5.5V)
  • JST PH 4Pin Connecter with Jumper wires Female 20cm 4pcs.(Allsensing에서 제작 가능)

아두이노 연결 방법 및 예제



* Arduino Uno와 Arduino Due의 코드가 다르므로 가지고 계신 Arduino Board로 맞춰서 사용 권장

TB600C CO 100_Uno.cpp
//Arduino Uno Rev3 Code
#include <SoftwareSerial.h>
SoftwareSerial mySerial(12, 13); //Uno Rx Tx (13 12) = mySerial
 
byte cmd[9] = {0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79}; //PPM 데이터 요청 커맨드
 
void setup() {
  Serial.begin(9600); //시리얼 통신 초기화
  delay(1000); //1초 지연
  while(!mySerial){} //시리얼 통신 포트가 연결되기 전까지 대기
  mySerial.begin(9600); 
  Serial.println("CO"); 
}
 
 
unsigned char data[9] = { 0x00, }; //모든 수를 양수로 값을 저장(0x00~0xFF)
void loop() {
  mySerial.write(cmd, 9); //PPM 데이터 요청 패킷 송신
  delay(500); //0.5초 지연
  int packetIndex = 0; //packetIndex 0으로 초기화
  while(mySerial.available()>0){ //수신받은 데이터가 0 초과, 즉 데이터가 존재한다면 코드수행
    int ch = mySerial.read(); //시리얼 데이터를 정수형 ch에 저장
    Serial.print(ch, HEX); //시리얼 모니터에 입력받은 데이터 출력
    Serial.print(' ');
 
    data[packetIndex] = ch;
    packetIndex += 1;
  }
  Serial.println();
  // 패킷을 모두 수신 후 체크섬을 이용하여 데이터의 유효성을 체크
  if( (packetIndex == 9) &&
      (1 + (0xFF ^ (byte)(data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7]))) == data[8]) //체크섬=1~7자리 데이터를 더하여 8비트 데이터를 생성하고 각 비트를 반전시키고 끝에 1을 더함
    {
       //CO 센서 데이터를 구하여 시리얼 모니터에 출력
       //Serial.println(data[6],HEX); //CO High 값
       //Serial.println(data[7],HEX); //CO Low 값
      int CO = (data[6] * 256) + data[7]; //CO 농도 측정값 계산
        Serial.print("CO : ");
        Serial.print(CO);
        Serial.println("ppb");   
       delay(100); 
    }
   }

TB600C CO 100_Due.cpp
//Arduino Due Code
byte cmd[9] = {0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79}; //PPM 데이터 요청 커맨드
 
void setup() {
  Serial.begin(9600); //시리얼 통신 초기화
  delay(1000); //1초 지연
  while(!Serial){} //시리얼 통신 포트가 연결되기 전까지 대기
  Serial1.begin(9600); //Due Rx Tx (19 18) = Serial1
  Serial.print("CO Gas Test"); 
}
unsigned char data[9] = { 0x00, }; //모든 수를 양수로 값을 저장(0x00~0xFF)
void loop() {
  Serial1.write(cmd, 9); //PPM 데이터 요청 패킷 송신
  delay(500); //0.5초 지연
  int packetIndex = 0; //packetIndex 0으로 초기화
  while(Serial1.available()>0){ //수신받은 데이터가 0 초과, 즉 데이터가 존재한다면 코드수행
    int ch = Serial1.read(); //시리얼 데이터를 정수형 ch에 저장
    Serial.print(ch, HEX); //시리얼 모니터에 입력받은 데이터 출력
    Serial.print(' ');
 
    data[packetIndex] = ch;
    packetIndex += 1;
  }
  Serial.println();
  // 패킷을 모두 수신 후 체크섬을 이용하여 데이터의 유효성을 체크
  if( (packetIndex == 9) &&
      (1 + (0xFF ^ (byte)(data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7]))) == data[8]) //체크섬=1~7자리 데이터를 더하여 8비트 데이터를 생성하고 각 비트를 반전시키고 끝에 1을 더함
    {
       //CO 센서 데이터를 구하여 시리얼 모니터에 출력
       //Serial.print(data[6]);
       //Serial.println(data[7],HEX);
      int CO = (data[6] * 256) + data[7]; //CO 농도 측정값 계산
        Serial.print("CO : ");
        Serial.print(CO);
        Serial.println("ppb");   
       delay(100); 
    }
   }

Serial Monitor

tb600c_co_100_serial_monitor.jpg


* 이미지 클릭 시 Live Graph로 이동 tb600c_co_100_live_graph.jpg

ec-sense/tb600c_co_100.txt · 마지막으로 수정됨: 2022/06/20 08:15 저자 Allsensing Co., Ltd