Toggle main menu visibility
臺南市教育局科技教育網
線上書籍
電子相簿
PM2.5監測
IOT實作
OpenID登入
:::
登入
登入
帳號
密碼
登入
使用 臺南市 OpenID 快速登入
:::
所有書籍
「南工高瞻_資料傳輸課程」目錄
MarkDown
1-2 MQ-4
MQTT server Windows 安裝
1. 氣體感測器
1-1 MQ-2
1-2 MQ-4
1-3 MQ-6
1-4 MQ-9
1-5 MQ-135
2. 環境數據上傳
1-4 MQ-9
南工高瞻\_資料傳輸課程 ============ 一、元件介紹 感測:液化石油氣(LPG),丁烷氣 
Arduino UNO
MQ-6 元件
A0
A0
不接
D0
GND
GND
5V
VCC
二、接線範例  三、程式範例 Arduino程式庫參考:
基礎 ``` int sensorValue; int GasSensorPin = 0; //Gas Sensor Connection void setup() { Serial.begin(9600); // sets the serial port to 9600 } void loop() { sensorValue = analogRead(GasSensorPin); // read analog input pin 0 Serial.println(sensorValue, DEC); // prints the value read delay(100); // wait 100ms for next reading } ``` 進階 ``` /*==============Demo for MQ-6 Gas Sensor Module ======= www.circuits4you.com ======================================================*/ /*========Hardware Related Macros=====================*/ #define MQ_PIN (0) //define which analog input channel you are going to use #define RL_VALUE (20) //define the load resistance on the board, in kilo ohms #define RO_CLEAN_AIR_FACTOR (10) //RO_CLEAR_AIR_FACTOR=(Sensor resistance in clean air)/RO, //which is derived from the chart in datasheet /*============Software Related Macros ===============*/ #define CALIBARAION_SAMPLE_TIMES (50) //define how many samples you are going to take in the calibration phase #define CALIBRATION_SAMPLE_INTERVAL (500) //define the time interal(in milisecond) between each samples in the //cablibration phase #define READ_SAMPLE_INTERVAL (50) //define how many samples you are going to take in normal operation #define READ_SAMPLE_TIMES (5) //define the time interal(in milisecond) between each samples in //normal operation /*=============Application Related Macros============*/ #define GAS_LPG (0) #define GAS_CH4 (1) /*===============Globals=============================*/ float LPGCurve[3] = {3, 0, -0.4}; //two points are taken from the curve. //with these two points, a line is formed which is "approximately equivalent" //to the original curve. //data format:{ x, y, slope}; point1: (lg1000, lg1), point2: (lg10000, lg0.4) float CH4Curve[3] = {3.3, 0, -0.38}; //two points are taken from the curve. //with these two points, a line is formed which is "approximately equivalent" //to the original curve. //data format:{ x, y, slope}; point1: (lg2000, lg1), point2: (lg5000, lg0.7) float Ro = 10; //Ro is initialized to 10 kilo ohms void setup() { Serial.begin(9600); //UART setup, baudrate = 9600bps Serial.print("Calibrating...\n"); Ro = MQCalibration(MQ_PIN); //Calibrating the sensor. Please make sure the sensor is in clean air //when you perform the calibration Serial.print("Calibration is done...\n"); Serial.print("Ro="); Serial.print(Ro); Serial.print("kohm"); Serial.print("\n"); } void loop() { Serial.print("LPG:"); Serial.print(MQGetGasPercentage(MQRead(MQ_PIN)/Ro,GAS_LPG) ); Serial.print( "ppm" ); Serial.print(" "); Serial.print("CH4::"); Serial.print(MQGetGasPercentage(MQRead(MQ_PIN)/Ro,GAS_CH4) ); Serial.print( "ppm" ); Serial.print("\n"); delay(200); } /*=============== MQResistanceCalculation ================== Input: raw_adc - raw value read from adc, which represents the voltage Output: the calculated sensor resistance Remarks: The sensor and the load resistor forms a voltage divider. Given the voltage across the load resistor and its resistance, the resistance of the sensor could be derived. ============================================================*/ float MQResistanceCalculation(int raw_adc) { return ( ((float)RL_VALUE*(1023-raw_adc)/raw_adc)); } /*===================== MQCalibration ====================== Input: mq_pin - analog channel Output: Ro of the sensor Remarks: This function assumes that the sensor is in clean air. It use MQResistanceCalculation to calculates the sensor resistance in clean air and then divides it with RO_CLEAN_AIR_FACTOR. RO_CLEAN_AIR_FACTOR is about 10, which differs slightly between different sensors. ============================================================*/ float MQCalibration(int mq_pin) { int i; float val=0; for (i=0;i
搜尋
search
進階搜尋