This is a Testing program

Dependencies:   DHT DS18B20 Decagon10HS DecagonEC-5 FastIO LightSensorALS-PT19 WaterMark200ss WeatherMeters mbed-src

main.cpp

Committer:
javiersing
Date:
2016-11-28
Revision:
0:232c507002f4

File content as of revision 0:232c507002f4:

#include "mbed.h"
#include "LightSensor.h"
#include "Decagon10HS.h"
#include "DecagonEC-5.h"
#include "DHT.h"
#include "FastIO.h"
#include "DS18B20.h"
#include "WaterMark200ss.h"
#include "WeatherMeters.h"
#include "Anemometer.h"


//Declaración de Puertos para cada sensor
AnalogIn moisture10HS(A0);  //Decagon 10HS en el A0
AnalogIn light(A1);         //ALS-PT19LIGHT en el A1
AnalogIn moistureEC5(A2);   //Decagon EC-5 en el A2
AnalogIn lightref(A3);      //Referencia 3.3V en el A3
AnalogIn moisture200ss(A4); //WaterMark200ss en el A4

/*El sensor DS18B20 se
define el pin en la
librería DHT*/              //Ds18B20 en el D2
DHT dht22(PB_3,DHT22);      //DHT22 en el D3
CWeatherMeters WeatherMeters(D4, D5, A5); //Weather Station Anemómetro D4, Veleta D5, Pluviómetro A5



//Declaración variables para sensores:
float lightLvl      = 0;    // Sensor LUZ
float VWC10HS       = 0;    // Sensor 10HS
float VWCEC5        = 0;    // Sensor EC-5
float tempdht22     = 0;    // Sensor DHT22
float humdht22      = 0;    // Sensor DHT22
float tempDS18B20   = 0;    // Sensor DS18B20
float centibar      = 0;    // Snsor WaterMark 200ss
float rainfall      = 0;
float windSpeed     = 0;
float maxWindSpeed  = 0;



int main()
{
    pc.baud(115200);
    DQ.output();
    DQ = 0;
    DQ.input();
    pc.printf("All Sensors Test \r\n");
    pc.printf("Memory allocated for %d DS18B20.\r\n",MaxROMs);
    pc.printf("Scanning for devices...\r\n");
    ow_reset();
    FindDevices();
    pc.printf("Scanning completed.\r\n");


    while(1) {
        //Leer Sensores
        wait(1);
        lightLvl = readLightSensor(light,lightref);     //Sensor de Luz
        VWC10HS = Moist10HS(moisture10HS);              //Sensor 10HS
        VWCEC5 = MoistEC5(moistureEC5);                 //Sensor EC-5
        tempdht22 = dht22.ReadTemperature(CELCIUS);     //Sensor DHT22
        humdht22 = dht22.ReadHumidity();                //Sensor DHT22
        centibar = Moist200ss(moisture200ss);           //Sensor WaterMark 200ss
        CWeatherMeters::SMeasurements Measurements;     //Weather Station
        WeatherMeters.GetMeasurements(&Measurements);   //Weather Station
        rainfall = Measurements.Rainfall;               //Weather Station
        windSpeed = Measurements.WindSpeed;             //Weather Station
        maxWindSpeed = Measurements.MaximumWindSpeed;   //Weather Station
        pc.printf("Direction: %s\n", Measurements.WindDirectionString);
        pc.printf("Depth: %f\n",rainfall);
        pc.printf("Current speed: %f\n", windSpeed);
        pc.printf("Maximum speed: %f\n", maxWindSpeed);
        pc.printf("200ss Centibar: %2.2f\n", centibar);
        pc.printf("DHT22 Humidity: %.1f \n\r",humdht22);
        pc.printf("DHT22 Temp: %.1f C",tempdht22);
        pc.printf("EC-5 VWC: %2.2f VMC\r\n", VWCEC5);
        pc.printf("10HS VWC: %2.2f\r\n", VWC10HS);
        pc.printf("Light: %3.2f \r\n", lightLvl);
        ConvT();                        // Todos los DS18B20 inician la conversión a temp
        wait_ms(750);                   // Tiempo minimo de conversion a 12-bit
        for(int i=1; i<=numROMs; i++) { // Bucle para todos los DS18B20
            tempDS18B20 = Get_Temp(i);
            pc.printf("DS18B20 Temp: %08.4f Device: %02X%02X%02X%02X%02X%02X %03d\r\n",tempDS18B20,FoundROM[i][6],FoundROM[i][5],FoundROM[i][4],FoundROM[i][3],FoundROM[i][2],FoundROM[i][1],i);
        }
        pc.printf("\r\n");
        wait(5.0f);
    }
}