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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 16: Linha 16:
 
===NodeMCU DEVKIT V1.0 e sensor SCD30===
 
===NodeMCU DEVKIT V1.0 e sensor SCD30===
  
====Hardware SPI====
+
====Comunicação I2C usando os pinos padrão D1(GPIO 5) e D2(GPIO 4)====
  
::*Usando hardware SPI faça as seguintes ligações entre o sensor SCD30 e a placa NodeMCU
+
::*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
 
<center>
 
<center>
 
[[Arquivo: | 800 px]]
 
[[Arquivo: | 800 px]]
Linha 32: Linha 32:
 
::*Observe no código como declarar o sensor usando hardware SPI.
 
::*Observe no código como declarar o sensor usando hardware SPI.
 
<syntaxhighlight lang=c>
 
<syntaxhighlight lang=c>
 +
#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 sensorSCD30 e a placa NodeMCU. No exemplo usamos os GPIOs 14 e 12.
  
 
<center>
 
<center>
Linha 45: Linha 92:
 
Abaixo a relação entre os pinos do sensor e da placa
 
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 o sensor usando software SPI.
+
::*Observe no código como usar os GPIOs.
  
 
<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 das 14h17min 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.

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

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

[[Arquivo: | 800 px]]

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 declarar o sensor usando hardware SPI.
#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 sensorSCD30 e a placa NodeMCU. No exemplo usamos os GPIOs 14 e 12.

[[Arquivo: | 800 px]]

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 usar os GPIOs.
  Wire.begin(14,12);

ou use

  Wire.begin(D5, D6);