Busca en aquest bloc

Sensror per el cotxe

Amb les ultimes tendències i els motors GLP crec que es necessari posar en el cotxe nous indicadors on ens mesuri la qualitat del aire dins de la cabina del cotxe. En pocs diners pots crear-te la teva pròpia estació. Jo en el meu cas he utilitzar un sensor d'humitat i temperatura (DHT11), un control de CO (MQ9) i un sensor amb detecció de NH3, NOx, alcohol, benceno, humo, CO2, etc (MQ135).
Altres sensors que podrien ser interessants i no estan implementats en el codi podria ser el Ozo (MQ131) entre altres.
Tots aquest sensors podrien anar connectats a la centraleta del cotxe i indicar la qualitat del aire, en el meu cas ho he muntat amb un arduino, ja que hem permet moure el dispositiu i portar-lo a diferents llocs com a casa, la feina, el cotxe, a la muntanya, etc. podent tenir certa autonomia en llocs on no hi hagi possibilitats de connectar-lo a la corrent utilitzant una bateria externa per a mòbils.


 Codi Arduino:

//llibreries necessaries
#include
#include
LiquidCrystal_I2C lcd(0x27,20,4);
#include

//Declaració variables
int SENSOR = 2;
int temp,humedad;
int s_analogica_mq135=0;

DHT dht (SENSOR, DHT11);
void setup()
{
// mostrar les dades per consola
  Serial.begin(9600);
  dht.begin();
 
//Iniciar el fons retroiluminat
  lcd.backlight();
  //Iniciar la pantalla
  lcd.init();
}
void loop()  
{
//impresio per pantalla serial les variables sensor dth11
humedad = dht.readHumidity();
  temp = dht.readTemperature();
  Serial.print("Temperatura:"); //Mostrar text
  Serial.print(temp); //mostrar el valor de la variable
  Serial.print(" Hunetat:"); //Mostrar text
  Serial.print(humedad); //mostrar el valor de la variable
  Serial.print("%"); //Mostrar text
  Serial.print("   "); //Mostrar text

//impresio per pantalla serial les variables sensor mq135 
  s_analogica_mq135 = analogRead(0);      
  Serial.print(s_analogica_mq135, DEC);//mostrar el valor de la variable
  Serial.println(" ppm"); //Mostrar text
  delay(250); //temps de refresc en milisegons
 

//impresio per pantalla serial les variables sensor mq9

  float sensor_volt;
  float RS_air; //  Get the value of RS via in a clear air
  float R0;  // Get the value of R0 via in LPG
  float sensorValue;

/*--- Get a average data by testing 100 times ---*/  
    for(int x = 0 ; x < 100 ; x++)
  {
    sensorValue = sensorValue + analogRead(A1);
  }
  sensorValue = sensorValue/100.0;
/*-----------------------------------------------*/

  sensor_volt = sensorValue/1024*5.0;
  RS_air = (5.0-sensor_volt)/sensor_volt; // omit *RL
  R0 = RS_air/9.9; // The ratio of RS/R0 is 9.9 in LPG gas
 
  Serial.print("sensor_volt = ");
  Serial.print(sensor_volt);
  Serial.println("V");
 
  Serial.print("R0 = ");
  Serial.println(R0);
  delay(1000);


//LCD
  lcd.clear();//netejar LCD
  lcd.print("Temperatura: ");//text primera linea
  lcd.print(temp);//variable primera linea
  lcd.print("C");//tect primera linea
  lcd.setCursor(0,1);//Salt a la segona linea
  lcd.print("Humitat: ");//text segona linea
  lcd.print(humedad);//variable segona linea
  lcd.print("%");//text segona linea
  lcd.setCursor(0,2);//Salt a la tercera linea
  lcd.print(s_analogica_mq135, DEC);//variable tercera linea
  lcd.print(" ppm");//text tercera linea
  lcd.print("   CO:");//text tercera linea
  lcd.print(R0);//variable segona linea
  lcd.setCursor(0,3);//Salt a la quarta linea
  lcd.print("Qualitat del aire");//text Quarta linea
 
  //Tiemps de refresc en milisegons
  delay(1000);

 

 
}