Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SPI.h>
- #include <SD.h>
- #include <dht.h>
- #include <OneWire.h>
- #include <DallasTemperature.h>
- //Programa : Sensor de umidade e temperatura DHT11
- //Autor : Gustavo Okano Alves Pinto
- #define ONE_WIRE_BUS 10
- #define dht_dpin A1 //Pino DATA do Sensor ligado na porta Analogica A1
- dht DHT; //Inicializa o sensor
- const int chipSelect = 4;
- OneWire oneWire(ONE_WIRE_BUS);
- DallasTemperature sensors(&oneWire);
- DeviceAddress vermelho_1_Thermometer = { 0x28, 0xFF, 0xB8, 0x67, 0x56, 0x14, 0x03, 0xB0 };
- DeviceAddress azul_1_Thermometer = { 0x28, 0xFF, 0x5B, 0x45, 0x64, 0x14, 0x04, 0x41 };
- float tempC; // modifiquei aqui
- float tempA; // modifiquei aqui
- float tempV; // modifiquei aqui
- void setup(void)
- {
- Serial.begin(9600);
- while (!Serial) {
- // wait for serial port to connect. Needed for Leonardo only
- };
- sensors.begin();
- sensors.setResolution(vermelho_1_Thermometer, 10);
- sensors.setResolution(azul_1_Thermometer, 10);
- }
- void printTemperature(DeviceAddress deviceAddress)
- {
- // float tempC = sensors.getTempC(deviceAddress); // modifiquei aqui
- tempC = sensors.getTempC(deviceAddress); // modifiquei aqui
- if (tempC == -127.00)
- {
- Serial.print("Erro ao ler temperatura !");
- }
- else
- {
- Serial.print("C: ");
- Serial.print(tempC);
- Serial.print(" F: ");
- Serial.print(DallasTemperature::toFahrenheit(tempC));
- }
- }
- void loop(void)
- {
- {
- DHT.read11(dht_dpin); //Lê as informações do sensor
- Serial.print("Umidade = ");
- Serial.print(DHT.humidity);
- Serial.print(" % ");
- Serial.print("Temperatura = ");
- Serial.print(DHT.temperature);
- Serial.println(" Celsius ");
- {
- delay(3000);
- Serial.print("Lendo temperaturas...\n\r");
- sensors.requestTemperatures();
- Serial.print("Temperatura Sensor 1: ");
- printTemperature(vermelho_1_Thermometer);
- tempV = tempC; // modifiquei aqui
- Serial.print("\n\r");
- Serial.print("Temperatura Sensor 2: ");
- printTemperature(azul_1_Thermometer);
- tempA = tempC; // modifiquei aqui
- Serial.print("\n\r");
- Serial.print("Initializing SD card...");
- // see if the card is present and can be initialized:
- if (!SD.begin(chipSelect)) {
- Serial.println("Card failed, or not present");
- // don't do anything more:
- return;
- }
- Serial.println("card initialized.");
- }
- delay(1000);//Aguarda 1 seg antes de acessar as informações do sensor
- }
- {
- // make a string for assembling the data to log:
- String dataString = "";
- // read one sensor and append to the string:
- for (int analogPin = 0; analogPin < 3; analogPin++) {
- int sensor = analogRead(analogPin);
- dataString += String(sensor);
- if (analogPin < 2) {
- dataString += ",";
- }
- }
- // open the file. note that only one file can be open at a time,
- // so you have to close this one before opening another.
- File dataFile = SD.open("datalog.csv", FILE_WRITE);
- // if the file is available, write to it:
- if (dataFile) {
- dataFile.println("Temperatura,Umidade");
- dataFile.println(DHT.temperature);
- dataFile.println(DHT.humidity);
- dataFile.println("TemperaturaSensor1");
- dataFile.println("TemperaturaSensor2");
- dataFile.println(tempV); // modifiquei aqui
- dataFile.println(tempA); // modifiquei aqui
- // dataFile.println(vermelho_1_Thermometer); // modifiquei aqui
- // dataFile.println(azul_1_Thermometer); // modifiquei aqui
- dataFile.close();
- // print to the serial port too:
- Serial.println();
- }
- // if the file isn't open, pop up an error:
- else {
- Serial.println("error opening datalog.csv");
- }
- //Não diminuir o valor abaixo. O ideal é a leitura a cada 2 segundos
- delay(4000);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement