Mudanças entre as edições de "Scd30"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Criou página com '==Sensor de Dióxido de Carbono, temperatura e umidade SCD30== O sensor SCD30 permite a medição precisa do dióxido de carbono. Juntamente com a tecnologia de medição ND...')
 
 
(11 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
==Sensor de Dióxido de Carbono, temperatura e umidade SCD30==
+
==Sensor de Dióxido de Carbono (CO2), temperatura e umidade SCD30==
  
  
 
O sensor SCD30 permite a medição precisa do dióxido de carbono. Juntamente com a tecnologia de medição NDIR para detecção de CO2, o sensor SCD30 mede umidade e temperatura também no mesmo sensor.  
 
O sensor SCD30 permite a medição precisa do dióxido de carbono. Juntamente com a tecnologia de medição NDIR para detecção de CO2, o sensor SCD30 mede umidade e temperatura também no mesmo sensor.  
 
+
<center>
 +
[[Arquivo: SCD_30.jpg| 200 px]]
 +
</center>
 
O dióxido de carbono é um indicador chave da qualidade do ar interno. Graças a novos padrões de energia e melhor isolamento, as casas tornaram-se cada vez mais eficientes em termos de energia, mas a qualidade do ar no interior dos ambientes pode se deteriorar rapidamente. A ventilação ativa é necessária para manter um ambiente interno confortável e saudável e para melhorar o bem-estar e a produtividade dos habitantes. O SCD30 oferece monitoramento preciso e estável de CO2, temperatura e umidade. Isso permite que o desenvolvimento de soluções que aumentam a eficiência energética e simultaneamente apoiam o bem-estar.
 
O dióxido de carbono é um indicador chave da qualidade do ar interno. Graças a novos padrões de energia e melhor isolamento, as casas tornaram-se cada vez mais eficientes em termos de energia, mas a qualidade do ar no interior dos ambientes pode se deteriorar rapidamente. A ventilação ativa é necessária para manter um ambiente interno confortável e saudável e para melhorar o bem-estar e a produtividade dos habitantes. O SCD30 oferece monitoramento preciso e estável de CO2, temperatura e umidade. Isso permite que o desenvolvimento de soluções que aumentam a eficiência energética e simultaneamente apoiam o bem-estar.
  
Linha 15: Linha 17:
  
 
===NodeMCU DEVKIT V1.0 e sensor SCD30===
 
===NodeMCU DEVKIT V1.0 e sensor SCD30===
 +
<center>
 +
[[Arquivo: SCD30_NodeMCU.jpg| 300 px]]
 +
</center>
 +
====Comunicação I2C usando os pinos padrão D1(GPIO 5) e D2(GPIO 4)====
  
====Hardware SPI====
+
Usando os pinos padrões do NodeMCU para a comunicação I2C faça as seguintes ligações entre o sensor SCD30 e a placa NodeMCU
  
::*Usando hardware SPI faça as seguintes ligações entre o nanoshield MAX31856 e a placa NodeMCU
 
<center>
 
[[Arquivo:NodeMCUesp8266_MAX31856_hardwareSPI_bb.png | 800 px]]
 
</center>
 
  
 
Abaixo a relação entre os pinos do sensor e da placa
 
Abaixo a relação entre os pinos do sensor e da placa
MAX-31856 /  NODEMCU 1.0 ESP8266-12E
+
  SCD30    /  NODEMCU 1.0 ESP8266-12E
     CS    /  GPIO 15 - D8
+
     SDA    /  GPIO 4 - D2
     SDI   /  GPIO 13 - D7
+
     SCL   /  GPIO 5 - D1
     SDO   /  GPIO 12 - D6
+
     VCC   /  3.3V
     SCK   /  GPIO 14 - D5
+
     GND   /  GND
 +
 
 +
Observe no código como programar no Arduino IDE para extrair os dados do sensor. Adaptado de [https://github.com/sparkfun/SparkFun_SCD30_Arduino_Library/tree/master/examples/Example1_BasicReadings SCD30 BasicReadings]
  
::*Observe no código como declarar o sensor usando hardware SPI.
 
 
<syntaxhighlight lang=c>
 
<syntaxhighlight lang=c>
Adafruit_MAX31856 maxthermo = Adafruit_MAX31856(15);
+
 
 +
#include <Wire.h>
 +
#include "SparkFun_SCD30_Arduino_Library.h"
 +
SCD30 airSensor;
 +
bool flag=true;
 +
byte count = 0;
 +
 +
void setup(){
 +
  Serial.begin(115200);
 +
  Wire.begin();
 +
  for (byte i = 8; i < 120; i++){
 +
    Wire.beginTransmission(i);
 +
    if (Wire.endTransmission() == 0){
 +
      Serial.print("Found I2C Device: ");
 +
      Serial.print(" (0x");
 +
      Serial.print(i, HEX);
 +
      Serial.println(")");
 +
      count++;
 +
      delay(1);
 +
      }
 +
  }
 +
  Serial.print("\r\n");
 +
  Serial.println("Finish I2C scanner");
 +
  Serial.print("Found ");
 +
  Serial.print(count, HEX);
 +
  Serial.println(" Device(s).");
 +
 
 +
  if (airSensor.begin() == false){
 +
    Serial.println("Air sensor not detected. Please check wiring. Freezing...");
 +
    flag=false;
 +
  }
 +
}
 +
 
 +
void loop(){
 +
  if(flag){
 +
    if (airSensor.dataAvailable()){
 +
        Serial.print("co2(ppm):");
 +
        Serial.print(airSensor.getCO2());   
 +
        Serial.print(" temp(C):");
 +
        Serial.print(airSensor.getTemperature(), 1);   
 +
        Serial.print(" humidity(%):");
 +
        Serial.print(airSensor.getHumidity(), 1);   
 +
        Serial.println();
 +
      }
 +
      else
 +
        Serial.println("Waiting for new data");   
 +
  }
 +
  delay(4000);
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
====Software SPI====
+
====Comunicação SPI usando outros pinos====
  
::*Usando software SPI faça as seguintes ligações entre o sensorSCD30 e a placa NodeMCU
+
Usando outros pinos para a comunicação I2C você deve passar os GPIOs em Wire.begin(SDA, SCL) e fazer as seguintes ligações entre o sensor SCD30 e a placa NodeMCU. No exemplo usamos os GPIOs 14 e 12.
 
 
<center>
 
[[Arquivo: | 800 px]]
 
</center>
 
  
 
Abaixo a relação entre os pinos do sensor e da placa
 
Abaixo a relação entre os pinos do sensor e da placa
 +
  SCD30    /  NODEMCU 1.0 ESP8266-12E
 +
    SDA    /  GPIO 14 - D5
 +
    SCL    /  GPIO 12 - D6
 +
    VCC    /  3.3V
 +
    GND    /  GND
  
 
+
Observe no código como declarar os GPIOs.
::*Observe no código como declarar o sensor usando software SPI.
 
  
 
<syntaxhighlight lang=c>
 
<syntaxhighlight lang=c>
 
+
  Wire.begin(14,12);
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
ou use
;Código
 
Código para teste do sensor SCD30 usando a placa NodeMCU DEVKIT V1.0 com chip esp8266-12E
 
 
 
 
 
 
<syntaxhighlight lang=c>
 
<syntaxhighlight lang=c>
 
+
  Wire.begin(D5, D6);
 
 
}
 
 
</syntaxhighlight>
 
</syntaxhighlight>

Edição atual tal como às 14h46min de 5 de junho de 2020

Sensor de Dióxido de Carbono (CO2), temperatura e umidade SCD30

O sensor SCD30 permite a medição precisa do dióxido de carbono. Juntamente com a tecnologia de medição NDIR para detecção de CO2, o sensor SCD30 mede umidade e temperatura também no mesmo sensor.

SCD 30.jpg

O dióxido de carbono é um indicador chave da qualidade do ar interno. Graças a novos padrões de energia e melhor isolamento, as casas tornaram-se cada vez mais eficientes em termos de energia, mas a qualidade do ar no interior dos ambientes pode se deteriorar rapidamente. A ventilação ativa é necessária para manter um ambiente interno confortável e saudável e para melhorar o bem-estar e a produtividade dos habitantes. O SCD30 oferece monitoramento preciso e estável de CO2, temperatura e umidade. Isso permite que o desenvolvimento de soluções que aumentam a eficiência energética e simultaneamente apoiam o bem-estar.

  • Para usar o sensor com a placa NodeMCU DEVKIT V1.0 siga os passos descritos na próxima seção.

NodeMCU DEVKIT V1.0 e sensor SCD30

SCD30 NodeMCU.jpg

Comunicação I2C usando os pinos padrão D1(GPIO 5) e D2(GPIO 4)

Usando os pinos padrões do NodeMCU para a comunicação I2C faça as seguintes ligações entre o sensor SCD30 e a placa NodeMCU


Abaixo a relação entre os pinos do sensor e da placa

 SCD30    /  NODEMCU 1.0 ESP8266-12E
   SDA    /  GPIO 4 - D2
   SCL    /  GPIO 5 - D1
   VCC    /  3.3V
   GND    /  GND

Observe no código como programar no Arduino IDE para extrair os dados do sensor. Adaptado de SCD30 BasicReadings

#include <Wire.h>
#include "SparkFun_SCD30_Arduino_Library.h" 
SCD30 airSensor;
bool flag=true;
byte count = 0;
 
void setup(){
  Serial.begin(115200);
  Wire.begin();
  for (byte i = 8; i < 120; i++){
    Wire.beginTransmission(i);
    if (Wire.endTransmission() == 0){
      Serial.print("Found I2C Device: ");
      Serial.print(" (0x");
      Serial.print(i, HEX);
      Serial.println(")");
      count++;
      delay(1);
      }
  }
  Serial.print("\r\n");
  Serial.println("Finish I2C scanner");
  Serial.print("Found ");
  Serial.print(count, HEX);
  Serial.println(" Device(s).");

  if (airSensor.begin() == false){
    Serial.println("Air sensor not detected. Please check wiring. Freezing...");
    flag=false;
  }
}

void loop(){
  if(flag){
    if (airSensor.dataAvailable()){
        Serial.print("co2(ppm):");
        Serial.print(airSensor.getCO2());    
        Serial.print(" temp(C):");
        Serial.print(airSensor.getTemperature(), 1);    
        Serial.print(" humidity(%):");
        Serial.print(airSensor.getHumidity(), 1);    
        Serial.println();
      }
      else
        Serial.println("Waiting for new data");    
  }
  delay(4000);
}

Comunicação SPI usando outros pinos

Usando outros pinos para a comunicação I2C você deve passar os GPIOs em Wire.begin(SDA, SCL) e fazer as seguintes ligações entre o sensor SCD30 e a placa NodeMCU. No exemplo usamos os GPIOs 14 e 12.

Abaixo a relação entre os pinos do sensor e da placa

 SCD30    /  NODEMCU 1.0 ESP8266-12E
   SDA    /  GPIO 14 - D5
   SCL    /  GPIO 12 - D6
   VCC    /  3.3V
   GND    /  GND

Observe no código como declarar os GPIOs.

  Wire.begin(14,12);

ou use

  Wire.begin(D5, D6);