ESP8266 WiFi – CO2 sensor T6613 (ArduinoIDE)
Hardware
Informatie (ENG)
The T6613 is a CO2 Module designed to meet the volume and delivery expectations of Original Equipment Manufacturers (OEMs). The module is ideal for customers who are familiar with the design, integration and handling of electronic components. All units are factory calibrated to measure CO2 concentration levels up to 2000ppm.
- Flexible CO2 sensor platform designed to interact with other microprocessor devices
- Eliminates the need for calibration with Telaire’s patented ABC Logic™ software
- Lifetime calibration warranty
- 0 to 2000ppm Measurement range
- 400 to 1250ppm ± 30ppm or 3% of Reading accuracy
- UART at 19200baud digital output
- 0 to 4VDC Analogue output
- 0.9W Peak power consumption
- Interface connections designed for 12-pin male header with 0.1in (2.54mm) spacing
Specs (ENG)
Method | Non Dispersive Infrared (NDIR), gold-plated optics, diffusion or flow through sampling (with Telaire’s patented ABC Logic Self Calibrated Algorithm) |
---|---|
Measurement Range | 0 to 2000 ppm** |
Dimensions | 2.25 in X 1.365 in X 0.60 in (57.15 mm X 34.67 mm X 15.24 mm) |
Accuracy* |
|
Temperature Dependence | 0.2% FS per °C |
Stability | < 2% of FS over life of sensor (15 years typical) |
Pressure Dependence | 0.13% of reading per mm Hg |
Calibration Interval | Not required |
Response Time | < 2 minutes for 90% step change typical |
Signal Update | Every 4 seconds |
Warm Up Time |
|
Operating Conditions |
|
Storage Conditions | -40°F to 158°F (-40°C to 70°C) |
Output | |
Digital | UART @ 19200 Baud (Please call for detailed product specifications.) |
Analog | 0 to 4 VDC |
Power Supply Requirements | 5 VDC regulated (±5%) |
Power Consumption |
|
Interface Connections | Designed for 12 pin male header with 0.1 in (2.54 mm) spacing. Header not included. |
Flow Rates (Via Flow Ports) | Flow through version 40 to 50 cc/min |
Pinout
Maten
Aansluiten op de Arduino (RX/TX met SoftwareSerial)
Sluit de module aan op de Arduino volgens onderstaand overzicht:
Ps. je hebt een externe voeding nodig om de CO2 sensor te voeden!
T6613 pin: | ESP pin: | Externe voeding: |
---|---|---|
RX | 2 | |
TX | 0 | |
4 - GND | GND | GND |
5 - VCC (5v) | VCC (5v) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
/* AN-157 Demo of T-66 using Software Serial Arduino example for t6613 CO2 sensor 0-2000 PPM 19200 BPS 2/2017 by Marv kausch @ Co2meter.com */ #include "SoftwareSerial.h" #SoftwareSerial T66_Serial(13, 15); // Pin D7 + D8 on NodeMCU SoftwareSerial T66_Serial(0, 2); // Pin 0 + 2 on ESP-01 byte readCO2[] = {0xFF, 0XFE, 2, 2, 3}; //T66 read CO2 command: 5 bytes byte response[] = {0, 0, 0, 0, 0}; //create an array to store the response void setup() { Serial.begin(9600); T66_Serial.begin(19200); //Opens the virtual serial port with a baud of 9600 } void loop() { Serial.println("ReadC02"); sendRequest(readCO2); //Locate the problem of program reset whduring this function call unsigned long valCO2 = getValue(response);// Request from sensor 5 bytes of data Serial.print("Sensor response: "); for(int i=0;i<5;i++) { Serial.print(response[i],HEX); Serial.print(" "); } Serial.print("\tCo2 ppm = "); Serial.println(valCO2); delay(2000); //T6613 spec indicates signal update every 4 seconds return; } void sendRequest(byte packet[]) { while(!T66_Serial.available()) { //keep sending request until we start to get a response T66_Serial.write(readCO2,5);// Write to sensor 5 byte command delay(400); } int timeout=0; //set a timeoute counter while(T66_Serial.available() < 5 ) { //Wait to get a 7 byte response timeout++; if(timeout > 10) { //if it takes to long there was probably an error //Serial.print("Timeout"); while(T66_Serial.available()) //flush whatever we have T66_Serial.read(); break; //exit and try again } delay(50); } for (int i=0; i < 5; i++) response[i] = T66_Serial.read(); } unsigned long getValue(byte packet[]) { int high = packet[3]; //high byte for value is 4th byte in packet in the packet int low = packet[4]; //low byte for value is 5th byte in the packet unsigned long val = high*256 + low; //Combine high byte and low byte with this formula to get value return val; } |
Het resultaat
1 2 3 4 5 6 7 8 |
ReadC02 Sensor response: FF FA 2 7 E8 Co2 ppm = 2024 ReadC02 Sensor response: FF FA 2 7 EB Co2 ppm = 2027 ReadC02 Sensor response: FF FA 2 7 EB Co2 ppm = 2027 ReadC02 Sensor response: FF FA 2 7 EE Co2 ppm = 2030 |
[#/handleidingen/sensor_co2_mhz14″ ]