Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SparkFunDS1307RTC.h>
- #include <SPI.h>
- #include <SD.h>
- #include <Wire.h>
- #include <Arduino.h>
- #define OUTPUT_MIN 1638.4 // 1638 zliczen (10% z 2^14)
- #define OUTPUT_MAX 14745.6 // 14745 zliczen (90% z 2^14)
- #define PRESSURE_MIN -0.100 // -100mbar
- #define PRESSURE_MAX 0.100 // 100 mbar (wynik w mbarach)
- #define MEAN_NUMBER 3
- #define MAX_PM 0
- #define MIN_PM 32767
- uint8_t sensor_on_off = 9;
- float realTemp=0;
- String name_of_file;
- File myFile;
- int incomingByte = 0;
- const int MAX_FRAME_LEN = 64;
- char frameBuf[MAX_FRAME_LEN];
- int detectOff = 0;
- int frameLen = MAX_FRAME_LEN;
- bool inFrame = false;
- char printbuf[256];
- unsigned int calcChecksum = 0;
- unsigned int pm1_0=0, pm2_5=0, pm10_0=0;
- unsigned int tmp_max_pm1_0, tmp_max_pm2_5, tmp_max_pm10_0;
- unsigned int tmp_min_pm1_0, tmp_min_pm2_5, tmp_min_pm10_0;
- byte i=0;
- struct PMS7003_framestruct {
- byte frameHeader[2];
- unsigned int frameLen = MAX_FRAME_LEN;
- unsigned int concPM1_0_CF1;
- unsigned int concPM2_5_CF1;
- unsigned int concPM10_0_CF1;
- unsigned int checksum;
- } thisFrame;
- void setup()
- {
- Serial.begin(9600);
- pinMode(53,OUTPUT); //uruchamiamy chip_select SPI
- SPI.begin(); // inicjalizujemy SPI
- pinMode(2,OUTPUT); //pin od multiplekser (LOW-wlaczona karta, HIGH-wlaczony manometr)
- digitalWrite(2,LOW); // uruchamiamy karte
- SD.begin(SPI_QUARTER_SPEED, 4); // inicjalizujemy karte
- pinMode(sensor_on_off, OUTPUT); //ustawiamy pin do obslugi czujnika
- digitalWrite(sensor_on_off, HIGH); // wylaczamy czujnik
- rtc.begin();
- rtc.writeSQW(SQW_SQUARE_1);
- nof(); // funkcja do ustalania nazwy pliku zapisu (nazwa pliku to godzina rozpoczecia pomiaru)
- }
- void loop()
- {
- float val1 = 1.0 * ((float)readSensor(sensor_on_off) - OUTPUT_MIN) * (PRESSURE_MAX - PRESSURE_MIN) / (OUTPUT_MAX - OUTPUT_MIN) + PRESSURE_MIN; //obliczamy wartosc cisnienia
- if(abs(val1)<=0.001){
- val1=0.0; // usuwam sytuację gdy jest wyświetlane "-0.00"
- }
- PMS7003(); // funkcja do obliczania pylow
- printTime(); // funkcja do zapisu na karcie aktualnej daty
- print_value(String(val1),String(realTemp),printbuf); //zapis na karcie
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement